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

#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "backend.h"
#include "predict.h"
#include "rtl.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_split_4 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_5 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_6 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_7 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_8 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_9 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_10 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_11 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_12 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_13 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_14 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_15 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_16 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_1 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_2 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_17 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_18 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_19 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_20 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_21 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_22 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_23 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_24 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_25 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_26 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_27 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_28 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_29 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_30 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_31 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_32 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_33 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_34 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_35 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_36 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_37 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_38 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_39 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_40 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_41 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_42 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_43 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_44 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_45 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_46 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_47 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_48 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_49 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_50 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_51 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_52 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_3 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_4 (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_peephole2_5 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_61 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_6 (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_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_peephole2_10 (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_peephole2_11 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_12 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_93 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_94 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_95 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_96 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_97 (rtx_insn *, rtx *);
extern rtx_insn *gen_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_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_split_126 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_127 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_128 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_129 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_130 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_131 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_132 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_133 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_134 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_135 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_136 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_137 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_138 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_139 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_140 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_141 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_142 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_143 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_144 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_145 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_146 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_147 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_148 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_149 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_150 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_151 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_152 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_153 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_154 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_155 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_156 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_157 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_158 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_159 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_160 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_161 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_162 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_163 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_164 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_165 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_166 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_167 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_168 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_169 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_170 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_171 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_172 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_173 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_174 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_175 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_176 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_177 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_178 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_179 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_180 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_181 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_182 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_183 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_184 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_185 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_186 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_187 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_188 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_189 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_190 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_191 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_192 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_193 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_194 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_195 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_196 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_197 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_198 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_199 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_200 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_201 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_13 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_14 (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_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_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_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_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_peephole2_22 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_23 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_24 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_25 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_26 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_27 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_28 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_29 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_30 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_31 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_32 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_33 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_34 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_35 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_36 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_37 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_38 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_39 (rtx_insn *, rtx *);
extern rtx_insn *gen_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 *);
extern rtx_insn *gen_split_311 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_40 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_41 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_312 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_313 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_314 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_315 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_316 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_42 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_43 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_44 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_45 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_317 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_318 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_319 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_46 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_47 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_48 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_320 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_321 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_322 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_323 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_324 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_49 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_50 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_51 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_52 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_53 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_54 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_55 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_56 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_57 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_58 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_59 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_60 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_61 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_62 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_63 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_64 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_65 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_66 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_67 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_68 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_69 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_70 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_71 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_72 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_73 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_74 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_75 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_76 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_77 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_78 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_79 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_80 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_81 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_82 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_83 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_84 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_85 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_86 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_87 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_88 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_89 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_90 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_91 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_92 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_93 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_94 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_95 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_96 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_97 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_98 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_99 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_100 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_101 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_102 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_103 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_104 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_105 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_106 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_107 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_108 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_109 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_110 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_111 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_112 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_113 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_114 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_115 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_116 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_117 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_118 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_119 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_120 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_121 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_122 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_123 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_124 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_125 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_126 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_127 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_128 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_129 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_130 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_131 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_132 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_133 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_134 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_135 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_136 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_137 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_138 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_139 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_140 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_141 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_142 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_143 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_144 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_145 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_146 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_147 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_148 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_149 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_325 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_326 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_327 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_328 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_329 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_330 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_331 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_332 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_333 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_334 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_335 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_336 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_337 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_150 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_151 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_338 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_339 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_340 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_341 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_342 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_343 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_344 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_345 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_346 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_347 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_348 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_349 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_350 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_351 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_352 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_353 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_354 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_355 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_356 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_357 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_358 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_359 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_360 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_361 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_362 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_363 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_364 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_365 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_366 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_367 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_368 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_369 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_370 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_371 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_372 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_373 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_374 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_375 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_376 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_377 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_378 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_379 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_380 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_381 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_382 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_383 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_384 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_385 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_386 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_387 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_388 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_389 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_390 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_391 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_392 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_393 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_394 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_395 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_396 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_397 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_398 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_399 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_400 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_401 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_402 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_403 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_404 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_405 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_406 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_407 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_408 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_409 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_410 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_411 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_412 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_413 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_414 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_415 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_416 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_417 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_418 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_419 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_152 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_153 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_154 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_155 (rtx_insn *, rtx *);




static int
pattern0 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i3)
    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 + 0])
    return -1;
  x5 = XVECEXP (x3, 0, 1);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
      || !register_operand (operands[0], i2)
      || GET_MODE (x1) != i2)
    return -1;
  x6 = XEXP (x2, 0);
  operands[1] = x6;
  if (!nonimmediate_operand (operands[1], i1))
    return -1;
  return 0;
}

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

    case VEC_SELECT:
      if (pattern0 (x3, i1, i2, i3) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

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

    case FLOAT_EXTEND:
      x5 = XEXP (x4, 0);
      operands[1] = x5;
      switch (GET_MODE (operands[0]))
        {
        case DFmode:
          if (!register_operand (operands[0], DFmode)
              || GET_MODE (x3) != DFmode
              || GET_MODE (x4) != DFmode
              || !register_operand (operands[1], SFmode))
            return -1;
          return 1;

        case XFmode:
          if (!register_operand (operands[0], XFmode)
              || GET_MODE (x3) != XFmode
              || GET_MODE (x4) != XFmode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case SFmode:
              if (!register_operand (operands[1], SFmode))
                return -1;
              return 2;

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

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

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

static int
pattern4 (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 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  operands[0] = x3;
  if (!nonimmediate_operand (operands[0], QImode))
    return -1;
  x4 = XEXP (x1, 1);
  if (GET_MODE (x4) != QImode)
    return -1;
  x5 = XEXP (x4, 1);
  operands[1] = x5;
  if (!nonmemory_operand (operands[1], QImode))
    return -1;
  x6 = XEXP (x4, 0);
  if (!rtx_equal_p (x6, operands[0]))
    return -1;
  return 0;
}

static int
pattern5 (rtx x1, int *pnum_clobbers)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  switch (GET_CODE (x2))
    {
    case REG:
    case SUBREG:
    case MEM:
      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 TImode:
          if (pnum_clobbers == NULL
              || !register_operand (operands[0], TImode)
              || GET_MODE (x3) != TImode
              || !register_operand (operands[1], TImode)
              || !const_1_to_63_operand (operands[2], QImode))
            return -1;
          return 0;

        case QImode:
          if (pattern3 (x3, pnum_clobbers, QImode) != 0)
            return -1;
          return 1;

        case HImode:
          if (pattern3 (x3, pnum_clobbers, HImode) != 0)
            return -1;
          return 2;

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

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

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

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

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

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

        case V16QImode:
          if (!register_operand (operands[0], V16QImode)
              || GET_MODE (x3) != V16QImode
              || !nonimmediate_operand (operands[1], V16QImode)
              || !const_0_to_7_operand (operands[2], SImode))
            return -1;
          return 9;

        case V8HImode:
          if (!register_operand (operands[0], V8HImode)
              || GET_MODE (x3) != V8HImode
              || !nonimmediate_operand (operands[1], V8HImode)
              || !const_0_to_15_operand (operands[2], SImode))
            return -1;
          return 10;

        default:
          return -1;
        }

    case STRICT_LOW_PART:
      if (pattern4 (x1, pnum_clobbers) != 0)
        return -1;
      return 11;

    default:
      return -1;
    }
}

static int
pattern6 (rtx x1, int *pnum_clobbers, machine_mode i1)
{
  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) != i1)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!register_operand (operands[0], i1))
    return -1;
  x4 = XEXP (x2, 0);
  operands[1] = x4;
  if (!nonimmediate_operand (operands[1], i1))
    return -1;
  return 0;
}

static int
pattern7 (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
      || !nonimmediate_operand (operands[1], i1)
      || !nonimmediate_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern8 (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
      || !vector_operand (operands[1], i1)
      || !vector_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern9 (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)
      || !nonimmediate_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, 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 SFmode:
      return pattern7 (x3, SFmode); /* [-1, 0] */

    case DFmode:
      if (pattern7 (x3, DFmode) != 0)
        return -1;
      return 1;

    case V2SFmode:
      if (pattern7 (x3, V2SFmode) != 0)
        return -1;
      return 2;

    case V4HImode:
      if (pattern7 (x3, V4HImode) != 0)
        return -1;
      return 3;

    case V16SFmode:
      if (pattern8 (x3, V16SFmode) != 0)
        return -1;
      return 4;

    case V8SFmode:
      if (pattern8 (x3, V8SFmode) != 0)
        return -1;
      return 5;

    case V4SFmode:
      if (pattern8 (x3, V4SFmode) != 0)
        return -1;
      return 6;

    case V8DFmode:
      if (pattern8 (x3, V8DFmode) != 0)
        return -1;
      return 7;

    case V4DFmode:
      if (pattern8 (x3, V4DFmode) != 0)
        return -1;
      return 8;

    case V2DFmode:
      if (pattern8 (x3, V2DFmode) != 0)
        return -1;
      return 9;

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

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

    case V8SImode:
      if (pattern7 (x3, V8SImode) != 0)
        return -1;
      return 12;

    case V16SImode:
      if (pattern7 (x3, V16SImode) != 0)
        return -1;
      return 13;

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

    case V8DImode:
      if (pattern7 (x3, V8DImode) != 0)
        return -1;
      return 15;

    case V4DImode:
      if (pattern7 (x3, V4DImode) != 0)
        return -1;
      return 16;

    case V2DImode:
      if (pattern7 (x3, V2DImode) != 0)
        return -1;
      return 17;

    case V64QImode:
      if (pattern9 (x3, V64QImode) != 0)
        return -1;
      return 18;

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

    case V32HImode:
      if (pattern9 (x3, V32HImode) != 0)
        return -1;
      return 20;

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

    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 = 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 V8QImode:
      return pattern7 (x3, V8QImode); /* [-1, 0] */

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

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

    case V8SImode:
      if (pattern7 (x3, V8SImode) != 0)
        return -1;
      return 3;

    case V16SImode:
      if (pattern7 (x3, V16SImode) != 0)
        return -1;
      return 4;

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

    case V8DImode:
      if (pattern7 (x3, V8DImode) != 0)
        return -1;
      return 6;

    case V4DImode:
      if (pattern7 (x3, V4DImode) != 0)
        return -1;
      return 7;

    case V2DImode:
      if (pattern7 (x3, V2DImode) != 0)
        return -1;
      return 8;

    case V64QImode:
      if (pattern9 (x3, V64QImode) != 0)
        return -1;
      return 9;

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

    case V32HImode:
      if (pattern9 (x3, V32HImode) != 0)
        return -1;
      return 11;

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

    default:
      return -1;
    }
}

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

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

    default:
      return -1;
    }
}

static int
pattern13 (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, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XEXP (x3, 0);
  operands[1] = x4;
  return pattern12 (x3); /* [-1, 1] */
}

static int
pattern14 (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);
  switch (GET_MODE (x2))
    {
    case SFmode:
      if (!nonimmediate_operand (operands[1], V4SFmode))
        return -1;
      return 0;

    case DFmode:
      if (!nonimmediate_operand (operands[1], V2DFmode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern15 (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, 0);
  if (GET_CODE (x3) != VEC_SELECT)
    return -1;
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) != PARALLEL
      || XVECLEN (x4, 0) != 1)
    return -1;
  x5 = XVECEXP (x4, 0, 0);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x6 = XEXP (x1, 0);
  operands[0] = x6;
  x7 = XEXP (x3, 0);
  operands[1] = x7;
  switch (GET_MODE (operands[0]))
    {
    case SImode:
      return pattern14 (x2, SImode); /* [-1, 1] */

    case DImode:
      res = pattern14 (x2, DImode);
      if (res >= 0)
        return res + 2; /* [2, 3] */
      return -1;

    default:
      return -1;
    }
}

static int
pattern16 (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);
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != 17
      || GET_MODE (x3) != CCmode)
    return -1;
  x4 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x4) != USE)
    return -1;
  x5 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x5) != USE)
    return -1;
  x6 = XVECEXP (x1, 0, 3);
  if (GET_CODE (x6) != CLOBBER)
    return -1;
  x7 = XVECEXP (x1, 0, 4);
  if (GET_CODE (x7) != CLOBBER)
    return -1;
  x8 = XVECEXP (x1, 0, 5);
  if (GET_CODE (x8) != CLOBBER)
    return -1;
  x9 = XEXP (x2, 1);
  if (GET_MODE (x9) != CCmode)
    return -1;
  x10 = XEXP (x6, 0);
  operands[0] = x10;
  return 0;
}

static int
pattern17 (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, 1);
  if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x4 = XEXP (x1, 0);
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
    case MEM:
      operands[0] = x4;
      if (!nonimmediate_operand (operands[0], QImode))
        return -1;
      return 0;

    case STRICT_LOW_PART:
      x5 = XEXP (x4, 0);
      operands[0] = x5;
      if (!nonimmediate_operand (operands[0], QImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern18 (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) != QImode)
    return -1;
  x3 = XEXP (x2, 0);
  if (!ix86_comparison_operator (x3, VOIDmode))
    return -1;
  operands[1] = x3;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != REG
      || REGNO (x4) != 17)
    return -1;
  x5 = XEXP (x3, 1);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  return pattern17 (x1); /* [-1, 1] */
}

static int
pattern19 (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
pattern20 (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 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  operands[0] = x3;
  if (!nonimmediate_operand (operands[0], QImode))
    return -1;
  x4 = XEXP (x1, 1);
  if (GET_MODE (x4) != QImode)
    return -1;
  x5 = XEXP (x4, 1);
  operands[1] = x5;
  if (!general_operand (operands[1], QImode))
    return -1;
  x6 = XEXP (x4, 0);
  if (!rtx_equal_p (x6, operands[0]))
    return -1;
  return 0;
}

static int
pattern21 (rtx x1, int *pnum_clobbers)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  switch (GET_CODE (x2))
    {
    case REG:
    case SUBREG:
    case MEM:
      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 QImode:
          if (GET_MODE (x3) != QImode)
            return -1;
          return 0;

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

        case V8QImode:
          if (pattern7 (x3, V8QImode) != 0)
            return -1;
          return 2;

        case V4HImode:
          if (pattern7 (x3, V4HImode) != 0)
            return -1;
          return 3;

        case V2SImode:
          if (pattern7 (x3, V2SImode) != 0)
            return -1;
          return 4;

        case V8SFmode:
          if (pattern8 (x3, V8SFmode) != 0)
            return -1;
          return 5;

        case V4SFmode:
          if (pattern8 (x3, V4SFmode) != 0)
            return -1;
          return 6;

        case V4DFmode:
          if (pattern8 (x3, V4DFmode) != 0)
            return -1;
          return 7;

        case V2DFmode:
          if (pattern8 (x3, V2DFmode) != 0)
            return -1;
          return 8;

        case V16SFmode:
          if (pattern7 (x3, V16SFmode) != 0)
            return -1;
          return 9;

        case V8DFmode:
          if (pattern7 (x3, V8DFmode) != 0)
            return -1;
          return 10;

        case SFmode:
          if (pattern19 (x3, SFmode) != 0)
            return -1;
          return 11;

        case DFmode:
          if (pattern19 (x3, DFmode) != 0)
            return -1;
          return 12;

        case TFmode:
          if (pattern8 (x3, TFmode) != 0)
            return -1;
          return 13;

        case V16SImode:
          if (pattern8 (x3, V16SImode) != 0)
            return -1;
          return 14;

        case V8SImode:
          if (pattern8 (x3, V8SImode) != 0)
            return -1;
          return 15;

        case V4SImode:
          if (pattern8 (x3, V4SImode) != 0)
            return -1;
          return 16;

        case V8DImode:
          if (pattern8 (x3, V8DImode) != 0)
            return -1;
          return 17;

        case V4DImode:
          if (pattern8 (x3, V4DImode) != 0)
            return -1;
          return 18;

        case V2DImode:
          if (pattern8 (x3, V2DImode) != 0)
            return -1;
          return 19;

        case V64QImode:
          if (pattern8 (x3, V64QImode) != 0)
            return -1;
          return 20;

        case V32QImode:
          if (pattern8 (x3, V32QImode) != 0)
            return -1;
          return 21;

        case V16QImode:
          if (pattern8 (x3, V16QImode) != 0)
            return -1;
          return 22;

        case V32HImode:
          if (pattern8 (x3, V32HImode) != 0)
            return -1;
          return 23;

        case V16HImode:
          if (pattern8 (x3, V16HImode) != 0)
            return -1;
          return 24;

        case V8HImode:
          if (pattern8 (x3, V8HImode) != 0)
            return -1;
          return 25;

        default:
          return -1;
        }

    case STRICT_LOW_PART:
      if (pattern20 (x1, pnum_clobbers) != 0)
        return -1;
      return 26;

    default:
      return -1;
    }
}

static int
pattern22 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  if (GET_MODE (x1) != SImode)
    return -1;
  x2 = XEXP (x1, 1);
  if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x3 = XEXP (x1, 2);
  if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x4 = XEXP (x1, 0);
  operands[2] = x4;
  if (!ext_register_operand (operands[2], VOIDmode))
    return -1;
  return 0;
}

static int
pattern23 (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, x12;
  int res ATTRIBUTE_UNUSED;
  if (pnum_clobbers == NULL)
    return -1;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != SImode)
    return -1;
  x4 = XEXP (x3, 1);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x5 = XEXP (x3, 2);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x6 = XEXP (x1, 0);
  if (GET_CODE (x6) != ZERO_EXTRACT
      || GET_MODE (x6) != SImode)
    return -1;
  x7 = XEXP (x6, 1);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x8 = XEXP (x6, 2);
  if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x9 = XEXP (x6, 0);
  operands[0] = x9;
  if (!ext_register_operand (operands[0], VOIDmode)
      || GET_MODE (x2) != SImode)
    return -1;
  x10 = XEXP (x3, 0);
  operands[1] = x10;
  if (!ext_register_operand (operands[1], VOIDmode))
    return -1;
  x11 = XEXP (x2, 1);
  switch (GET_CODE (x11))
    {
    case CONST_INT:
      operands[2] = x11;
      if (!const_int_operand (operands[2], VOIDmode))
        return -1;
      return 0;

    case ZERO_EXTEND:
      if (GET_MODE (x11) != SImode)
        return -1;
      x12 = XEXP (x11, 0);
      operands[2] = x12;
      if (!nonimmediate_x64nomem_operand (operands[2], QImode))
        return -1;
      return 1;

    case ZERO_EXTRACT:
      if (pattern22 (x11) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern24 (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 V8QImode:
      return pattern7 (x1, V8QImode); /* [-1, 0] */

    case V4HImode:
      if (pattern7 (x1, V4HImode) != 0)
        return -1;
      return 1;

    case V64QImode:
      if (pattern8 (x1, V64QImode) != 0)
        return -1;
      return 2;

    case V32QImode:
      if (pattern8 (x1, V32QImode) != 0)
        return -1;
      return 3;

    case V16QImode:
      if (pattern8 (x1, V16QImode) != 0)
        return -1;
      return 4;

    case V32HImode:
      if (pattern8 (x1, V32HImode) != 0)
        return -1;
      return 5;

    case V16HImode:
      if (pattern8 (x1, V16HImode) != 0)
        return -1;
      return 6;

    case V8HImode:
      if (pattern8 (x1, V8HImode) != 0)
        return -1;
      return 7;

    default:
      return -1;
    }
}

static int
pattern25 (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 V16QImode:
      if (!nonimmediate_operand (operands[0], V16QImode)
          || GET_MODE (x1) != V16QImode)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case V16SImode:
          if (!register_operand (operands[1], V16SImode))
            return -1;
          return 0;

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

        default:
          return -1;
        }

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

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

    case V8HImode:
      if (!nonimmediate_operand (operands[0], V8HImode)
          || GET_MODE (x1) != V8HImode)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case V8DImode:
          if (!register_operand (operands[1], V8DImode))
            return -1;
          return 4;

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

        default:
          return -1;
        }

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

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

    default:
      return -1;
    }
}

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

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

    default:
      return -1;
    }
}

static int
pattern27 (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 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  if (!ix86_carry_flag_operator (x3, VOIDmode))
    return -1;
  operands[1] = x3;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != REG
      || REGNO (x4) != 17)
    return -1;
  x5 = XEXP (x3, 1);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x6 = XEXP (x2, 1);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
    return -1;
  x7 = XEXP (x2, 2);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x8 = XEXP (x1, 0);
  operands[0] = x8;
  return pattern26 (x2); /* [-1, 1] */
}

static int
pattern28 (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) != USE)
    return -1;
  x3 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x3) != USE)
    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 = XVECEXP (x1, 0, 0);
  x7 = XEXP (x6, 0);
  operands[0] = x7;
  return 0;
}

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

static int
pattern30 (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) != HImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!register_operand (operands[0], HImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!nonimmediate_operand (operands[1], HImode))
    return -1;
  return 0;
}

static int
pattern31 (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 SFmode:
      if (!register_operand (operands[0], SFmode)
          || GET_MODE (x3) != SFmode
          || !nonimmediate_operand (operands[1], SFmode))
        return -1;
      return 0;

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

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

    default:
      return -1;
    }
}

static int
pattern32 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  switch (GET_CODE (x1))
    {
    case REG:
    case SUBREG:
      operands[1] = x1;
      if (!register_operand (operands[1], XFmode))
        return -1;
      return 0;

    case FLOAT_EXTEND:
      if (GET_MODE (x1) != XFmode)
        return -1;
      x2 = XEXP (x1, 0);
      operands[1] = x2;
      switch (GET_MODE (operands[1]))
        {
        case SFmode:
          if (!register_operand (operands[1], SFmode))
            return -1;
          return 1;

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

        default:
          return -1;
        }

    default:
      return -1;
    }
}

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

static int
pattern34 (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) != XFmode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!register_operand (operands[0], XFmode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!register_operand (operands[1], XFmode))
    return -1;
  return 0;
}

static int
pattern35 (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) != HImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!nonimmediate_operand (operands[0], HImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!register_operand (operands[1], XFmode))
    return -1;
  return 0;
}

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

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

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

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

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

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

    default:
      return -1;
    }
}

static int
pattern37 (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 pattern36 (x3); /* [-1, 5] */
}

static int
pattern38 (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 V16SFmode:
      if (!register_operand (operands[0], V16SFmode)
          || GET_MODE (x3) != V16SFmode
          || !vector_operand (operands[1], V16SFmode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern39 (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 (!nonimmediate_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern40 (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 (!vector_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern41 (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) != V4SImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!register_operand (operands[0], V4SImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!register_operand (operands[1], V4SImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!vector_operand (operands[2], V4SImode))
    return -1;
  x6 = XVECEXP (x2, 0, 2);
  operands[3] = x6;
  return 0;
}

static int
pattern42 (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)
      || !nonimmediate_operand (operands[3], i1))
    return -1;
  return 0;
}

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

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

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

    default:
      return -1;
    }
}

static int
pattern44 (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)
    return -1;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != XFmode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!register_operand (operands[0], XFmode))
    return -1;
  x4 = XVECEXP (x2, 0, 1);
  operands[2] = x4;
  if (!register_operand (operands[2], XFmode))
    return -1;
  x5 = XVECEXP (x2, 0, 0);
  return pattern32 (x5); /* [-1, 2] */
}

static int
pattern45 (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)
      || !nonimmediate_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern46 (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)
      || !vector_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern47 (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 SFmode:
      return pattern45 (x3, SFmode); /* [-1, 0] */

    case DFmode:
      if (pattern45 (x3, DFmode) != 0)
        return -1;
      return 1;

    case V2SFmode:
      if (pattern45 (x3, V2SFmode) != 0)
        return -1;
      return 2;

    case V16SFmode:
      if (pattern46 (x3, V16SFmode) != 0)
        return -1;
      return 3;

    case V8SFmode:
      if (pattern46 (x3, V8SFmode) != 0)
        return -1;
      return 4;

    case V4SFmode:
      if (pattern46 (x3, V4SFmode) != 0)
        return -1;
      return 5;

    case V8DFmode:
      if (pattern46 (x3, V8DFmode) != 0)
        return -1;
      return 6;

    case V4DFmode:
      if (pattern46 (x3, V4DFmode) != 0)
        return -1;
      return 7;

    case V2DFmode:
      if (pattern46 (x3, V2DFmode) != 0)
        return -1;
      return 8;

    default:
      return -1;
    }
}

static int
pattern48 (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)
    return -1;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != CCZmode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!flags_reg_operand (operands[0], CCZmode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[1]))
    {
    case SImode:
      return 0;

    case DImode:
      return 1;

    default:
      return -1;
    }
}

static int
pattern49 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (GET_MODE (operands[0]))
    {
    case HImode:
      if (!register_operand (operands[0], HImode)
          || GET_MODE (x1) != HImode)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case V16QImode:
          if (!register_operand (operands[1], V16QImode)
              || !nonimmediate_operand (operands[2], V16QImode))
            return -1;
          return 0;

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

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

        default:
          return -1;
        }

    case QImode:
      if (!register_operand (operands[0], QImode)
          || GET_MODE (x1) != QImode)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case V8HImode:
          if (!register_operand (operands[1], V8HImode)
              || !nonimmediate_operand (operands[2], V8HImode))
            return -1;
          return 3;

        case V8SImode:
          if (!register_operand (operands[1], V8SImode)
              || !nonimmediate_operand (operands[2], V8SImode))
            return -1;
          return 4;

        case V4SImode:
          if (!register_operand (operands[1], V4SImode)
              || !nonimmediate_operand (operands[2], V4SImode))
            return -1;
          return 5;

        case V8DImode:
          if (!register_operand (operands[1], V8DImode)
              || !nonimmediate_operand (operands[2], V8DImode))
            return -1;
          return 6;

        case V4DImode:
          if (!register_operand (operands[1], V4DImode)
              || !nonimmediate_operand (operands[2], V4DImode))
            return -1;
          return 7;

        case V2DImode:
          if (!register_operand (operands[1], V2DImode)
              || !nonimmediate_operand (operands[2], V2DImode))
            return -1;
          return 8;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

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

static int
pattern51 (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) != V32HImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!register_operand (operands[0], V32HImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!nonimmediate_operand (operands[1], V32HImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!const_0_to_255_operand (operands[2], SImode))
    return -1;
  return 0;
}

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) != i1)
    return -1;
  x3 = XEXP (x1, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != 17
      || GET_MODE (x3) != i1)
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[0] = x4;
  x5 = XVECEXP (x2, 0, 1);
  operands[1] = x5;
  return 0;
}

static int
pattern53 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != ZERO_EXTRACT
      || GET_MODE (x1) != DImode)
    return -1;
  x2 = XEXP (x1, 1);
  if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!register_operand (operands[0], DImode))
    return -1;
  x4 = XEXP (x1, 2);
  operands[1] = x4;
  if (!const_0_to_63_operand (operands[1], VOIDmode))
    return -1;
  return 0;
}

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

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

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

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

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

    case V16SImode:
      if (!register_operand (operands[0], V16SImode)
          || GET_MODE (x1) != V16SImode)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case V16QImode:
          if (!nonimmediate_operand (operands[1], V16QImode))
            return -1;
          return 5;

        case V16HImode:
          if (!nonimmediate_operand (operands[1], V16HImode))
            return -1;
          return 6;

        default:
          return -1;
        }

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

    case V8DImode:
      if (!register_operand (operands[0], V8DImode)
          || GET_MODE (x1) != V8DImode)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case V8HImode:
          if (!nonimmediate_operand (operands[1], V8HImode))
            return -1;
          return 8;

        case V8SImode:
          if (!nonimmediate_operand (operands[1], V8SImode))
            return -1;
          return 9;

        default:
          return -1;
        }

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

    default:
      return -1;
    }
}

static int
pattern55 (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);
  switch (GET_MODE (x2))
    {
    case V4QImode:
      if (!nonimmediate_operand (operands[1], V16QImode))
        return -1;
      return 0;

    case V4HImode:
      if (!nonimmediate_operand (operands[1], V8HImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern56 (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);
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != PARALLEL)
    return -1;
  x4 = XEXP (x2, 0);
  operands[1] = x4;
  switch (XVECLEN (x3, 0))
    {
    case 8:
      x5 = XVECEXP (x3, 0, 0);
      if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x6 = XVECEXP (x3, 0, 1);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x7 = XVECEXP (x3, 0, 2);
      if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
        return -1;
      x8 = XVECEXP (x3, 0, 3);
      if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
        return -1;
      x9 = XVECEXP (x3, 0, 4);
      if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
        return -1;
      x10 = XVECEXP (x3, 0, 5);
      if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
        return -1;
      x11 = XVECEXP (x3, 0, 6);
      if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
        return -1;
      x12 = XVECEXP (x3, 0, 7);
      if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
          || GET_MODE (x2) != V8QImode
          || !nonimmediate_operand (operands[1], V16QImode))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V8HImode:
          if (!register_operand (operands[0], V8HImode)
              || GET_MODE (x1) != V8HImode)
            return -1;
          return 0;

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

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

        default:
          return -1;
        }

    case 4:
      x5 = XVECEXP (x3, 0, 0);
      if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x6 = XVECEXP (x3, 0, 1);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x7 = XVECEXP (x3, 0, 2);
      if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
        return -1;
      x8 = XVECEXP (x3, 0, 3);
      if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V4SImode:
          res = pattern55 (x1, V4SImode);
          if (res >= 0)
            return res + 3; /* [3, 4] */
          return -1;

        case V4DImode:
          res = pattern55 (x1, V4DImode);
          if (res >= 0)
            return res + 5; /* [5, 6] */
          return -1;

        default:
          return -1;
        }

    case 2:
      x5 = XVECEXP (x3, 0, 0);
      if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x6 = XVECEXP (x3, 0, 1);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
          || !register_operand (operands[0], V2DImode)
          || GET_MODE (x1) != V2DImode)
        return -1;
      switch (GET_MODE (x2))
        {
        case V2QImode:
          if (!nonimmediate_operand (operands[1], V16QImode))
            return -1;
          return 7;

        case V2HImode:
          if (!nonimmediate_operand (operands[1], V8HImode))
            return -1;
          return 8;

        case V2SImode:
          if (!nonimmediate_operand (operands[1], V4SImode))
            return -1;
          return 9;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern57 (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], 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
      || !nonimmediate_operand (operands[1], i3))
    return -1;
  x4 = XEXP (x1, 1);
  if (GET_MODE (x4) != i2)
    return -1;
  x5 = XEXP (x4, 0);
  if (GET_MODE (x5) != i1)
    return -1;
  return 0;
}

static int
pattern58 (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, x25;
  rtx x26, x27;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != VEC_SELECT)
    return -1;
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != PARALLEL)
    return -1;
  x6 = XEXP (x2, 1);
  if (GET_CODE (x6) != i1)
    return -1;
  x7 = XEXP (x6, 0);
  if (GET_CODE (x7) != VEC_SELECT)
    return -1;
  x8 = XEXP (x7, 1);
  if (GET_CODE (x8) != PARALLEL)
    return -1;
  x9 = XEXP (x1, 0);
  operands[0] = x9;
  x10 = XEXP (x4, 0);
  operands[1] = x10;
  x11 = XEXP (x7, 0);
  if (!rtx_equal_p (x11, operands[1]))
    return -1;
  switch (XVECLEN (x5, 0))
    {
    case 8:
      x12 = XVECEXP (x5, 0, 0);
      if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x13 = XVECEXP (x5, 0, 1);
      if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
        return -1;
      x14 = XVECEXP (x5, 0, 2);
      if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
        return -1;
      x15 = XVECEXP (x5, 0, 3);
      if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
        return -1;
      x16 = XVECEXP (x5, 0, 4);
      if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
        return -1;
      x17 = XVECEXP (x5, 0, 5);
      if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
        return -1;
      x18 = XVECEXP (x5, 0, 6);
      if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
        return -1;
      x19 = XVECEXP (x5, 0, 7);
      if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 14]
          || XVECLEN (x8, 0) != 8)
        return -1;
      x20 = XVECEXP (x8, 0, 0);
      if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x21 = XVECEXP (x8, 0, 1);
      if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
        return -1;
      x22 = XVECEXP (x8, 0, 2);
      if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
        return -1;
      x23 = XVECEXP (x8, 0, 3);
      if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
        return -1;
      x24 = XVECEXP (x8, 0, 4);
      if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
        return -1;
      x25 = XVECEXP (x8, 0, 5);
      if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 11])
        return -1;
      x26 = XVECEXP (x8, 0, 6);
      if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 13])
        return -1;
      x27 = XVECEXP (x8, 0, 7);
      if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 15]
          || pattern57 (x2, V8QImode, V8HImode, V16QImode) != 0)
        return -1;
      return 0;

    case 4:
      x12 = XVECEXP (x5, 0, 0);
      if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x13 = XVECEXP (x5, 0, 1);
      if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
        return -1;
      x14 = XVECEXP (x5, 0, 2);
      if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
        return -1;
      x15 = XVECEXP (x5, 0, 3);
      if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 6]
          || XVECLEN (x8, 0) != 4)
        return -1;
      x20 = XVECEXP (x8, 0, 0);
      if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x21 = XVECEXP (x8, 0, 1);
      if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
        return -1;
      x22 = XVECEXP (x8, 0, 2);
      if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
        return -1;
      x23 = XVECEXP (x8, 0, 3);
      if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
          || pattern57 (x2, V4HImode, V4SImode, V8HImode) != 0)
        return -1;
      return 1;

    case 2:
      x12 = XVECEXP (x5, 0, 0);
      if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x13 = XVECEXP (x5, 0, 1);
      if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 2]
          || XVECLEN (x8, 0) != 2)
        return -1;
      x20 = XVECEXP (x8, 0, 0);
      if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x21 = XVECEXP (x8, 0, 1);
      if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 3]
          || pattern57 (x2, V2SImode, V2DImode, V4SImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

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

static int
pattern60 (rtx x1, machine_mode i1, machine_mode i2, int i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XVECEXP (x2, 0, 0);
  if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x4 = XVECEXP (x2, 0, 1);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + i3]
      || !register_operand (operands[0], i2)
      || GET_MODE (x1) != i2)
    return -1;
  x5 = XEXP (x1, 0);
  x6 = XEXP (x5, 0);
  operands[1] = x6;
  if (!nonimmediate_operand (operands[1], i1))
    return -1;
  return 0;
}

static int
pattern61 (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;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i3)
    return -1;
  x3 = XEXP (x1, 1);
  if (GET_CODE (x3) != CONST_VECTOR
      || XVECLEN (x3, 0) != 2
      || GET_MODE (x3) != i3
      || pattern60 (x1, i1, i2, 0) != 0)
    return -1;
  return 0;
}

static int
pattern62 (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)
    return -1;
  x3 = XEXP (x1, 1);
  if (GET_CODE (x3) != CONST_VECTOR
      || XVECLEN (x3, 0) != 2
      || GET_MODE (x3) != i1)
    return -1;
  return 0;
}

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

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

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

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

static int
pattern67 (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)
      || !vector_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern68 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 2);
  if (XWINT (x2, 0) != 1LL)
    return -1;
  x3 = XEXP (x1, 1);
  if (!rtx_equal_p (x3, operands[1]))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case V4SFmode:
      return pattern67 (x1, V4SFmode); /* [-1, 0] */

    case V2DFmode:
      if (pattern67 (x1, V2DFmode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern69 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  operands[1] = x3;
  x4 = XEXP (x2, 1);
  operands[2] = x4;
  x5 = XEXP (x1, 2);
  switch (GET_CODE (x5))
    {
    case REG:
    case SUBREG:
      operands[4] = x5;
      x6 = XEXP (x1, 1);
      operands[3] = x6;
      switch (GET_MODE (operands[0]))
        {
        case V16SFmode:
          return pattern63 (x1, V16SFmode, HImode); /* [-1, 0] */

        case V8SFmode:
          if (pattern63 (x1, V8SFmode, QImode) != 0)
            return -1;
          return 1;

        case V4SFmode:
          if (pattern63 (x1, V4SFmode, QImode) != 0)
            return -1;
          return 2;

        case V8DFmode:
          if (pattern63 (x1, V8DFmode, QImode) != 0)
            return -1;
          return 3;

        case V4DFmode:
          if (pattern63 (x1, V4DFmode, QImode) != 0)
            return -1;
          return 4;

        case V2DFmode:
          if (pattern63 (x1, V2DFmode, QImode) != 0)
            return -1;
          return 5;

        case V16SImode:
          if (pattern64 (x1, V16SImode, HImode) != 0)
            return -1;
          return 6;

        case V8SImode:
          if (pattern64 (x1, V8SImode, QImode) != 0)
            return -1;
          return 7;

        case V4SImode:
          if (pattern65 (x1, V4SImode, QImode) != 0)
            return -1;
          return 8;

        case V8DImode:
          if (pattern64 (x1, V8DImode, QImode) != 0)
            return -1;
          return 9;

        case V4DImode:
          if (pattern64 (x1, V4DImode, QImode) != 0)
            return -1;
          return 10;

        case V2DImode:
          if (pattern64 (x1, V2DImode, QImode) != 0)
            return -1;
          return 11;

        case V64QImode:
          if (pattern66 (x1, V64QImode, DImode) != 0)
            return -1;
          return 12;

        case V16QImode:
          if (pattern65 (x1, V16QImode, HImode) != 0)
            return -1;
          return 13;

        case V32QImode:
          if (pattern66 (x1, V32QImode, SImode) != 0)
            return -1;
          return 14;

        case V32HImode:
          if (pattern66 (x1, V32HImode, SImode) != 0)
            return -1;
          return 15;

        case V16HImode:
          if (pattern66 (x1, V16HImode, HImode) != 0)
            return -1;
          return 16;

        case V8HImode:
          if (pattern66 (x1, V8HImode, QImode) != 0)
            return -1;
          return 17;

        default:
          return -1;
        }

    case CONST_INT:
      res = pattern68 (x1);
      if (res >= 0)
        return res + 18; /* [18, 19] */
      return -1;

    default:
      return -1;
    }
}

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

    case V4SFmode:
      if (pattern63 (x1, V4SFmode, QImode) != 0)
        return -1;
      return 1;

    case V4DFmode:
      if (pattern63 (x1, V4DFmode, QImode) != 0)
        return -1;
      return 2;

    case V2DFmode:
      if (pattern63 (x1, V2DFmode, QImode) != 0)
        return -1;
      return 3;

    case V16SFmode:
      if (pattern64 (x1, V16SFmode, HImode) != 0)
        return -1;
      return 4;

    case V8DFmode:
      if (pattern64 (x1, V8DFmode, QImode) != 0)
        return -1;
      return 5;

    case V16SImode:
      if (pattern63 (x1, V16SImode, HImode) != 0)
        return -1;
      return 6;

    case V8SImode:
      if (pattern63 (x1, V8SImode, QImode) != 0)
        return -1;
      return 7;

    case V4SImode:
      if (pattern63 (x1, V4SImode, QImode) != 0)
        return -1;
      return 8;

    case V8DImode:
      if (pattern63 (x1, V8DImode, QImode) != 0)
        return -1;
      return 9;

    case V4DImode:
      if (pattern63 (x1, V4DImode, QImode) != 0)
        return -1;
      return 10;

    case V2DImode:
      if (pattern63 (x1, V2DImode, QImode) != 0)
        return -1;
      return 11;

    case V64QImode:
      if (pattern63 (x1, V64QImode, DImode) != 0)
        return -1;
      return 12;

    case V32QImode:
      if (pattern63 (x1, V32QImode, SImode) != 0)
        return -1;
      return 13;

    case V16QImode:
      if (pattern63 (x1, V16QImode, HImode) != 0)
        return -1;
      return 14;

    case V32HImode:
      if (pattern63 (x1, V32HImode, SImode) != 0)
        return -1;
      return 15;

    case V16HImode:
      if (pattern63 (x1, V16HImode, HImode) != 0)
        return -1;
      return 16;

    case V8HImode:
      if (pattern63 (x1, V8HImode, QImode) != 0)
        return -1;
      return 17;

    default:
      return -1;
    }
}

static int
pattern71 (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, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i3)
    return -1;
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) != PARALLEL
      || XVECLEN (x4, 0) != 2)
    return -1;
  x5 = XVECEXP (x4, 0, 0);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x6 = XVECEXP (x4, 0, 1);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
      || !register_operand (operands[0], i1)
      || GET_MODE (x1) != i1
      || GET_MODE (x2) != i1)
    return -1;
  x7 = XEXP (x3, 0);
  operands[1] = x7;
  if (!nonimmediate_operand (operands[1], i2)
      || !vector_move_operand (operands[2], i1)
      || !register_operand (operands[3], QImode))
    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, 1);
  operands[2] = x2;
  x3 = XEXP (x1, 2);
  operands[3] = x3;
  x4 = XEXP (x1, 0);
  x5 = XEXP (x4, 0);
  switch (GET_CODE (x5))
    {
    case REG:
    case SUBREG:
    case MEM:
      operands[1] = x5;
      switch (GET_MODE (operands[0]))
        {
        case V16SFmode:
          return 0;

        case V8SFmode:
          return 1;

        case V4SFmode:
          return 2;

        case V8DFmode:
          return 3;

        case V4DFmode:
          return 4;

        case V2DFmode:
          return 5;

        default:
          return -1;
        }

    case VEC_SELECT:
      if (pattern71 (x1, V2DFmode, V4SImode, V2SImode) != 0)
        return -1;
      return 6;

    default:
      return -1;
    }
}

static int
pattern73 (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], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !vector_operand (operands[1], i3)
      || !vector_move_operand (operands[2], i1)
      || !register_operand (operands[3], i2))
    return -1;
  return 0;
}

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

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, 1);
  operands[2] = x2;
  x3 = XEXP (x1, 2);
  operands[3] = x3;
  x4 = XEXP (x1, 0);
  x5 = XEXP (x4, 0);
  switch (GET_CODE (x5))
    {
    case REG:
    case SUBREG:
    case MEM:
      operands[1] = x5;
      switch (GET_MODE (operands[0]))
        {
        case V16SImode:
          return pattern73 (x1, V16SImode, HImode, V16SFmode); /* [-1, 0] */

        case V8SImode:
          if (pattern74 (x1, V8SImode, QImode) != 0)
            return -1;
          return 1;

        case V4SImode:
          if (pattern74 (x1, V4SImode, QImode) != 0)
            return -1;
          return 2;

        case V8DImode:
          if (!register_operand (operands[0], V8DImode)
              || GET_MODE (x1) != V8DImode
              || GET_MODE (x4) != V8DImode
              || !vector_move_operand (operands[2], V8DImode)
              || !register_operand (operands[3], QImode))
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V8DFmode:
              if (!vector_operand (operands[1], V8DFmode))
                return -1;
              return 3;

            case V8SFmode:
              if (!vector_operand (operands[1], V8SFmode))
                return -1;
              return 4;

            default:
              return -1;
            }

        case V4DImode:
          if (!register_operand (operands[0], V4DImode)
              || GET_MODE (x1) != V4DImode
              || GET_MODE (x4) != V4DImode
              || !vector_move_operand (operands[2], V4DImode)
              || !register_operand (operands[3], QImode))
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V4DFmode:
              if (!vector_operand (operands[1], V4DFmode))
                return -1;
              return 5;

            case V4SFmode:
              if (!vector_operand (operands[1], V4SFmode))
                return -1;
              return 6;

            default:
              return -1;
            }

        case V2DImode:
          if (pattern73 (x1, V2DImode, QImode, V2DFmode) != 0)
            return -1;
          return 7;

        default:
          return -1;
        }

    case VEC_SELECT:
      if (pattern71 (x1, V2DImode, V4SFmode, V2SFmode) != 0)
        return -1;
      return 8;

    default:
      return -1;
    }
}

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

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);
  x3 = XEXP (x2, 0);
  operands[1] = x3;
  x4 = XEXP (x1, 1);
  operands[2] = x4;
  x5 = XEXP (x1, 2);
  operands[3] = x5;
  switch (GET_MODE (operands[0]))
    {
    case V16QImode:
      if (!nonimmediate_operand (operands[0], V16QImode)
          || GET_MODE (x1) != V16QImode
          || GET_MODE (x2) != V16QImode
          || !vector_move_operand (operands[2], V16QImode)
          || !register_operand (operands[3], HImode))
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case V16SImode:
          if (!register_operand (operands[1], V16SImode))
            return -1;
          return 0;

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

        default:
          return -1;
        }

    case V16HImode:
      if (pattern76 (x1, V16HImode, HImode, V16SImode) != 0)
        return -1;
      return 2;

    case V8SImode:
      if (pattern76 (x1, V8SImode, QImode, V8DImode) != 0)
        return -1;
      return 3;

    case V8HImode:
      if (!nonimmediate_operand (operands[0], V8HImode)
          || GET_MODE (x1) != V8HImode
          || GET_MODE (x2) != V8HImode
          || !vector_move_operand (operands[2], V8HImode)
          || !register_operand (operands[3], QImode))
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case V8DImode:
          if (!register_operand (operands[1], V8DImode))
            return -1;
          return 4;

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

        default:
          return -1;
        }

    case V32QImode:
      if (pattern76 (x1, V32QImode, SImode, V32HImode) != 0)
        return -1;
      return 6;

    case V4SImode:
      if (pattern76 (x1, V4SImode, QImode, V4DImode) != 0)
        return -1;
      return 7;

    default:
      return -1;
    }
}

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

    case V32QImode:
      if (pattern63 (x1, V32QImode, SImode) != 0)
        return -1;
      return 1;

    case V16QImode:
      if (pattern63 (x1, V16QImode, HImode) != 0)
        return -1;
      return 2;

    case V32HImode:
      if (pattern63 (x1, V32HImode, SImode) != 0)
        return -1;
      return 3;

    case V16HImode:
      if (pattern63 (x1, V16HImode, HImode) != 0)
        return -1;
      return 4;

    case V8HImode:
      if (pattern63 (x1, V8HImode, QImode) != 0)
        return -1;
      return 5;

    default:
      return -1;
    }
}

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

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

    case V16HImode:
      if (pattern79 (x1, V16HImode, HImode) != 0)
        return -1;
      return 1;

    case V8HImode:
      if (pattern79 (x1, V8HImode, QImode) != 0)
        return -1;
      return 2;

    case V8SImode:
      if (pattern79 (x1, V8SImode, QImode) != 0)
        return -1;
      return 3;

    case V4SImode:
      if (pattern79 (x1, V4SImode, QImode) != 0)
        return -1;
      return 4;

    case V4DImode:
      if (pattern79 (x1, V4DImode, QImode) != 0)
        return -1;
      return 5;

    case V2DImode:
      if (pattern79 (x1, V2DImode, QImode) != 0)
        return -1;
      return 6;

    case V16SImode:
      if (pattern65 (x1, V16SImode, HImode) != 0)
        return -1;
      return 7;

    case V8DImode:
      if (pattern65 (x1, V8DImode, QImode) != 0)
        return -1;
      return 8;

    default:
      return -1;
    }
}

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

static int
pattern82 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  operands[1] = x3;
  x4 = XEXP (x2, 1);
  operands[2] = x4;
  x5 = XEXP (x1, 1);
  operands[3] = x5;
  x6 = XEXP (x1, 2);
  operands[4] = x6;
  switch (GET_CODE (operands[2]))
    {
    case REG:
    case SUBREG:
    case MEM:
      switch (GET_MODE (operands[0]))
        {
        case V16SImode:
          return pattern66 (x1, V16SImode, HImode); /* [-1, 0] */

        case V8SImode:
          if (pattern66 (x1, V8SImode, QImode) != 0)
            return -1;
          return 1;

        case V4SImode:
          if (pattern66 (x1, V4SImode, QImode) != 0)
            return -1;
          return 2;

        case V8DImode:
          if (pattern66 (x1, V8DImode, QImode) != 0)
            return -1;
          return 3;

        case V4DImode:
          if (pattern66 (x1, V4DImode, QImode) != 0)
            return -1;
          return 4;

        case V2DImode:
          if (pattern66 (x1, V2DImode, QImode) != 0)
            return -1;
          return 5;

        default:
          return -1;
        }

    case CONST_INT:
      if (!const_0_to_255_operand (operands[2], SImode))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V16SImode:
          if (pattern81 (x1, V16SImode, HImode) != 0)
            return -1;
          return 6;

        case V8SImode:
          if (pattern81 (x1, V8SImode, QImode) != 0)
            return -1;
          return 7;

        case V4SImode:
          if (pattern81 (x1, V4SImode, QImode) != 0)
            return -1;
          return 8;

        case V8DImode:
          if (pattern81 (x1, V8DImode, QImode) != 0)
            return -1;
          return 9;

        case V4DImode:
          if (pattern81 (x1, V4DImode, QImode) != 0)
            return -1;
          return 10;

        case V2DImode:
          if (pattern81 (x1, V2DImode, QImode) != 0)
            return -1;
          return 11;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

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

    case V8SImode:
      if (pattern64 (x1, V8SImode, QImode) != 0)
        return -1;
      return 1;

    case V4SImode:
      if (pattern65 (x1, V4SImode, QImode) != 0)
        return -1;
      return 2;

    case V8DImode:
      if (pattern64 (x1, V8DImode, QImode) != 0)
        return -1;
      return 3;

    case V4DImode:
      if (pattern64 (x1, V4DImode, QImode) != 0)
        return -1;
      return 4;

    case V2DImode:
      if (pattern64 (x1, V2DImode, QImode) != 0)
        return -1;
      return 5;

    case V64QImode:
      if (pattern66 (x1, V64QImode, DImode) != 0)
        return -1;
      return 6;

    case V16QImode:
      if (pattern66 (x1, V16QImode, HImode) != 0)
        return -1;
      return 7;

    case V32QImode:
      if (pattern66 (x1, V32QImode, SImode) != 0)
        return -1;
      return 8;

    case V32HImode:
      if (pattern66 (x1, V32HImode, SImode) != 0)
        return -1;
      return 9;

    case V16HImode:
      if (pattern66 (x1, V16HImode, HImode) != 0)
        return -1;
      return 10;

    case V8HImode:
      if (pattern65 (x1, V8HImode, QImode) != 0)
        return -1;
      return 11;

    default:
      return -1;
    }
}

static int
pattern84 (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], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !nonimmediate_operand (operands[1], i2)
      || !vector_move_operand (operands[2], i1)
      || !register_operand (operands[3], i3))
    return -1;
  return 0;
}

static int
pattern85 (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
      || !vector_move_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern86 (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
      || !vector_move_operand (operands[2], i1))
    return -1;
  x3 = XEXP (x2, 0);
  switch (GET_MODE (x3))
    {
    case V4QImode:
      if (!nonimmediate_operand (operands[1], V16QImode))
        return -1;
      return 0;

    case V4HImode:
      if (!nonimmediate_operand (operands[1], V8HImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern87 (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, 1);
  operands[2] = x2;
  x3 = XEXP (x1, 2);
  operands[3] = x3;
  x4 = XEXP (x1, 0);
  x5 = XEXP (x4, 0);
  switch (GET_CODE (x5))
    {
    case REG:
    case SUBREG:
    case MEM:
      operands[1] = x5;
      switch (GET_MODE (operands[0]))
        {
        case V16HImode:
          return pattern84 (x1, V16HImode, V16QImode, HImode); /* [-1, 0] */

        case V32HImode:
          if (pattern84 (x1, V32HImode, V32QImode, SImode) != 0)
            return -1;
          return 1;

        case V16SImode:
          if (!register_operand (operands[0], V16SImode)
              || GET_MODE (x1) != V16SImode
              || GET_MODE (x4) != V16SImode
              || !vector_move_operand (operands[2], V16SImode)
              || !register_operand (operands[3], HImode))
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V16QImode:
              if (!nonimmediate_operand (operands[1], V16QImode))
                return -1;
              return 2;

            case V16HImode:
              if (!nonimmediate_operand (operands[1], V16HImode))
                return -1;
              return 3;

            default:
              return -1;
            }

        case V8SImode:
          if (pattern84 (x1, V8SImode, V8HImode, QImode) != 0)
            return -1;
          return 4;

        case V8DImode:
          if (!register_operand (operands[0], V8DImode)
              || GET_MODE (x1) != V8DImode
              || GET_MODE (x4) != V8DImode
              || !vector_move_operand (operands[2], V8DImode)
              || !register_operand (operands[3], QImode))
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V8HImode:
              if (!nonimmediate_operand (operands[1], V8HImode))
                return -1;
              return 5;

            case V8SImode:
              if (!nonimmediate_operand (operands[1], V8SImode))
                return -1;
              return 6;

            default:
              return -1;
            }

        case V4DImode:
          if (pattern84 (x1, V4DImode, V4SImode, QImode) != 0)
            return -1;
          return 7;

        default:
          return -1;
        }

    case VEC_SELECT:
      x6 = XEXP (x5, 1);
      if (GET_CODE (x6) != PARALLEL)
        return -1;
      x7 = XEXP (x5, 0);
      operands[1] = x7;
      if (!register_operand (operands[3], QImode))
        return -1;
      switch (XVECLEN (x6, 0))
        {
        case 8:
          x8 = XVECEXP (x6, 0, 0);
          if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x9 = XVECEXP (x6, 0, 1);
          if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
            return -1;
          x10 = XVECEXP (x6, 0, 2);
          if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
            return -1;
          x11 = XVECEXP (x6, 0, 3);
          if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
            return -1;
          x12 = XVECEXP (x6, 0, 4);
          if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
            return -1;
          x13 = XVECEXP (x6, 0, 5);
          if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
            return -1;
          x14 = XVECEXP (x6, 0, 6);
          if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
            return -1;
          x15 = XVECEXP (x6, 0, 7);
          if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
              || GET_MODE (x5) != V8QImode
              || !nonimmediate_operand (operands[1], V16QImode))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case V8HImode:
              if (pattern85 (x1, V8HImode) != 0)
                return -1;
              return 8;

            case V8SImode:
              if (pattern85 (x1, V8SImode) != 0)
                return -1;
              return 9;

            case V8DImode:
              if (pattern85 (x1, V8DImode) != 0)
                return -1;
              return 10;

            default:
              return -1;
            }

        case 4:
          x8 = XVECEXP (x6, 0, 0);
          if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x9 = XVECEXP (x6, 0, 1);
          if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
            return -1;
          x10 = XVECEXP (x6, 0, 2);
          if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
            return -1;
          x11 = XVECEXP (x6, 0, 3);
          if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case V4SImode:
              res = pattern86 (x1, V4SImode);
              if (res >= 0)
                return res + 11; /* [11, 12] */
              return -1;

            case V4DImode:
              res = pattern86 (x1, V4DImode);
              if (res >= 0)
                return res + 13; /* [13, 14] */
              return -1;

            default:
              return -1;
            }

        case 2:
          x8 = XVECEXP (x6, 0, 0);
          if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x9 = XVECEXP (x6, 0, 1);
          if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
              || !register_operand (operands[0], V2DImode)
              || GET_MODE (x1) != V2DImode
              || GET_MODE (x4) != V2DImode
              || !vector_move_operand (operands[2], V2DImode))
            return -1;
          switch (GET_MODE (x5))
            {
            case V2QImode:
              if (!nonimmediate_operand (operands[1], V16QImode))
                return -1;
              return 15;

            case V2HImode:
              if (!nonimmediate_operand (operands[1], V8HImode))
                return -1;
              return 16;

            case V2SImode:
              if (!nonimmediate_operand (operands[1], V4SImode))
                return -1;
              return 17;

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

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

static int
pattern89 (rtx x1, int *pnum_clobbers)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (pnum_clobbers == NULL)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != SImode
      || !register_operand (operands[0], DImode)
      || GET_MODE (x1) != DImode)
    return -1;
  return 0;
}

static int
pattern90 (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, 0);
  if (GET_MODE (x2) != SImode
      || !register_operand (operands[0], DImode)
      || GET_MODE (x1) != DImode)
    return -1;
  x3 = XEXP (x2, 0);
  operands[1] = x3;
  if (!nonimmediate_operand (operands[1], SImode))
    return -1;
  x4 = XEXP (x2, 1);
  operands[2] = x4;
  if (!x86_64_general_operand (operands[2], SImode))
    return -1;
  return 0;
}

static int
pattern91 (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) != SImode
      || !register_operand (operands[0], DImode)
      || GET_MODE (x1) != DImode)
    return -1;
  x3 = XEXP (x2, 0);
  operands[1] = x3;
  if (!nonimmediate_operand (operands[1], SImode))
    return -1;
  x4 = XEXP (x2, 1);
  operands[2] = x4;
  return 0;
}

static int
pattern92 (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, 0);
  if (GET_MODE (x2) != DImode
      || !register_operand (operands[0], DImode)
      || GET_MODE (x1) != DImode)
    return -1;
  x3 = XEXP (x2, 0);
  operands[1] = x3;
  if (!register_operand (operands[1], SImode))
    return -1;
  x4 = XEXP (x1, 1);
  operands[2] = x4;
  if (!x86_64_zext_immediate_operand (operands[2], DImode))
    return -1;
  return 0;
}

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

static int
pattern94 (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) != 17
      || GET_MODE (x3) != CCmode)
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 0);
  operands[0] = x5;
  return 0;
}

static int
pattern95 (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
pattern96 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (GET_MODE (operands[0]))
    {
    case SImode:
      if (!register_operand (operands[0], SImode)
          || GET_MODE (x1) != SImode
          || !nonimmediate_operand (operands[1], SImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern97 (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
      || !nonimmediate_operand (operands[1], i1)
      || !register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern98 (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 = XVECEXP (x2, 0, 0);
  operands[2] = x3;
  switch (GET_MODE (operands[0]))
    {
    case SImode:
      x4 = XVECEXP (x1, 0, 0);
      x5 = XEXP (x4, 1);
      return pattern97 (x5, SImode); /* [-1, 0] */

    case DImode:
      x4 = XVECEXP (x1, 0, 0);
      x5 = XEXP (x4, 1);
      if (pattern97 (x5, DImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern99 (rtx x1, int *pnum_clobbers)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (pnum_clobbers == NULL)
    return -1;
  x2 = XVECEXP (x1, 0, 1);
  if (XVECLEN (x2, 0) != 1
      || XINT (x2, 1) != 39)
    return -1;
  return pattern98 (x1); /* [-1, 1] */
}

static int
pattern100 (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, 0);
  operands[0] = x3;
  x4 = XEXP (x2, 1);
  x5 = XEXP (x4, 0);
  operands[1] = x5;
  x6 = XVECEXP (x1, 0, 1);
  switch (GET_CODE (x6))
    {
    case CLOBBER:
      x7 = XEXP (x6, 0);
      if (GET_CODE (x7) != REG
          || REGNO (x7) != 17
          || GET_MODE (x7) != CCmode)
        return -1;
      return pattern96 (x4); /* [-1, 1] */

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

    default:
      return -1;
    }
}

static int
pattern101 (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) != 17
      || GET_MODE (x2) != CCmode)
    return -1;
  return 0;
}

static int
pattern102 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x2) != UNSPEC
      || XVECLEN (x2, 0) != 1
      || XINT (x2, 1) != 170)
    return -1;
  x3 = XVECEXP (x1, 0, 0);
  x4 = XEXP (x3, 0);
  operands[0] = x4;
  x5 = XEXP (x3, 1);
  x6 = XEXP (x5, 0);
  operands[1] = x6;
  x7 = XVECEXP (x2, 0, 0);
  operands[2] = x7;
  if (!const_4_or_8_to_11_operand (operands[2], SImode))
    return -1;
  return 0;
}

static int
pattern103 (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
pattern104 (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);
  if (GET_CODE (x2) != UNSPEC
      || XVECLEN (x2, 0) != 1
      || XINT (x2, 1) != 170)
    return -1;
  x3 = XVECEXP (x1, 0, 0);
  x4 = XEXP (x3, 0);
  operands[0] = x4;
  x5 = XEXP (x3, 1);
  x6 = XEXP (x5, 0);
  operands[1] = x6;
  x7 = XEXP (x5, 1);
  operands[2] = x7;
  x8 = XVECEXP (x2, 0, 0);
  operands[3] = x8;
  if (!const48_operand (operands[3], SImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case V16SFmode:
      return pattern103 (x5, V16SFmode); /* [-1, 0] */

    case V8SFmode:
      if (pattern103 (x5, V8SFmode) != 0)
        return -1;
      return 1;

    case V4SFmode:
      if (pattern103 (x5, V4SFmode) != 0)
        return -1;
      return 2;

    case V8DFmode:
      if (pattern103 (x5, V8DFmode) != 0)
        return -1;
      return 3;

    case V4DFmode:
      if (pattern103 (x5, V4DFmode) != 0)
        return -1;
      return 4;

    case V2DFmode:
      if (pattern103 (x5, V2DFmode) != 0)
        return -1;
      return 5;

    default:
      return -1;
    }
}

static int
pattern105 (rtx x1, machine_mode i1)
{
  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) != i1)
    return -1;
  x4 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x4) != UNSPEC
      || XVECLEN (x4, 0) != 1
      || XINT (x4, 1) != 170)
    return -1;
  x5 = XEXP (x2, 0);
  operands[0] = x5;
  if (!register_operand (operands[0], i1))
    return -1;
  return 0;
}

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

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

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

    default:
      return -1;
    }
}

static int
pattern107 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, 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, 2);
  if (GET_CODE (x3) != CLOBBER)
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 0);
  operands[0] = x5;
  x6 = XEXP (x4, 1);
  x7 = XEXP (x6, 0);
  operands[1] = x7;
  if (!nonimmediate_operand (operands[1], SImode))
    return -1;
  x8 = XEXP (x2, 0);
  operands[3] = x8;
  if (!scratch_operand (operands[3], DImode))
    return -1;
  x9 = XEXP (x3, 0);
  operands[2] = x9;
  if (!memory_operand (operands[2], DImode))
    return -1;
  return pattern106 (x6); /* [-1, 2] */
}

static int
pattern108 (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, 1);
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != UMOD)
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 0);
  operands[0] = x5;
  x6 = XEXP (x4, 1);
  x7 = XEXP (x6, 0);
  operands[2] = x7;
  x8 = XEXP (x6, 1);
  operands[3] = x8;
  x9 = XEXP (x2, 0);
  operands[1] = x9;
  x10 = XEXP (x3, 0);
  if (!rtx_equal_p (x10, operands[2]))
    return -1;
  x11 = XEXP (x3, 1);
  if (!rtx_equal_p (x11, operands[3]))
    return -1;
  switch (GET_CODE (operands[3]))
    {
    case REG:
    case SUBREG:
    case MEM:
      return 0;

    case CONST_INT:
      return 1;

    default:
      return -1;
    }
}

static int
pattern109 (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);
  if (GET_CODE (x2) != CLOBBER)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != 17
      || GET_MODE (x3) != CCmode)
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x4) != CLOBBER)
    return -1;
  x5 = XVECEXP (x1, 0, 0);
  x6 = XEXP (x5, 0);
  operands[0] = x6;
  x7 = XEXP (x5, 1);
  x8 = XEXP (x7, 0);
  operands[1] = x8;
  x9 = XEXP (x7, 1);
  operands[2] = x9;
  x10 = XEXP (x4, 0);
  operands[3] = x10;
  switch (GET_MODE (operands[0]))
    {
    case DImode:
      if (!register_operand (operands[0], DImode)
          || GET_MODE (x7) != DImode
          || !register_operand (operands[1], DImode)
          || !const_1_to_31_operand (operands[2], QImode)
          || !scratch_operand (operands[3], SImode))
        return -1;
      return 0;

    case TImode:
      if (!register_operand (operands[0], TImode)
          || GET_MODE (x7) != TImode
          || !register_operand (operands[1], TImode)
          || !const_1_to_63_operand (operands[2], QImode)
          || !scratch_operand (operands[3], DImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern110 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != CLOBBER)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != MEM
      || GET_MODE (x2) != BLKmode)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != SCRATCH)
    return -1;
  return 0;
}

static int
pattern111 (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) != SImode)
    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 = XEXP (x5, 0);
  if (GET_CODE (x6) != REG
      || REGNO (x6) != 17
      || GET_MODE (x6) != CCmode)
    return -1;
  x7 = XEXP (x2, 0);
  operands[0] = x7;
  if (!register_operand (operands[0], SImode))
    return -1;
  x8 = XEXP (x3, 0);
  operands[1] = x8;
  if (!nonimmediate_operand (operands[1], SImode))
    return -1;
  x9 = XEXP (x4, 0);
  operands[2] = x9;
  if (!scratch_operand (operands[2], SImode))
    return -1;
  return 0;
}

static int
pattern112 (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);
  if (GET_CODE (x2) != UNSPEC
      || XVECLEN (x2, 0) != 1
      || XINT (x2, 1) != 39)
    return -1;
  x3 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x3) != CLOBBER)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != REG
      || REGNO (x4) != 17
      || GET_MODE (x4) != CCmode)
    return -1;
  x5 = XVECEXP (x1, 0, 0);
  x6 = XEXP (x5, 0);
  operands[0] = x6;
  x7 = XEXP (x5, 1);
  x8 = XEXP (x7, 0);
  operands[1] = x8;
  return pattern98 (x1); /* [-1, 1] */
}

static int
pattern113 (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, 0);
  if (GET_CODE (x3) != MEM)
    return -1;
  x4 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x4) != SET)
    return -1;
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != PLUS)
    return -1;
  x6 = XEXP (x5, 1);
  if (GET_CODE (x6) != CONST_INT)
    return -1;
  return 0;
}

static int
pattern114 (rtx x1)
{
  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) != CLOBBER)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != 17
      || GET_MODE (x3) != CCmode)
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  return pattern110 (x4); /* [-1, 0] */
}

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

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

static int
pattern117 (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);
  if (GET_CODE (x2) != CLOBBER)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != 17
      || GET_MODE (x3) != CCmode)
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  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 DImode:
      if (!register_operand (operands[0], DImode)
          || GET_MODE (x6) != DImode)
        return -1;
      return 0;

    case TImode:
      if (pattern115 (x6) != 0)
        return -1;
      return 1;

    case SImode:
      if (pattern116 (x6) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern118 (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 = XEXP (x2, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != 17
      || GET_MODE (x3) != CCmode)
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 0);
  operands[0] = x5;
  x6 = XEXP (x4, 1);
  x7 = XEXP (x6, 0);
  operands[1] = x7;
  return pattern96 (x6); /* [-1, 1] */
}

static int
pattern119 (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) != 17
      || GET_MODE (x2) != CCmode)
    return -1;
  return 0;
}

static int
pattern120 (rtx x1, rtx_code i1)
{
  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) != i1)
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  return pattern119 (x4); /* [-1, 0] */
}

static int
pattern121 (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, 1);
  if (GET_CODE (x2) != i1)
    return -1;
  x3 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x3) != CLOBBER)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != REG
      || REGNO (x4) != 17
      || GET_MODE (x4) != CCmode)
    return -1;
  x5 = XVECEXP (x1, 0, 0);
  x6 = XEXP (x5, 0);
  operands[0] = x6;
  return 0;
}

static int
pattern122 (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
      || !vector_move_operand (operands[1], i1)
      || !register_operand (operands[2], i2)
      || !nonimmediate_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);
  operands[1] = x2;
  x3 = XVECEXP (x1, 0, 1);
  operands[2] = x3;
  x4 = XVECEXP (x1, 0, 2);
  operands[3] = x4;
  switch (GET_MODE (operands[0]))
    {
    case SFmode:
      return pattern122 (x1, V4SFmode, SFmode); /* [-1, 0] */

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

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

    default:
      return -1;
    }
}

static int
pattern124 (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) != CCmode)
    return -1;
  x3 = XEXP (x1, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != 17
      || GET_MODE (x3) != CCmode)
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[2] = x4;
  if (!register_operand (operands[2], V16QImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[3] = x5;
  return 0;
}

static int
pattern125 (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_CODE (x2) != REG
      || REGNO (x2) != 7)
    return -1;
  x3 = XEXP (x1, 1);
  if (GET_CODE (x3) != PLUS)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != REG
      || REGNO (x4) != 7)
    return -1;
  x5 = XEXP (x3, 1);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + -16])
    return -1;
  return 0;
}

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

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

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

static int
pattern129 (rtx x1, int *pnum_clobbers, 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);
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
    case MEM:
      if (pnum_clobbers == NULL)
        return -1;
      operands[1] = x4;
      x5 = XEXP (x2, 0);
      operands[2] = x5;
      switch (GET_MODE (operands[0]))
        {
        case TImode:
          return pattern128 (x1, DImode, TImode); /* [-1, 0] */

        case HImode:
          if (pattern128 (x1, QImode, HImode) != 0)
            return -1;
          return 1;

        default:
          return -1;
        }

    case VEC_SELECT:
      x6 = XEXP (x4, 1);
      if (GET_CODE (x6) != PARALLEL)
        return -1;
      x5 = XEXP (x2, 0);
      if (GET_CODE (x5) != VEC_SELECT)
        return -1;
      x7 = XEXP (x5, 1);
      if (GET_CODE (x7) != PARALLEL)
        return -1;
      x8 = XEXP (x4, 0);
      operands[1] = x8;
      x9 = XEXP (x5, 0);
      operands[2] = x9;
      return 2;

    default:
      return -1;
    }
}

static int
pattern130 (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 (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i1)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) != i3
      || !nonimmediate_operand (operands[1], i2))
    return -1;
  x5 = XEXP (x2, 1);
  if (GET_MODE (x5) != i1)
    return -1;
  x6 = XEXP (x5, 0);
  if (GET_MODE (x6) != i3
      || !nonimmediate_operand (operands[2], i2)
      || !vector_move_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern131 (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, x25;
  rtx x26, x27, x28;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != VEC_SELECT)
    return -1;
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != PARALLEL)
    return -1;
  x6 = XEXP (x2, 1);
  if (GET_CODE (x6) != i1)
    return -1;
  x7 = XEXP (x6, 0);
  if (GET_CODE (x7) != VEC_SELECT)
    return -1;
  x8 = XEXP (x7, 1);
  if (GET_CODE (x8) != PARALLEL)
    return -1;
  x9 = XEXP (x4, 0);
  operands[1] = x9;
  x10 = XEXP (x7, 0);
  operands[2] = x10;
  x11 = XEXP (x1, 1);
  operands[3] = x11;
  x12 = XEXP (x1, 2);
  operands[4] = x12;
  if (!register_operand (operands[4], QImode))
    return -1;
  switch (XVECLEN (x5, 0))
    {
    case 8:
      x13 = XVECEXP (x5, 0, 0);
      if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x14 = XVECEXP (x5, 0, 1);
      if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
        return -1;
      x15 = XVECEXP (x5, 0, 2);
      if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
        return -1;
      x16 = XVECEXP (x5, 0, 3);
      if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
        return -1;
      x17 = XVECEXP (x5, 0, 4);
      if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
        return -1;
      x18 = XVECEXP (x5, 0, 5);
      if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
        return -1;
      x19 = XVECEXP (x5, 0, 6);
      if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
        return -1;
      x20 = XVECEXP (x5, 0, 7);
      if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 14]
          || XVECLEN (x8, 0) != 8)
        return -1;
      x21 = XVECEXP (x8, 0, 0);
      if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x22 = XVECEXP (x8, 0, 1);
      if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
        return -1;
      x23 = XVECEXP (x8, 0, 2);
      if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
        return -1;
      x24 = XVECEXP (x8, 0, 3);
      if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
        return -1;
      x25 = XVECEXP (x8, 0, 4);
      if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
        return -1;
      x26 = XVECEXP (x8, 0, 5);
      if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
        return -1;
      x27 = XVECEXP (x8, 0, 6);
      if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
        return -1;
      x28 = XVECEXP (x8, 0, 7);
      if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 14]
          || pattern130 (x1, V8DImode, V16SImode, V8SImode) != 0)
        return -1;
      return 0;

    case 4:
      x13 = XVECEXP (x5, 0, 0);
      if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x14 = XVECEXP (x5, 0, 1);
      if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
        return -1;
      x15 = XVECEXP (x5, 0, 2);
      if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
        return -1;
      x16 = XVECEXP (x5, 0, 3);
      if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 6]
          || XVECLEN (x8, 0) != 4)
        return -1;
      x21 = XVECEXP (x8, 0, 0);
      if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x22 = XVECEXP (x8, 0, 1);
      if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
        return -1;
      x23 = XVECEXP (x8, 0, 2);
      if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
        return -1;
      x24 = XVECEXP (x8, 0, 3);
      if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 6]
          || pattern130 (x1, V4DImode, V8SImode, V4SImode) != 0)
        return -1;
      return 1;

    case 2:
      x13 = XVECEXP (x5, 0, 0);
      if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x14 = XVECEXP (x5, 0, 1);
      if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 2]
          || XVECLEN (x8, 0) != 2)
        return -1;
      x21 = XVECEXP (x8, 0, 0);
      if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x22 = XVECEXP (x8, 0, 1);
      if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 2]
          || !register_operand (operands[0], V2DImode)
          || GET_MODE (x1) != V2DImode
          || GET_MODE (x2) != V2DImode
          || GET_MODE (x3) != V2DImode
          || GET_MODE (x4) != V2SImode
          || !vector_operand (operands[1], V4SImode)
          || GET_MODE (x6) != V2DImode
          || GET_MODE (x7) != V2SImode
          || !vector_operand (operands[2], V4SImode)
          || !vector_move_operand (operands[3], V2DImode))
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern132 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3, machine_mode i4)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  if (!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) != i4
      || !register_operand (operands[1], i3))
    return -1;
  x4 = XEXP (x2, 1);
  if (GET_MODE (x4) != i4
      || !vector_operand (operands[2], i3)
      || !vector_move_operand (operands[3], i2)
      || !register_operand (operands[4], i1))
    return -1;
  return 0;
}

static int
pattern133 (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, 1);
  if (GET_CODE (x3) != i1)
    return -1;
  x4 = XEXP (x2, 0);
  x5 = XEXP (x4, 0);
  operands[1] = x5;
  x6 = XEXP (x3, 0);
  operands[2] = x6;
  x7 = XEXP (x1, 1);
  operands[3] = x7;
  x8 = XEXP (x1, 2);
  operands[4] = x8;
  switch (GET_MODE (operands[0]))
    {
    case V64QImode:
      return pattern132 (x1, DImode, V64QImode, V32HImode, V32QImode); /* [-1, 0] */

    case V32QImode:
      if (pattern132 (x1, SImode, V32QImode, V16HImode, V16QImode) != 0)
        return -1;
      return 1;

    case V16QImode:
      if (pattern132 (x1, HImode, V16QImode, V8HImode, V8QImode) != 0)
        return -1;
      return 2;

    case V32HImode:
      if (pattern132 (x1, SImode, V32HImode, V16SImode, V16HImode) != 0)
        return -1;
      return 3;

    case V16HImode:
      if (pattern132 (x1, HImode, V16HImode, V8SImode, V8HImode) != 0)
        return -1;
      return 4;

    case V8HImode:
      if (pattern132 (x1, QImode, V8HImode, V4SImode, V4HImode) != 0)
        return -1;
      return 5;

    default:
      return -1;
    }
}

static int
pattern134 (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
      || !nonimmediate_operand (operands[1], i1)
      || !nonimmediate_operand (operands[2], i1)
      || !register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern135 (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);
  operands[1] = x3;
  x4 = XEXP (x2, 1);
  operands[2] = x4;
  x5 = XEXP (x1, 1);
  operands[3] = x5;
  switch (GET_MODE (operands[0]))
    {
    case V8HImode:
      return pattern134 (x1, V8HImode); /* [-1, 0] */

    case V4SImode:
      if (pattern134 (x1, V4SImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern136 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != VEC_SELECT)
    return -1;
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) != PARALLEL)
    return -1;
  x5 = XEXP (x1, 1);
  if (GET_CODE (x5) != SIGN_EXTEND)
    return -1;
  x6 = XEXP (x5, 0);
  if (GET_CODE (x6) != VEC_SELECT)
    return -1;
  x7 = XEXP (x6, 1);
  if (GET_CODE (x7) != PARALLEL)
    return -1;
  x8 = XEXP (x3, 0);
  operands[1] = x8;
  x9 = XEXP (x6, 0);
  operands[2] = x9;
  return 0;
}

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

static int
pattern138 (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 DImode:
      return pattern137 (x1, DImode); /* [-1, 0] */

    case SImode:
      if (pattern137 (x1, SImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

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

    case HImode:
      if (!nonimmediate_operand (operands[1], HImode)
          || !general_operand (operands[2], HImode))
        return -1;
      return 1;

    case SImode:
      if (!nonimmediate_operand (operands[1], SImode)
          || !x86_64_general_operand (operands[2], SImode))
        return -1;
      return 2;

    case DImode:
      if (!nonimmediate_operand (operands[1], DImode)
          || !x86_64_general_operand (operands[2], DImode))
        return -1;
      return 3;

    default:
      return -1;
    }
}

static int
pattern140 (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)
    return -1;
  x2 = XEXP (x1, 1);
  if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x3 = XEXP (x1, 0);
  x4 = XEXP (x3, 0);
  operands[1] = x4;
  x5 = XEXP (x3, 1);
  operands[2] = x5;
  return pattern139 (x3); /* [-1, 3] */
}

static int
pattern141 (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)
    return -1;
  x2 = XEXP (x1, 1);
  if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x3 = XEXP (x1, 0);
  x4 = XEXP (x3, 0);
  operands[1] = x4;
  x5 = XEXP (x3, 1);
  operands[2] = x5;
  switch (GET_MODE (x3))
    {
    case QImode:
      if (!register_operand (operands[1], QImode)
          || !const_1_to_31_operand (operands[2], QImode))
        return -1;
      return 0;

    case HImode:
      if (!register_operand (operands[1], HImode)
          || !const_1_to_31_operand (operands[2], QImode))
        return -1;
      return 1;

    case SImode:
      if (!register_operand (operands[1], SImode)
          || !const_1_to_31_operand (operands[2], QImode))
        return -1;
      return 2;

    case DImode:
      if (!register_operand (operands[1], DImode)
          || !const_1_to_63_operand (operands[2], QImode))
        return -1;
      return 3;

    default:
      return -1;
    }
}

static int
pattern142 (rtx x1, rtx_code i1)
{
  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) != DImode)
    return -1;
  x3 = XEXP (x1, 1);
  if (GET_CODE (x3) != i1
      || GET_MODE (x3) != DImode
      || !register_operand (operands[0], DImode)
      || GET_MODE (x1) != DImode)
    return -1;
  x4 = XEXP (x2, 0);
  operands[1] = x4;
  if (!nonimmediate_operand (operands[1], SImode))
    return -1;
  x5 = XEXP (x3, 0);
  operands[2] = x5;
  if (!nonimmediate_operand (operands[2], SImode))
    return -1;
  return 0;
}

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

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

    default:
      return -1;
    }
}

static int
pattern144 (rtx x1, int *pnum_clobbers)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (pnum_clobbers == NULL)
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  operands[1] = x2;
  switch (GET_MODE (operands[0]))
    {
    case SImode:
      if (!register_operand (operands[0], SImode)
          || GET_MODE (x1) != SImode
          || !nonimmediate_operand (operands[1], SImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern145 (rtx x1, int *pnum_clobbers)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (pnum_clobbers == NULL)
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  operands[1] = x2;
  if (!register_operand (operands[1], XFmode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case SImode:
      if (!nonimmediate_operand (operands[0], SImode)
          || GET_MODE (x1) != SImode)
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern146 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XVECEXP (x2, 0, 0);
  operands[3] = x3;
  if (!const_4_or_8_to_11_operand (operands[3], SImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case V16SFmode:
      x4 = XVECEXP (x1, 0, 0);
      x5 = XEXP (x4, 1);
      return pattern103 (x5, V16SFmode); /* [-1, 0] */

    case V8SFmode:
      x4 = XVECEXP (x1, 0, 0);
      x5 = XEXP (x4, 1);
      if (pattern103 (x5, V8SFmode) != 0)
        return -1;
      return 1;

    case V4SFmode:
      x4 = XVECEXP (x1, 0, 0);
      x5 = XEXP (x4, 1);
      if (pattern103 (x5, V4SFmode) != 0)
        return -1;
      return 2;

    case V8DFmode:
      x4 = XVECEXP (x1, 0, 0);
      x5 = XEXP (x4, 1);
      if (pattern103 (x5, V8DFmode) != 0)
        return -1;
      return 3;

    case V4DFmode:
      x4 = XVECEXP (x1, 0, 0);
      x5 = XEXP (x4, 1);
      if (pattern103 (x5, V4DFmode) != 0)
        return -1;
      return 4;

    case V2DFmode:
      x4 = XVECEXP (x1, 0, 0);
      x5 = XEXP (x4, 1);
      if (pattern103 (x5, V2DFmode) != 0)
        return -1;
      return 5;

    default:
      return -1;
    }
}

static int
pattern147 (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);
  operands[0] = x3;
  if (!nonimmediate_operand (operands[0], QImode))
    return -1;
  x4 = XEXP (x1, 1);
  if (GET_MODE (x4) != QImode)
    return -1;
  x5 = XEXP (x4, 1);
  operands[1] = x5;
  if (!general_operand (operands[1], QImode))
    return -1;
  x6 = XEXP (x4, 0);
  if (!rtx_equal_p (x6, operands[0]))
    return -1;
  return 0;
}

static int
pattern148 (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);
  switch (GET_CODE (x3))
    {
    case REG:
    case SUBREG:
    case MEM:
      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);
      switch (GET_CODE (x7))
        {
        case CLOBBER:
          x8 = XEXP (x7, 0);
          if (GET_CODE (x8) != REG
              || REGNO (x8) != 17
              || GET_MODE (x8) != CCmode)
            return -1;
          return 0;

        case UNSPEC:
          if (XVECLEN (x7, 0) != 1
              || XINT (x7, 1) != 170)
            return -1;
          res = pattern146 (x1);
          if (res >= 0)
            return res + 1; /* [1, 6] */
          return -1;

        default:
          return -1;
        }

    case STRICT_LOW_PART:
      x7 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x7) != CLOBBER)
        return -1;
      x8 = XEXP (x7, 0);
      if (GET_CODE (x8) != REG
          || REGNO (x8) != 17
          || GET_MODE (x8) != CCmode
          || pattern147 (x2) != 0)
        return -1;
      return 7;

    default:
      return -1;
    }
}

static int
pattern149 (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);
  if (GET_MODE (x3) != SImode)
    return -1;
  x4 = XEXP (x3, 1);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x5 = XEXP (x3, 2);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x6 = XEXP (x1, 0);
  if (GET_CODE (x6) != ZERO_EXTRACT
      || GET_MODE (x6) != SImode)
    return -1;
  x7 = XEXP (x6, 1);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x8 = XEXP (x6, 2);
  if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  return 0;
}

static int
pattern150 (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) != 17
      || GET_MODE (x3) != CCmode)
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 0);
  operands[0] = x5;
  return 0;
}

static int
pattern151 (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);
  if (GET_CODE (x2) != CLOBBER)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != 17
      || GET_MODE (x3) != CCmode)
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 0);
  operands[0] = x5;
  x6 = XEXP (x4, 1);
  x7 = XEXP (x6, 0);
  x8 = XEXP (x7, 0);
  operands[1] = x8;
  return 0;
}

static int
pattern152 (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) != 17
      || GET_MODE (x3) != CCmode)
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 0);
  operands[0] = x5;
  if (!register_operand (operands[0], SImode))
    return -1;
  return 0;
}

static int
pattern153 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  if (!ix86_comparison_operator (operands[1], SImode))
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != REG
      || REGNO (x4) != 17)
    return -1;
  x5 = XEXP (x3, 1);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
      || pattern152 (x1) != 0)
    return -1;
  return 0;
}

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

static int
pattern155 (rtx x1, int i1)
{
  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) != i1)
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  return 0;
}

static int
pattern156 (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) != PLUS
      || GET_MODE (x3) != SImode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != REG
      || REGNO (x4) != 7
      || GET_MODE (x4) != SImode)
    return -1;
  x5 = XEXP (x2, 0);
  if (GET_CODE (x5) != REG
      || REGNO (x5) != 7
      || GET_MODE (x5) != SImode)
    return -1;
  x6 = XVECEXP (x1, 0, 2);
  return pattern155 (x6, 38); /* [-1, 0] */
}

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

static int
pattern158 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != SImode)
    return -1;
  x4 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x4) != USE)
    return -1;
  x5 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x5) != CLOBBER)
    return -1;
  x6 = XEXP (x2, 0);
  operands[0] = x6;
  if (!register_operand (operands[0], SImode))
    return -1;
  x7 = XEXP (x3, 0);
  operands[3] = x7;
  x8 = XEXP (x4, 0);
  operands[4] = x8;
  x9 = XEXP (x5, 0);
  operands[1] = x9;
  x10 = XVECEXP (x1, 0, 3);
  x11 = XEXP (x10, 0);
  operands[2] = x11;
  switch (GET_MODE (operands[3]))
    {
    case SFmode:
      return pattern157 (V4SFmode, SFmode); /* [-1, 0] */

    case DFmode:
      if (pattern157 (V2DFmode, DFmode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

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

static int
pattern160 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 2);
  if (XVECLEN (x2, 0) != 1
      || XINT (x2, 1) != 33)
    return -1;
  x3 = XVECEXP (x2, 0, 0);
  if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case SImode:
      return pattern159 (x1, SImode); /* [-1, 0] */

    case DImode:
      if (pattern159 (x1, DImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

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

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

    case SImode:
      if (pattern161 (x1, SImode) != 0)
        return -1;
      return 1;

    case DImode:
      if (pattern161 (x1, DImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern163 (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;
  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)
    return -1;
  x4 = XVECEXP (x1, 0, 3);
  x5 = XEXP (x4, 0);
  if (GET_CODE (x5) != REG
      || REGNO (x5) != 17
      || GET_MODE (x5) != CCmode)
    return -1;
  x6 = XVECEXP (x1, 0, 0);
  x7 = XEXP (x6, 0);
  operands[0] = x7;
  x8 = XEXP (x6, 1);
  x9 = XEXP (x8, 0);
  operands[2] = x9;
  x10 = XEXP (x8, 1);
  operands[3] = x10;
  x11 = XEXP (x2, 0);
  operands[1] = x11;
  x12 = XEXP (x3, 0);
  if (!rtx_equal_p (x12, operands[2]))
    return -1;
  x13 = XEXP (x3, 1);
  if (!rtx_equal_p (x13, operands[3]))
    return -1;
  x14 = XVECEXP (x1, 0, 2);
  switch (GET_CODE (x14))
    {
    case UNSPEC:
      return pattern160 (x1); /* [-1, 1] */

    case USE:
      res = pattern162 (x1);
      if (res >= 0)
        return res + 2; /* [2, 4] */
      return -1;

    default:
      return -1;
    }
}

static int
pattern164 (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, 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 UNEQ:
    case UNGE:
    case UNGT:
    case UNLE:
    case UNLT:
    case LTGT:
      operands[0] = x4;
      x5 = XEXP (x2, 0);
      if (GET_CODE (x5) != PC)
        return -1;
      x6 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x6) != CLOBBER)
        return -1;
      x7 = XEXP (x6, 0);
      if (GET_CODE (x7) != REG
          || REGNO (x7) != 18
          || GET_MODE (x7) != CCFPmode)
        return -1;
      x8 = XVECEXP (x1, 0, 2);
      if (GET_CODE (x8) != CLOBBER)
        return -1;
      x9 = XEXP (x8, 0);
      if (GET_CODE (x9) != REG
          || REGNO (x9) != 17
          || GET_MODE (x9) != CCFPmode)
        return -1;
      x10 = XEXP (x4, 0);
      operands[1] = x10;
      x11 = XVECEXP (x1, 0, 3);
      x12 = XEXP (x11, 0);
      if (!scratch_operand (x12, HImode))
        return -1;
      switch (GET_CODE (operands[1]))
        {
        case REG:
        case SUBREG:
          return 0;

        case FLOAT:
          return 1;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern165 (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) != SImode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != UNSPEC
      || XVECLEN (x4, 0) != 3
      || XINT (x4, 1) != 21
      || GET_MODE (x4) != SImode)
    return -1;
  x5 = XVECEXP (x4, 0, 2);
  if (GET_CODE (x5) != REG
      || REGNO (x5) != 7
      || GET_MODE (x5) != SImode)
    return -1;
  x6 = XEXP (x3, 1);
  if (GET_CODE (x6) != CONST
      || GET_MODE (x6) != SImode)
    return -1;
  x7 = XEXP (x6, 0);
  if (GET_CODE (x7) != UNSPEC
      || XVECLEN (x7, 0) != 1
      || XINT (x7, 1) != 6
      || GET_MODE (x7) != SImode)
    return -1;
  x8 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x8) != CLOBBER)
    return -1;
  x9 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x9) != CLOBBER)
    return -1;
  x10 = XVECEXP (x1, 0, 3);
  x11 = XEXP (x10, 0);
  if (GET_CODE (x11) != REG
      || REGNO (x11) != 17
      || GET_MODE (x11) != CCmode)
    return -1;
  x12 = XEXP (x2, 0);
  operands[0] = x12;
  if (!register_operand (operands[0], SImode))
    return -1;
  x13 = XVECEXP (x4, 0, 0);
  operands[1] = x13;
  if (!register_operand (operands[1], SImode))
    return -1;
  x14 = XVECEXP (x4, 0, 1);
  operands[2] = x14;
  if (!constant_call_address_operand (operands[2], VOIDmode))
    return -1;
  x15 = XVECEXP (x7, 0, 0);
  operands[3] = x15;
  if (!tls_symbolic_operand (operands[3], VOIDmode))
    return -1;
  x16 = XEXP (x8, 0);
  operands[4] = x16;
  if (!scratch_operand (operands[4], SImode))
    return -1;
  x17 = XEXP (x9, 0);
  operands[5] = x17;
  if (!scratch_operand (operands[5], SImode))
    return -1;
  return 0;
}

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

static int
pattern167 (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 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (XINT (x3, 1) != i1
      || GET_MODE (x3) != SImode)
    return -1;
  x4 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x4) != SET)
    return -1;
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != UNSPEC
      || XVECLEN (x5, 0) != i2
      || XINT (x5, 1) != i1
      || GET_MODE (x5) != V16QImode)
    return -1;
  x6 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x6) != SET)
    return -1;
  x7 = XEXP (x6, 1);
  if (GET_CODE (x7) != UNSPEC
      || XVECLEN (x7, 0) != i2
      || XINT (x7, 1) != i1
      || GET_MODE (x7) != CCmode
      || pattern166 (x1, SImode) != 0)
    return -1;
  return 0;
}

static int
pattern168 (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 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != i1)
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x4) != UNSPEC
      || XVECLEN (x4, 0) != 1
      || XINT (x4, 1) != 33)
    return -1;
  x5 = XVECEXP (x4, 0, 0);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x6 = XVECEXP (x1, 0, 3);
  x7 = XEXP (x6, 0);
  if (GET_CODE (x7) != REG
      || REGNO (x7) != 17
      || GET_MODE (x7) != CCmode)
    return -1;
  x8 = XVECEXP (x1, 0, 0);
  x9 = XEXP (x8, 0);
  operands[0] = x9;
  x10 = XEXP (x8, 1);
  x11 = XEXP (x10, 0);
  operands[2] = x11;
  x12 = XEXP (x10, 1);
  operands[3] = x12;
  x13 = XEXP (x2, 0);
  operands[1] = x13;
  x14 = XEXP (x3, 0);
  if (!rtx_equal_p (x14, operands[2]))
    return -1;
  x15 = XEXP (x3, 1);
  if (!rtx_equal_p (x15, operands[3]))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case SImode:
      return pattern159 (x1, SImode); /* [-1, 0] */

    case DImode:
      if (pattern159 (x1, DImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

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

    case DImode:
      if (!nonimmediate_operand (operands[1], DImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern170 (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)
    return -1;
  switch (GET_MODE (operands[1]))
    {
    case SFmode:
      if (!memory_operand (operands[1], SFmode))
        return -1;
      return 0;

    case DFmode:
      if (!memory_operand (operands[1], DFmode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern171 (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);
  if (GET_MODE (x2) != V2SFmode)
    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 + 0])
    return -1;
  x5 = XVECEXP (x3, 0, 1);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
      || !register_operand (operands[0], V2DImode)
      || GET_MODE (x1) != V2DImode)
    return -1;
  x6 = XEXP (x2, 0);
  operands[1] = x6;
  if (!nonimmediate_operand (operands[1], V4SFmode))
    return -1;
  return 0;
}

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

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

    default:
      return -1;
    }
}

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

    case V8SFmode:
      if (!nonimmediate_operand (operands[0], V8SFmode)
          || GET_MODE (x1) != V8SFmode
          || !nonimmediate_operand (operands[1], V4SFmode))
        return -1;
      return 1;

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

    case V16SImode:
      if (!nonimmediate_operand (operands[0], V16SImode)
          || GET_MODE (x1) != V16SImode)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case V4SImode:
          if (!nonimmediate_operand (operands[1], V4SImode))
            return -1;
          return 3;

        case V8SImode:
          if (!nonimmediate_operand (operands[1], V8SImode))
            return -1;
          return 4;

        default:
          return -1;
        }

    case V16SFmode:
      if (!nonimmediate_operand (operands[0], V16SFmode)
          || GET_MODE (x1) != V16SFmode)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case V4SFmode:
          if (!nonimmediate_operand (operands[1], V4SFmode))
            return -1;
          return 5;

        case V8SFmode:
          if (!nonimmediate_operand (operands[1], V8SFmode))
            return -1;
          return 6;

        default:
          return -1;
        }

    case V8DFmode:
      if (!nonimmediate_operand (operands[0], V8DFmode)
          || GET_MODE (x1) != V8DFmode)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case V2DFmode:
          if (!nonimmediate_operand (operands[1], V2DFmode))
            return -1;
          return 7;

        case V4DFmode:
          if (!nonimmediate_operand (operands[1], V4DFmode))
            return -1;
          return 8;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern174 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != ZERO_EXTRACT
      || GET_MODE (x1) != SImode)
    return -1;
  x2 = XEXP (x1, 1);
  if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x3 = XEXP (x1, 2);
  if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x4 = XEXP (x1, 0);
  operands[0] = x4;
  if (!ext_register_operand (operands[0], VOIDmode))
    return -1;
  return 0;
}

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

    case V8SFmode:
      if (!vector_operand (operands[1], V8SFmode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

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

    case V4SFmode:
      if (!vector_operand (operands[1], V4SFmode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern177 (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)
    return -1;
  switch (GET_MODE (operands[1]))
    {
    case HImode:
      if (!nonimmediate_operand (operands[1], HImode))
        return -1;
      return 0;

    case SImode:
      if (!nonimmediate_operand (operands[1], SImode))
        return -1;
      return 1;

    case DImode:
      if (!nonimmediate_operand (operands[1], DImode))
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern178 (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)
    return -1;
  switch (GET_MODE (operands[1]))
    {
    case V8SImode:
      if (!nonimmediate_operand (operands[1], V8SImode))
        return -1;
      return 0;

    case V8DImode:
      if (!nonimmediate_operand (operands[1], V8DImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

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

    case V4DImode:
      if (!nonimmediate_operand (operands[1], V4DImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

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

static int
pattern181 (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, x25;
  rtx x26, x27, x28, x29, x30, x31;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != V4SImode)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != SIGN_EXTEND
      || GET_MODE (x3) != V4SImode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != VEC_SELECT
      || GET_MODE (x4) != V4HImode)
    return -1;
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != PARALLEL
      || XVECLEN (x5, 0) != 4)
    return -1;
  x6 = XVECEXP (x5, 0, 0);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x7 = XVECEXP (x5, 0, 1);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
    return -1;
  x8 = XVECEXP (x5, 0, 2);
  if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
    return -1;
  x9 = XVECEXP (x5, 0, 3);
  if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
    return -1;
  x10 = XEXP (x2, 1);
  if (GET_CODE (x10) != SIGN_EXTEND
      || GET_MODE (x10) != V4SImode)
    return -1;
  x11 = XEXP (x10, 0);
  if (GET_CODE (x11) != VEC_SELECT
      || GET_MODE (x11) != V4HImode)
    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 + 2])
    return -1;
  x15 = XVECEXP (x12, 0, 2);
  if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
    return -1;
  x16 = XVECEXP (x12, 0, 3);
  if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
    return -1;
  x17 = XEXP (x1, 1);
  if (GET_CODE (x17) != MULT
      || GET_MODE (x17) != V4SImode)
    return -1;
  x18 = XEXP (x17, 0);
  if (GET_CODE (x18) != SIGN_EXTEND
      || GET_MODE (x18) != V4SImode)
    return -1;
  x19 = XEXP (x18, 0);
  if (GET_CODE (x19) != VEC_SELECT
      || GET_MODE (x19) != V4HImode)
    return -1;
  x20 = XEXP (x19, 1);
  if (GET_CODE (x20) != PARALLEL
      || XVECLEN (x20, 0) != 4)
    return -1;
  x21 = XVECEXP (x20, 0, 0);
  if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x22 = XVECEXP (x20, 0, 1);
  if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
    return -1;
  x23 = XVECEXP (x20, 0, 2);
  if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
    return -1;
  x24 = XVECEXP (x20, 0, 3);
  if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
    return -1;
  x25 = XEXP (x17, 1);
  if (GET_CODE (x25) != SIGN_EXTEND
      || GET_MODE (x25) != V4SImode)
    return -1;
  x26 = XEXP (x25, 0);
  if (GET_CODE (x26) != VEC_SELECT
      || GET_MODE (x26) != V4HImode)
    return -1;
  x27 = XEXP (x26, 1);
  if (GET_CODE (x27) != PARALLEL
      || XVECLEN (x27, 0) != 4)
    return -1;
  x28 = XVECEXP (x27, 0, 0);
  if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x29 = XVECEXP (x27, 0, 1);
  if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
    return -1;
  x30 = XVECEXP (x27, 0, 2);
  if (x30 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
    return -1;
  x31 = XVECEXP (x27, 0, 3);
  if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
    return -1;
  return 0;
}

static int
pattern182 (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 (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)
    return -1;
  x4 = XEXP (x1, 1);
  if (GET_MODE (x4) != i2)
    return -1;
  x5 = XEXP (x4, 0);
  if (GET_MODE (x5) != i1)
    return -1;
  return 0;
}

static int
pattern183 (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, x7;
  int res ATTRIBUTE_UNUSED;
  if (!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) != i2)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) != i1
      || !nonimmediate_operand (operands[1], i3))
    return -1;
  x5 = XEXP (x2, 1);
  if (GET_MODE (x5) != i2)
    return -1;
  x6 = XEXP (x5, 0);
  if (GET_MODE (x6) != i1)
    return -1;
  x7 = XEXP (x1, 1);
  return pattern182 (x7, i1, i2); /* [-1, 0] */
}

static int
pattern184 (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, x25;
  rtx x26, x27, x28, x29, x30, x31, x32, x33;
  rtx x34, x35;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != VEC_SELECT)
    return -1;
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != PARALLEL)
    return -1;
  x6 = XEXP (x2, 1);
  if (GET_CODE (x6) != i1)
    return -1;
  x7 = XEXP (x6, 0);
  if (GET_CODE (x7) != VEC_SELECT)
    return -1;
  x8 = XEXP (x7, 1);
  if (GET_CODE (x8) != PARALLEL)
    return -1;
  x9 = XEXP (x1, 1);
  if (GET_CODE (x9) != PLUS)
    return -1;
  x10 = XEXP (x9, 0);
  if (GET_CODE (x10) != i1)
    return -1;
  x11 = XEXP (x10, 0);
  if (GET_CODE (x11) != VEC_SELECT)
    return -1;
  x12 = XEXP (x11, 1);
  if (GET_CODE (x12) != PARALLEL)
    return -1;
  x13 = XEXP (x9, 1);
  if (GET_CODE (x13) != i1)
    return -1;
  x14 = XEXP (x13, 0);
  if (GET_CODE (x14) != VEC_SELECT)
    return -1;
  x15 = XEXP (x14, 1);
  if (GET_CODE (x15) != PARALLEL)
    return -1;
  x16 = XEXP (x4, 0);
  operands[1] = x16;
  x17 = XEXP (x7, 0);
  if (!rtx_equal_p (x17, operands[1]))
    return -1;
  x18 = XEXP (x11, 0);
  if (!rtx_equal_p (x18, operands[1]))
    return -1;
  x19 = XEXP (x14, 0);
  if (!rtx_equal_p (x19, operands[1]))
    return -1;
  switch (XVECLEN (x5, 0))
    {
    case 4:
      x20 = XVECEXP (x5, 0, 0);
      if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x21 = XVECEXP (x5, 0, 1);
      if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
        return -1;
      x22 = XVECEXP (x5, 0, 2);
      if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
        return -1;
      x23 = XVECEXP (x5, 0, 3);
      if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 12]
          || XVECLEN (x8, 0) != 4)
        return -1;
      x24 = XVECEXP (x8, 0, 0);
      if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x25 = XVECEXP (x8, 0, 1);
      if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
        return -1;
      x26 = XVECEXP (x8, 0, 2);
      if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
        return -1;
      x27 = XVECEXP (x8, 0, 3);
      if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 13]
          || XVECLEN (x12, 0) != 4)
        return -1;
      x28 = XVECEXP (x12, 0, 0);
      if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
        return -1;
      x29 = XVECEXP (x12, 0, 1);
      if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
        return -1;
      x30 = XVECEXP (x12, 0, 2);
      if (x30 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
        return -1;
      x31 = XVECEXP (x12, 0, 3);
      if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 14]
          || XVECLEN (x15, 0) != 4)
        return -1;
      x32 = XVECEXP (x15, 0, 0);
      if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
        return -1;
      x33 = XVECEXP (x15, 0, 1);
      if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
        return -1;
      x34 = XVECEXP (x15, 0, 2);
      if (x34 != const_int_rtx[MAX_SAVED_CONST_INT + 11])
        return -1;
      x35 = XVECEXP (x15, 0, 3);
      if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + 15]
          || pattern183 (x1, V4QImode, V4SImode, V16QImode) != 0)
        return -1;
      return 0;

    case 2:
      x20 = XVECEXP (x5, 0, 0);
      if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x21 = XVECEXP (x5, 0, 1);
      if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 4]
          || XVECLEN (x8, 0) != 2)
        return -1;
      x24 = XVECEXP (x8, 0, 0);
      if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x25 = XVECEXP (x8, 0, 1);
      if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 5]
          || XVECLEN (x12, 0) != 2)
        return -1;
      x28 = XVECEXP (x12, 0, 0);
      if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
        return -1;
      x29 = XVECEXP (x12, 0, 1);
      if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 6]
          || XVECLEN (x15, 0) != 2)
        return -1;
      x32 = XVECEXP (x15, 0, 0);
      if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
        return -1;
      x33 = XVECEXP (x15, 0, 1);
      if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
          || pattern183 (x1, V2HImode, V2DImode, V8HImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern185 (rtx x1, rtx_code i1)
{
  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 (GET_CODE (x3) != i1
      || GET_MODE (x3) != HImode)
    return -1;
  x4 = XEXP (x1, 0);
  operands[0] = x4;
  if (!register_operand (operands[0], HImode)
      || GET_MODE (x2) != HImode)
    return -1;
  return 0;
}

static int
pattern186 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (GET_MODE (x1) != BLKmode
      || !memory_operand (operands[0], BLKmode))
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  operands[1] = x2;
  if (!register_operand (operands[1], SImode)
      || !register_operand (operands[2], SImode))
    return -1;
  return 0;
}

static int
pattern187 (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 (!memory_operand (operands[0], i3)
      || GET_MODE (x1) != i3)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i2
      || !register_operand (operands[1], V2DImode))
    return -1;
  x3 = XEXP (x1, 1);
  if (GET_MODE (x3) != i1)
    return -1;
  return 0;
}

static int
pattern188 (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[1]))
    {
    case V4SImode:
      if (!register_operand (operands[1], V4SImode))
        return -1;
      return 0;

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

    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, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != PARALLEL)
    return -1;
  x4 = XEXP (x2, 0);
  if (!rtx_equal_p (x4, operands[0]))
    return -1;
  switch (XVECLEN (x3, 0))
    {
    case 14:
      x5 = XVECEXP (x3, 0, 0);
      if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
        return -1;
      x6 = XVECEXP (x3, 0, 1);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
        return -1;
      x7 = XVECEXP (x3, 0, 2);
      if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
        return -1;
      x8 = XVECEXP (x3, 0, 3);
      if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
        return -1;
      x9 = XVECEXP (x3, 0, 4);
      if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
        return -1;
      x10 = XVECEXP (x3, 0, 5);
      if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
        return -1;
      x11 = XVECEXP (x3, 0, 6);
      if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
        return -1;
      x12 = XVECEXP (x3, 0, 7);
      if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
        return -1;
      x13 = XVECEXP (x3, 0, 8);
      if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
        return -1;
      x14 = XVECEXP (x3, 0, 9);
      if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 11])
        return -1;
      x15 = XVECEXP (x3, 0, 10);
      if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
        return -1;
      x16 = XVECEXP (x3, 0, 11);
      if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 13])
        return -1;
      x17 = XVECEXP (x3, 0, 12);
      if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 14])
        return -1;
      x18 = XVECEXP (x3, 0, 13);
      if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 15]
          || pattern187 (x1, V14QImode, V2QImode, V16QImode) != 0)
        return -1;
      return 0;

    case 12:
      x5 = XVECEXP (x3, 0, 0);
      if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
        return -1;
      x6 = XVECEXP (x3, 0, 1);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
        return -1;
      x7 = XVECEXP (x3, 0, 2);
      if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
        return -1;
      x8 = XVECEXP (x3, 0, 3);
      if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
        return -1;
      x9 = XVECEXP (x3, 0, 4);
      if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
        return -1;
      x10 = XVECEXP (x3, 0, 5);
      if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
        return -1;
      x11 = XVECEXP (x3, 0, 6);
      if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
        return -1;
      x12 = XVECEXP (x3, 0, 7);
      if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 11])
        return -1;
      x13 = XVECEXP (x3, 0, 8);
      if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
        return -1;
      x14 = XVECEXP (x3, 0, 9);
      if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 13])
        return -1;
      x15 = XVECEXP (x3, 0, 10);
      if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 14])
        return -1;
      x16 = XVECEXP (x3, 0, 11);
      if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 15]
          || !memory_operand (operands[0], V16QImode)
          || GET_MODE (x1) != V16QImode)
        return -1;
      x19 = XEXP (x1, 0);
      if (GET_MODE (x19) != V4QImode)
        return -1;
      res = pattern188 (x2, V12QImode);
      if (res >= 0)
        return res + 1; /* [1, 2] */
      return -1;

    case 8:
      x5 = XVECEXP (x3, 0, 0);
      if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
        return -1;
      x6 = XVECEXP (x3, 0, 1);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
        return -1;
      x7 = XVECEXP (x3, 0, 2);
      if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
        return -1;
      x8 = XVECEXP (x3, 0, 3);
      if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 11])
        return -1;
      x9 = XVECEXP (x3, 0, 4);
      if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
        return -1;
      x10 = XVECEXP (x3, 0, 5);
      if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 13])
        return -1;
      x11 = XVECEXP (x3, 0, 6);
      if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 14])
        return -1;
      x12 = XVECEXP (x3, 0, 7);
      if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 15]
          || !memory_operand (operands[0], V16QImode)
          || GET_MODE (x1) != V16QImode)
        return -1;
      x19 = XEXP (x1, 0);
      if (GET_MODE (x19) != V8QImode
          || GET_MODE (x2) != V8QImode)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case V8HImode:
          if (!register_operand (operands[1], V8HImode))
            return -1;
          return 3;

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

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

        default:
          return -1;
        }

    case 4:
      x5 = XVECEXP (x3, 0, 0);
      if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
        return -1;
      x6 = XVECEXP (x3, 0, 1);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
        return -1;
      x7 = XVECEXP (x3, 0, 2);
      if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
        return -1;
      x8 = XVECEXP (x3, 0, 3);
      if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
          || !memory_operand (operands[0], V8HImode)
          || GET_MODE (x1) != V8HImode)
        return -1;
      x19 = XEXP (x1, 0);
      if (GET_MODE (x19) != V4HImode)
        return -1;
      res = pattern188 (x2, V4HImode);
      if (res >= 0)
        return res + 6; /* [6, 7] */
      return -1;

    case 6:
      x5 = XVECEXP (x3, 0, 0);
      if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
        return -1;
      x6 = XVECEXP (x3, 0, 1);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
        return -1;
      x7 = XVECEXP (x3, 0, 2);
      if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
        return -1;
      x8 = XVECEXP (x3, 0, 3);
      if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
        return -1;
      x9 = XVECEXP (x3, 0, 4);
      if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
        return -1;
      x10 = XVECEXP (x3, 0, 5);
      if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
          || pattern187 (x1, V6HImode, V2HImode, V8HImode) != 0)
        return -1;
      return 8;

    case 2:
      x5 = XVECEXP (x3, 0, 0);
      if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
        return -1;
      x6 = XVECEXP (x3, 0, 1);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 3]
          || !memory_operand (operands[0], V4SImode)
          || GET_MODE (x1) != V4SImode)
        return -1;
      x19 = XEXP (x1, 0);
      if (GET_MODE (x19) != V2SImode
          || !register_operand (operands[1], V2DImode)
          || GET_MODE (x2) != V2SImode)
        return -1;
      return 9;

    default:
      return -1;
    }
}

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

static int
pattern191 (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, x7, x8, x9;
  rtx x10, x11;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i2)
      || GET_MODE (x1) != i2)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i3)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i1)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) != i1
      || !register_operand (operands[1], i2))
    return -1;
  x5 = XEXP (x3, 1);
  if (GET_MODE (x5) != i1)
    return -1;
  x6 = XEXP (x2, 1);
  if (GET_MODE (x6) != i1)
    return -1;
  x7 = XEXP (x6, 0);
  if (GET_MODE (x7) != i1)
    return -1;
  x8 = XEXP (x6, 1);
  if (GET_MODE (x8) != i1)
    return -1;
  x9 = XEXP (x1, 1);
  if (GET_MODE (x9) != i3)
    return -1;
  x10 = XEXP (x9, 0);
  if (GET_MODE (x10) != i1)
    return -1;
  x11 = XEXP (x10, 0);
  if (GET_MODE (x11) != i1
      || !vector_operand (operands[2], i2)
      || pattern190 (x9, i1) != 0)
    return -1;
  return 0;
}

static int
pattern192 (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, x25;
  rtx x26, x27, x28, x29, x30, x31, x32, x33;
  rtx x34, x35, x36, x37, x38, x39;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != VEC_SELECT)
    return -1;
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != PARALLEL
      || XVECLEN (x5, 0) != 1)
    return -1;
  x6 = XVECEXP (x5, 0, 0);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x7 = XEXP (x3, 1);
  if (GET_CODE (x7) != VEC_SELECT)
    return -1;
  x8 = XEXP (x7, 1);
  if (GET_CODE (x8) != PARALLEL
      || XVECLEN (x8, 0) != 1)
    return -1;
  x9 = XVECEXP (x8, 0, 0);
  if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x10 = XEXP (x2, 1);
  if (GET_CODE (x10) != i1)
    return -1;
  x11 = XEXP (x10, 0);
  if (GET_CODE (x11) != VEC_SELECT)
    return -1;
  x12 = XEXP (x11, 1);
  if (GET_CODE (x12) != PARALLEL
      || XVECLEN (x12, 0) != 1)
    return -1;
  x13 = XVECEXP (x12, 0, 0);
  if (GET_CODE (x13) != CONST_INT)
    return -1;
  x14 = XEXP (x10, 1);
  if (GET_CODE (x14) != VEC_SELECT)
    return -1;
  x15 = XEXP (x14, 1);
  if (GET_CODE (x15) != PARALLEL
      || XVECLEN (x15, 0) != 1)
    return -1;
  x16 = XVECEXP (x15, 0, 0);
  if (GET_CODE (x16) != CONST_INT)
    return -1;
  x17 = XEXP (x1, 1);
  x18 = XEXP (x17, 0);
  if (GET_CODE (x18) != i1)
    return -1;
  x19 = XEXP (x18, 0);
  if (GET_CODE (x19) != VEC_SELECT)
    return -1;
  x20 = XEXP (x19, 1);
  if (GET_CODE (x20) != PARALLEL
      || XVECLEN (x20, 0) != 1)
    return -1;
  x21 = XVECEXP (x20, 0, 0);
  if (GET_CODE (x21) != CONST_INT)
    return -1;
  x22 = XEXP (x18, 1);
  if (GET_CODE (x22) != VEC_SELECT)
    return -1;
  x23 = XEXP (x22, 1);
  if (GET_CODE (x23) != PARALLEL
      || XVECLEN (x23, 0) != 1)
    return -1;
  x24 = XVECEXP (x23, 0, 0);
  if (GET_CODE (x24) != CONST_INT)
    return -1;
  x25 = XEXP (x17, 1);
  if (GET_CODE (x25) != i1)
    return -1;
  x26 = XEXP (x25, 0);
  if (GET_CODE (x26) != VEC_SELECT)
    return -1;
  x27 = XEXP (x26, 1);
  if (GET_CODE (x27) != PARALLEL
      || XVECLEN (x27, 0) != 1)
    return -1;
  x28 = XVECEXP (x27, 0, 0);
  if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
    return -1;
  x29 = XEXP (x25, 1);
  if (GET_CODE (x29) != VEC_SELECT)
    return -1;
  x30 = XEXP (x29, 1);
  if (GET_CODE (x30) != PARALLEL
      || XVECLEN (x30, 0) != 1)
    return -1;
  x31 = XVECEXP (x30, 0, 0);
  if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
    return -1;
  x32 = XEXP (x4, 0);
  operands[1] = x32;
  x33 = XEXP (x7, 0);
  if (!rtx_equal_p (x33, operands[1]))
    return -1;
  switch (XWINT (x13, 0))
    {
    case 0LL:
      if (XWINT (x16, 0) != 1LL
          || XWINT (x21, 0) != 2LL
          || XWINT (x24, 0) != 3LL
          || !register_operand (operands[0], V4DFmode)
          || GET_MODE (x1) != V4DFmode
          || GET_MODE (x2) != V2DFmode
          || GET_MODE (x3) != DFmode
          || GET_MODE (x4) != DFmode
          || !register_operand (operands[1], V4DFmode)
          || GET_MODE (x7) != DFmode
          || GET_MODE (x10) != DFmode
          || GET_MODE (x11) != DFmode)
        return -1;
      x34 = XEXP (x11, 0);
      operands[2] = x34;
      if (!nonimmediate_operand (operands[2], V4DFmode)
          || GET_MODE (x14) != DFmode
          || GET_MODE (x17) != V2DFmode
          || GET_MODE (x18) != DFmode
          || GET_MODE (x19) != DFmode
          || GET_MODE (x22) != DFmode
          || GET_MODE (x25) != DFmode
          || GET_MODE (x26) != DFmode
          || GET_MODE (x29) != DFmode)
        return -1;
      x35 = XEXP (x14, 0);
      if (!rtx_equal_p (x35, operands[2]))
        return -1;
      x36 = XEXP (x19, 0);
      if (!rtx_equal_p (x36, operands[1]))
        return -1;
      x37 = XEXP (x22, 0);
      if (!rtx_equal_p (x37, operands[1]))
        return -1;
      x38 = XEXP (x26, 0);
      if (!rtx_equal_p (x38, operands[2]))
        return -1;
      x39 = XEXP (x29, 0);
      if (!rtx_equal_p (x39, operands[2]))
        return -1;
      return 0;

    case 2LL:
      if (XWINT (x16, 0) != 3LL
          || XWINT (x21, 0) != 0LL
          || XWINT (x24, 0) != 1LL)
        return -1;
      x36 = XEXP (x19, 0);
      operands[2] = x36;
      x34 = XEXP (x11, 0);
      if (!rtx_equal_p (x34, operands[1]))
        return -1;
      x35 = XEXP (x14, 0);
      if (!rtx_equal_p (x35, operands[1]))
        return -1;
      x37 = XEXP (x22, 0);
      if (!rtx_equal_p (x37, operands[2]))
        return -1;
      x38 = XEXP (x26, 0);
      if (!rtx_equal_p (x38, operands[2]))
        return -1;
      x39 = XEXP (x29, 0);
      if (!rtx_equal_p (x39, operands[2]))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V4SFmode:
          if (pattern191 (x1, SFmode, V4SFmode, V2SFmode) != 0)
            return -1;
          return 1;

        case V4HImode:
          if (!register_operand (operands[0], V4HImode)
              || GET_MODE (x1) != V4HImode
              || GET_MODE (x2) != V2HImode
              || GET_MODE (x3) != HImode
              || GET_MODE (x4) != HImode
              || !register_operand (operands[1], V4HImode)
              || GET_MODE (x7) != HImode
              || GET_MODE (x10) != HImode
              || GET_MODE (x11) != HImode
              || GET_MODE (x14) != HImode
              || GET_MODE (x17) != V2HImode
              || GET_MODE (x18) != HImode
              || GET_MODE (x19) != HImode
              || !nonimmediate_operand (operands[2], V4HImode)
              || pattern190 (x17, HImode) != 0)
            return -1;
          return 2;

        case V4SImode:
          if (pattern191 (x1, SImode, V4SImode, V2SImode) != 0)
            return -1;
          return 3;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern193 (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, x25;
  rtx x26, x27, x28, x29, x30, x31, x32, x33;
  rtx x34, x35, x36, x37, x38, x39;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != HImode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != VEC_SELECT
      || GET_MODE (x4) != HImode)
    return -1;
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != PARALLEL
      || XVECLEN (x5, 0) != 1)
    return -1;
  x6 = XVECEXP (x5, 0, 0);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x7 = XEXP (x3, 1);
  if (GET_CODE (x7) != VEC_SELECT
      || GET_MODE (x7) != HImode)
    return -1;
  x8 = XEXP (x7, 1);
  if (GET_CODE (x8) != PARALLEL
      || XVECLEN (x8, 0) != 1)
    return -1;
  x9 = XVECEXP (x8, 0, 0);
  if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x10 = XEXP (x2, 1);
  if (GET_CODE (x10) != i1
      || GET_MODE (x10) != HImode)
    return -1;
  x11 = XEXP (x10, 0);
  if (GET_CODE (x11) != VEC_SELECT
      || GET_MODE (x11) != HImode)
    return -1;
  x12 = XEXP (x11, 1);
  if (GET_CODE (x12) != PARALLEL
      || XVECLEN (x12, 0) != 1)
    return -1;
  x13 = XVECEXP (x12, 0, 0);
  if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
    return -1;
  x14 = XEXP (x10, 1);
  if (GET_CODE (x14) != VEC_SELECT
      || GET_MODE (x14) != HImode)
    return -1;
  x15 = XEXP (x14, 1);
  if (GET_CODE (x15) != PARALLEL
      || XVECLEN (x15, 0) != 1)
    return -1;
  x16 = XVECEXP (x15, 0, 0);
  if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
    return -1;
  x17 = XEXP (x1, 1);
  x18 = XEXP (x17, 0);
  if (GET_CODE (x18) != i1
      || GET_MODE (x18) != HImode)
    return -1;
  x19 = XEXP (x18, 0);
  if (GET_CODE (x19) != VEC_SELECT
      || GET_MODE (x19) != HImode)
    return -1;
  x20 = XEXP (x19, 1);
  if (GET_CODE (x20) != PARALLEL
      || XVECLEN (x20, 0) != 1)
    return -1;
  x21 = XVECEXP (x20, 0, 0);
  if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x22 = XEXP (x18, 1);
  if (GET_CODE (x22) != VEC_SELECT
      || GET_MODE (x22) != HImode)
    return -1;
  x23 = XEXP (x22, 1);
  if (GET_CODE (x23) != PARALLEL
      || XVECLEN (x23, 0) != 1)
    return -1;
  x24 = XVECEXP (x23, 0, 0);
  if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x25 = XEXP (x17, 1);
  if (GET_CODE (x25) != i1
      || GET_MODE (x25) != HImode)
    return -1;
  x26 = XEXP (x25, 0);
  if (GET_CODE (x26) != VEC_SELECT
      || GET_MODE (x26) != HImode)
    return -1;
  x27 = XEXP (x26, 1);
  if (GET_CODE (x27) != PARALLEL
      || XVECLEN (x27, 0) != 1)
    return -1;
  x28 = XVECEXP (x27, 0, 0);
  if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
    return -1;
  x29 = XEXP (x25, 1);
  if (GET_CODE (x29) != VEC_SELECT
      || GET_MODE (x29) != HImode)
    return -1;
  x30 = XEXP (x29, 1);
  if (GET_CODE (x30) != PARALLEL
      || XVECLEN (x30, 0) != 1)
    return -1;
  x31 = XVECEXP (x30, 0, 0);
  if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 3]
      || !register_operand (operands[0], V4HImode)
      || GET_MODE (x1) != V4HImode
      || GET_MODE (x2) != V2HImode)
    return -1;
  x32 = XEXP (x4, 0);
  operands[1] = x32;
  if (!register_operand (operands[1], V4HImode)
      || GET_MODE (x17) != V2HImode)
    return -1;
  x33 = XEXP (x19, 0);
  operands[2] = x33;
  if (!nonimmediate_operand (operands[2], V4HImode))
    return -1;
  x34 = XEXP (x7, 0);
  if (!rtx_equal_p (x34, operands[1]))
    return -1;
  x35 = XEXP (x11, 0);
  if (!rtx_equal_p (x35, operands[1]))
    return -1;
  x36 = XEXP (x14, 0);
  if (!rtx_equal_p (x36, operands[1]))
    return -1;
  x37 = XEXP (x22, 0);
  if (!rtx_equal_p (x37, operands[2]))
    return -1;
  x38 = XEXP (x26, 0);
  if (!rtx_equal_p (x38, operands[2]))
    return -1;
  x39 = XEXP (x29, 0);
  if (!rtx_equal_p (x39, operands[2]))
    return -1;
  return 0;
}

static int
pattern194 (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);
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != V2SFmode)
    return -1;
  x4 = XEXP (x1, 1);
  if (GET_CODE (x4) != CONST_VECTOR
      || XVECLEN (x4, 0) != 2
      || GET_MODE (x4) != V2SFmode)
    return -1;
  x5 = XVECEXP (x4, 0, 0);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x6 = XVECEXP (x4, 0, 1);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
      || !register_operand (operands[0], V4SFmode)
      || GET_MODE (x1) != V4SFmode
      || GET_MODE (x2) != V2SFmode)
    return -1;
  x7 = XEXP (x3, 0);
  operands[1] = x7;
  if (!nonimmediate_operand (operands[1], V2DImode))
    return -1;
  x8 = XEXP (x2, 1);
  if (GET_MODE (x8) != V2SFmode)
    return -1;
  switch (GET_CODE (x8))
    {
    case VEC_SELECT:
      x9 = XEXP (x8, 1);
      if (GET_CODE (x9) != PARALLEL
          || XVECLEN (x9, 0) != 2)
        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 = XEXP (x8, 0);
      operands[2] = x12;
      if (!vector_move_operand (operands[2], V4SFmode))
        return -1;
      x13 = XEXP (x2, 2);
      operands[3] = x13;
      return 0;

    case CONST_VECTOR:
      if (XVECLEN (x8, 0) != 2)
        return -1;
      x14 = XVECEXP (x8, 0, 0);
      if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x15 = XVECEXP (x8, 0, 1);
      if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x13 = XEXP (x2, 2);
      operands[2] = x13;
      return 1;

    default:
      return -1;
    }
}

static int
pattern195 (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 (!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 (x2, 1);
  if (GET_MODE (x4) != i2
      || !vector_move_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern196 (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 (!memory_operand (operands[0], i3)
      || GET_MODE (x1) != i3)
    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 (x2, 1);
  if (GET_MODE (x4) != i2)
    return -1;
  x5 = XEXP (x1, 1);
  if (GET_MODE (x5) != i1)
    return -1;
  return 0;
}

static int
pattern197 (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 (!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 (x2, 1);
  if (GET_MODE (x4) != i2
      || !vector_move_operand (operands[2], i1))
    return -1;
  switch (GET_MODE (operands[1]))
    {
    case V4SImode:
      if (!register_operand (operands[1], V4SImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern198 (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[1]))
    {
    case V4SImode:
      if (!register_operand (operands[1], V4SImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

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

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

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

    default:
      return -1;
    }
}

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

static int
pattern201 (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 (!register_operand (operands[0], i2)
      || GET_MODE (x1) != i2)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i1)
    return -1;
  x4 = XEXP (x2, 1);
  if (GET_MODE (x4) != i1)
    return -1;
  switch (GET_MODE (operands[1]))
    {
    case V4SImode:
      if (!register_operand (operands[1], V4SImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern202 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, 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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  operands[1] = x4;
  x5 = XEXP (x2, 1);
  switch (GET_CODE (x5))
    {
    case VEC_SELECT:
      x6 = XEXP (x5, 1);
      if (GET_CODE (x6) != PARALLEL)
        return -1;
      switch (XVECLEN (x6, 0))
        {
        case 2:
          x7 = XVECEXP (x6, 0, 0);
          if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x8 = XVECEXP (x6, 0, 1);
          if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
              || !register_operand (operands[1], V2DImode))
            return -1;
          x9 = XEXP (x1, 1);
          switch (GET_CODE (x9))
            {
            case CONST_VECTOR:
              x10 = XEXP (x5, 0);
              operands[2] = x10;
              x11 = XEXP (x2, 2);
              operands[3] = x11;
              switch (XVECLEN (x9, 0))
                {
                case 14:
                  if (GET_MODE (x9) != V14QImode)
                    return -1;
                  x12 = XVECEXP (x9, 0, 0);
                  if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                    return -1;
                  x13 = XVECEXP (x9, 0, 1);
                  if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                    return -1;
                  x14 = XVECEXP (x9, 0, 2);
                  if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                    return -1;
                  x15 = XVECEXP (x9, 0, 3);
                  if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                    return -1;
                  x16 = XVECEXP (x9, 0, 4);
                  if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                    return -1;
                  x17 = XVECEXP (x9, 0, 5);
                  if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                    return -1;
                  x18 = XVECEXP (x9, 0, 6);
                  if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                    return -1;
                  x19 = XVECEXP (x9, 0, 7);
                  if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                    return -1;
                  x20 = XVECEXP (x9, 0, 8);
                  if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                    return -1;
                  x21 = XVECEXP (x9, 0, 9);
                  if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                    return -1;
                  x22 = XVECEXP (x9, 0, 10);
                  if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                    return -1;
                  x23 = XVECEXP (x9, 0, 11);
                  if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                    return -1;
                  x24 = XVECEXP (x9, 0, 12);
                  if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                    return -1;
                  x25 = XVECEXP (x9, 0, 13);
                  if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
                      || pattern195 (x1, V16QImode, V2QImode) != 0)
                    return -1;
                  return 0;

                case 6:
                  if (GET_MODE (x9) != V6HImode)
                    return -1;
                  x12 = XVECEXP (x9, 0, 0);
                  if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                    return -1;
                  x13 = XVECEXP (x9, 0, 1);
                  if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                    return -1;
                  x14 = XVECEXP (x9, 0, 2);
                  if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                    return -1;
                  x15 = XVECEXP (x9, 0, 3);
                  if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                    return -1;
                  x16 = XVECEXP (x9, 0, 4);
                  if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                    return -1;
                  x17 = XVECEXP (x9, 0, 5);
                  if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
                      || pattern195 (x1, V8HImode, V2HImode) != 0)
                    return -1;
                  return 1;

                case 2:
                  if (GET_MODE (x9) != V2SImode)
                    return -1;
                  x12 = XVECEXP (x9, 0, 0);
                  if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                    return -1;
                  x13 = XVECEXP (x9, 0, 1);
                  if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
                      || pattern195 (x1, V4SImode, V2SImode) != 0)
                    return -1;
                  return 2;

                default:
                  return -1;
                }

            case VEC_SELECT:
              x26 = XEXP (x9, 1);
              if (GET_CODE (x26) != PARALLEL)
                return -1;
              x11 = XEXP (x2, 2);
              operands[2] = x11;
              x10 = XEXP (x5, 0);
              if (!rtx_equal_p (x10, operands[0]))
                return -1;
              x27 = XEXP (x9, 0);
              if (!rtx_equal_p (x27, operands[0]))
                return -1;
              switch (XVECLEN (x26, 0))
                {
                case 14:
                  x28 = XVECEXP (x26, 0, 0);
                  if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
                    return -1;
                  x29 = XVECEXP (x26, 0, 1);
                  if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
                    return -1;
                  x30 = XVECEXP (x26, 0, 2);
                  if (x30 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
                    return -1;
                  x31 = XVECEXP (x26, 0, 3);
                  if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
                    return -1;
                  x32 = XVECEXP (x26, 0, 4);
                  if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
                    return -1;
                  x33 = XVECEXP (x26, 0, 5);
                  if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
                    return -1;
                  x34 = XVECEXP (x26, 0, 6);
                  if (x34 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
                    return -1;
                  x35 = XVECEXP (x26, 0, 7);
                  if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
                    return -1;
                  x36 = XVECEXP (x26, 0, 8);
                  if (x36 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
                    return -1;
                  x37 = XVECEXP (x26, 0, 9);
                  if (x37 != const_int_rtx[MAX_SAVED_CONST_INT + 11])
                    return -1;
                  x38 = XVECEXP (x26, 0, 10);
                  if (x38 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
                    return -1;
                  x39 = XVECEXP (x26, 0, 11);
                  if (x39 != const_int_rtx[MAX_SAVED_CONST_INT + 13])
                    return -1;
                  x40 = XVECEXP (x26, 0, 12);
                  if (x40 != const_int_rtx[MAX_SAVED_CONST_INT + 14])
                    return -1;
                  x41 = XVECEXP (x26, 0, 13);
                  if (x41 != const_int_rtx[MAX_SAVED_CONST_INT + 15]
                      || pattern196 (x1, V14QImode, V2QImode, V16QImode) != 0)
                    return -1;
                  return 3;

                case 6:
                  x28 = XVECEXP (x26, 0, 0);
                  if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
                    return -1;
                  x29 = XVECEXP (x26, 0, 1);
                  if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
                    return -1;
                  x30 = XVECEXP (x26, 0, 2);
                  if (x30 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
                    return -1;
                  x31 = XVECEXP (x26, 0, 3);
                  if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
                    return -1;
                  x32 = XVECEXP (x26, 0, 4);
                  if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
                    return -1;
                  x33 = XVECEXP (x26, 0, 5);
                  if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
                      || pattern196 (x1, V6HImode, V2HImode, V8HImode) != 0)
                    return -1;
                  return 4;

                case 2:
                  x28 = XVECEXP (x26, 0, 0);
                  if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
                    return -1;
                  x29 = XVECEXP (x26, 0, 1);
                  if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 3]
                      || !memory_operand (operands[0], V4SImode)
                      || GET_MODE (x1) != V4SImode
                      || GET_MODE (x2) != V2SImode
                      || GET_MODE (x3) != V2SImode
                      || GET_MODE (x5) != V2SImode
                      || GET_MODE (x9) != V2SImode)
                    return -1;
                  return 5;

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case 4:
          x7 = XVECEXP (x6, 0, 0);
          if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x8 = XVECEXP (x6, 0, 1);
          if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
            return -1;
          x42 = XVECEXP (x6, 0, 2);
          if (x42 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
            return -1;
          x43 = XVECEXP (x6, 0, 3);
          if (x43 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
            return -1;
          x9 = XEXP (x1, 1);
          switch (GET_CODE (x9))
            {
            case CONST_VECTOR:
              x10 = XEXP (x5, 0);
              operands[2] = x10;
              x11 = XEXP (x2, 2);
              operands[3] = x11;
              switch (XVECLEN (x9, 0))
                {
                case 12:
                  if (GET_MODE (x9) != V12QImode)
                    return -1;
                  x12 = XVECEXP (x9, 0, 0);
                  if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                    return -1;
                  x13 = XVECEXP (x9, 0, 1);
                  if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                    return -1;
                  x14 = XVECEXP (x9, 0, 2);
                  if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                    return -1;
                  x15 = XVECEXP (x9, 0, 3);
                  if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                    return -1;
                  x16 = XVECEXP (x9, 0, 4);
                  if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                    return -1;
                  x17 = XVECEXP (x9, 0, 5);
                  if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                    return -1;
                  x18 = XVECEXP (x9, 0, 6);
                  if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                    return -1;
                  x19 = XVECEXP (x9, 0, 7);
                  if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                    return -1;
                  x20 = XVECEXP (x9, 0, 8);
                  if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                    return -1;
                  x21 = XVECEXP (x9, 0, 9);
                  if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                    return -1;
                  x22 = XVECEXP (x9, 0, 10);
                  if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                    return -1;
                  x23 = XVECEXP (x9, 0, 11);
                  if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                    return -1;
                  res = pattern197 (x1, V16QImode, V4QImode);
                  if (res >= 0)
                    return res + 6; /* [6, 7] */
                  return -1;

                case 4:
                  if (GET_MODE (x9) != V4HImode)
                    return -1;
                  x12 = XVECEXP (x9, 0, 0);
                  if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                    return -1;
                  x13 = XVECEXP (x9, 0, 1);
                  if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                    return -1;
                  x14 = XVECEXP (x9, 0, 2);
                  if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                    return -1;
                  x15 = XVECEXP (x9, 0, 3);
                  if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                    return -1;
                  res = pattern197 (x1, V8HImode, V4HImode);
                  if (res >= 0)
                    return res + 8; /* [8, 9] */
                  return -1;

                default:
                  return -1;
                }

            case VEC_SELECT:
              x26 = XEXP (x9, 1);
              if (GET_CODE (x26) != PARALLEL)
                return -1;
              x11 = XEXP (x2, 2);
              operands[2] = x11;
              x10 = XEXP (x5, 0);
              if (!rtx_equal_p (x10, operands[0]))
                return -1;
              x27 = XEXP (x9, 0);
              if (!rtx_equal_p (x27, operands[0]))
                return -1;
              switch (XVECLEN (x26, 0))
                {
                case 12:
                  x28 = XVECEXP (x26, 0, 0);
                  if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
                    return -1;
                  x29 = XVECEXP (x26, 0, 1);
                  if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
                    return -1;
                  x30 = XVECEXP (x26, 0, 2);
                  if (x30 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
                    return -1;
                  x31 = XVECEXP (x26, 0, 3);
                  if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
                    return -1;
                  x32 = XVECEXP (x26, 0, 4);
                  if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
                    return -1;
                  x33 = XVECEXP (x26, 0, 5);
                  if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
                    return -1;
                  x34 = XVECEXP (x26, 0, 6);
                  if (x34 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
                    return -1;
                  x35 = XVECEXP (x26, 0, 7);
                  if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + 11])
                    return -1;
                  x36 = XVECEXP (x26, 0, 8);
                  if (x36 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
                    return -1;
                  x37 = XVECEXP (x26, 0, 9);
                  if (x37 != const_int_rtx[MAX_SAVED_CONST_INT + 13])
                    return -1;
                  x38 = XVECEXP (x26, 0, 10);
                  if (x38 != const_int_rtx[MAX_SAVED_CONST_INT + 14])
                    return -1;
                  x39 = XVECEXP (x26, 0, 11);
                  if (x39 != const_int_rtx[MAX_SAVED_CONST_INT + 15]
                      || !memory_operand (operands[0], V16QImode)
                      || GET_MODE (x1) != V16QImode
                      || GET_MODE (x2) != V4QImode
                      || GET_MODE (x3) != V4QImode
                      || GET_MODE (x5) != V4QImode)
                    return -1;
                  res = pattern198 (x9, V12QImode);
                  if (res >= 0)
                    return res + 10; /* [10, 11] */
                  return -1;

                case 4:
                  x28 = XVECEXP (x26, 0, 0);
                  if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
                    return -1;
                  x29 = XVECEXP (x26, 0, 1);
                  if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
                    return -1;
                  x30 = XVECEXP (x26, 0, 2);
                  if (x30 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
                    return -1;
                  x31 = XVECEXP (x26, 0, 3);
                  if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
                      || !memory_operand (operands[0], V8HImode)
                      || GET_MODE (x1) != V8HImode
                      || GET_MODE (x2) != V4HImode
                      || GET_MODE (x3) != V4HImode
                      || GET_MODE (x5) != V4HImode)
                    return -1;
                  res = pattern198 (x9, V4HImode);
                  if (res >= 0)
                    return res + 12; /* [12, 13] */
                  return -1;

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case 8:
          x7 = XVECEXP (x6, 0, 0);
          if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x8 = XVECEXP (x6, 0, 1);
          if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
            return -1;
          x42 = XVECEXP (x6, 0, 2);
          if (x42 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
            return -1;
          x43 = XVECEXP (x6, 0, 3);
          if (x43 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
            return -1;
          x44 = XVECEXP (x6, 0, 4);
          if (x44 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
            return -1;
          x45 = XVECEXP (x6, 0, 5);
          if (x45 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
            return -1;
          x46 = XVECEXP (x6, 0, 6);
          if (x46 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
            return -1;
          x47 = XVECEXP (x6, 0, 7);
          if (x47 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
              || GET_MODE (x1) != V16QImode
              || GET_MODE (x2) != V8QImode
              || GET_MODE (x3) != V8QImode
              || GET_MODE (x5) != V8QImode)
            return -1;
          x9 = XEXP (x1, 1);
          if (GET_MODE (x9) != V8QImode)
            return -1;
          switch (GET_CODE (x9))
            {
            case CONST_VECTOR:
              if (XVECLEN (x9, 0) != 8)
                return -1;
              x12 = XVECEXP (x9, 0, 0);
              if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x13 = XVECEXP (x9, 0, 1);
              if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x14 = XVECEXP (x9, 0, 2);
              if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x15 = XVECEXP (x9, 0, 3);
              if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x16 = XVECEXP (x9, 0, 4);
              if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x17 = XVECEXP (x9, 0, 5);
              if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x18 = XVECEXP (x9, 0, 6);
              if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x19 = XVECEXP (x9, 0, 7);
              if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
                  || !register_operand (operands[0], V16QImode))
                return -1;
              x10 = XEXP (x5, 0);
              operands[2] = x10;
              if (!vector_move_operand (operands[2], V16QImode))
                return -1;
              x11 = XEXP (x2, 2);
              operands[3] = x11;
              res = pattern199 ();
              if (res >= 0)
                return res + 14; /* [14, 16] */
              return -1;

            case VEC_SELECT:
              x26 = XEXP (x9, 1);
              if (GET_CODE (x26) != PARALLEL
                  || XVECLEN (x26, 0) != 8)
                return -1;
              x28 = XVECEXP (x26, 0, 0);
              if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
                return -1;
              x29 = XVECEXP (x26, 0, 1);
              if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
                return -1;
              x30 = XVECEXP (x26, 0, 2);
              if (x30 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
                return -1;
              x31 = XVECEXP (x26, 0, 3);
              if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 11])
                return -1;
              x32 = XVECEXP (x26, 0, 4);
              if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
                return -1;
              x33 = XVECEXP (x26, 0, 5);
              if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 13])
                return -1;
              x34 = XVECEXP (x26, 0, 6);
              if (x34 != const_int_rtx[MAX_SAVED_CONST_INT + 14])
                return -1;
              x35 = XVECEXP (x26, 0, 7);
              if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + 15]
                  || !memory_operand (operands[0], V16QImode))
                return -1;
              x11 = XEXP (x2, 2);
              operands[2] = x11;
              x10 = XEXP (x5, 0);
              if (!rtx_equal_p (x10, operands[0]))
                return -1;
              x27 = XEXP (x9, 0);
              if (!rtx_equal_p (x27, operands[0]))
                return -1;
              res = pattern199 ();
              if (res >= 0)
                return res + 17; /* [17, 19] */
              return -1;

            default:
              return -1;
            }

        default:
          return -1;
        }

    case CONST_VECTOR:
      x9 = XEXP (x1, 1);
      if (GET_CODE (x9) != CONST_VECTOR)
        return -1;
      x11 = XEXP (x2, 2);
      operands[2] = x11;
      switch (XVECLEN (x5, 0))
        {
        case 2:
          x48 = XVECEXP (x5, 0, 0);
          if (x48 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x49 = XVECEXP (x5, 0, 1);
          if (x49 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
              || !register_operand (operands[1], V2DImode))
            return -1;
          switch (XVECLEN (x9, 0))
            {
            case 14:
              if (GET_MODE (x9) != V14QImode)
                return -1;
              x12 = XVECEXP (x9, 0, 0);
              if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x13 = XVECEXP (x9, 0, 1);
              if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x14 = XVECEXP (x9, 0, 2);
              if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x15 = XVECEXP (x9, 0, 3);
              if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x16 = XVECEXP (x9, 0, 4);
              if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x17 = XVECEXP (x9, 0, 5);
              if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x18 = XVECEXP (x9, 0, 6);
              if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x19 = XVECEXP (x9, 0, 7);
              if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x20 = XVECEXP (x9, 0, 8);
              if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x21 = XVECEXP (x9, 0, 9);
              if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x22 = XVECEXP (x9, 0, 10);
              if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x23 = XVECEXP (x9, 0, 11);
              if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x24 = XVECEXP (x9, 0, 12);
              if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x25 = XVECEXP (x9, 0, 13);
              if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
                  || pattern200 (x1, V2QImode, V16QImode) != 0)
                return -1;
              return 20;

            case 6:
              if (GET_MODE (x9) != V6HImode)
                return -1;
              x12 = XVECEXP (x9, 0, 0);
              if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x13 = XVECEXP (x9, 0, 1);
              if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x14 = XVECEXP (x9, 0, 2);
              if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x15 = XVECEXP (x9, 0, 3);
              if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x16 = XVECEXP (x9, 0, 4);
              if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x17 = XVECEXP (x9, 0, 5);
              if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
                  || pattern200 (x1, V2HImode, V8HImode) != 0)
                return -1;
              return 21;

            case 2:
              if (GET_MODE (x9) != V2SImode)
                return -1;
              x12 = XVECEXP (x9, 0, 0);
              if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x13 = XVECEXP (x9, 0, 1);
              if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
                  || pattern200 (x1, V2SImode, V4SImode) != 0)
                return -1;
              return 22;

            default:
              return -1;
            }

        case 4:
          x48 = XVECEXP (x5, 0, 0);
          if (x48 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x49 = XVECEXP (x5, 0, 1);
          if (x49 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x50 = XVECEXP (x5, 0, 2);
          if (x50 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x51 = XVECEXP (x5, 0, 3);
          if (x51 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          switch (XVECLEN (x9, 0))
            {
            case 12:
              if (GET_MODE (x9) != V12QImode)
                return -1;
              x12 = XVECEXP (x9, 0, 0);
              if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x13 = XVECEXP (x9, 0, 1);
              if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x14 = XVECEXP (x9, 0, 2);
              if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x15 = XVECEXP (x9, 0, 3);
              if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x16 = XVECEXP (x9, 0, 4);
              if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x17 = XVECEXP (x9, 0, 5);
              if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x18 = XVECEXP (x9, 0, 6);
              if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x19 = XVECEXP (x9, 0, 7);
              if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x20 = XVECEXP (x9, 0, 8);
              if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x21 = XVECEXP (x9, 0, 9);
              if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x22 = XVECEXP (x9, 0, 10);
              if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x23 = XVECEXP (x9, 0, 11);
              if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              res = pattern201 (x1, V4QImode, V16QImode);
              if (res >= 0)
                return res + 23; /* [23, 24] */
              return -1;

            case 4:
              if (GET_MODE (x9) != V4HImode)
                return -1;
              x12 = XVECEXP (x9, 0, 0);
              if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x13 = XVECEXP (x9, 0, 1);
              if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x14 = XVECEXP (x9, 0, 2);
              if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x15 = XVECEXP (x9, 0, 3);
              if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              res = pattern201 (x1, V4HImode, V8HImode);
              if (res >= 0)
                return res + 25; /* [25, 26] */
              return -1;

            default:
              return -1;
            }

        case 8:
          if (GET_MODE (x5) != V8QImode)
            return -1;
          x48 = XVECEXP (x5, 0, 0);
          if (x48 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x49 = XVECEXP (x5, 0, 1);
          if (x49 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x50 = XVECEXP (x5, 0, 2);
          if (x50 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x51 = XVECEXP (x5, 0, 3);
          if (x51 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x52 = XVECEXP (x5, 0, 4);
          if (x52 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x53 = XVECEXP (x5, 0, 5);
          if (x53 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x54 = XVECEXP (x5, 0, 6);
          if (x54 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x55 = XVECEXP (x5, 0, 7);
          if (x55 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
              || XVECLEN (x9, 0) != 8
              || GET_MODE (x9) != V8QImode)
            return -1;
          x12 = XVECEXP (x9, 0, 0);
          if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x13 = XVECEXP (x9, 0, 1);
          if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x14 = XVECEXP (x9, 0, 2);
          if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x15 = XVECEXP (x9, 0, 3);
          if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x16 = XVECEXP (x9, 0, 4);
          if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x17 = XVECEXP (x9, 0, 5);
          if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x18 = XVECEXP (x9, 0, 6);
          if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x19 = XVECEXP (x9, 0, 7);
          if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
              || !register_operand (operands[0], V16QImode)
              || GET_MODE (x1) != V16QImode
              || GET_MODE (x2) != V8QImode
              || GET_MODE (x3) != V8QImode)
            return -1;
          res = pattern199 ();
          if (res >= 0)
            return res + 27; /* [27, 29] */
          return -1;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

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

static int
pattern204 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != V4SFmode)
    return -1;
  x3 = XEXP (x1, 2);
  if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
      || !register_operand (operands[0], V4SFmode)
      || GET_MODE (x1) != V4SFmode)
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!nonimmediate_operand (operands[1], V4SFmode))
    return -1;
  x5 = XEXP (x1, 1);
  operands[2] = x5;
  if (!register_operand (operands[2], V4SFmode))
    return -1;
  return 0;
}

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

static int
pattern206 (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
      || !nonimmediate_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, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XVECEXP (x2, 0, 0);
  operands[1] = x3;
  x4 = XEXP (x1, 1);
  operands[2] = x4;
  x5 = XEXP (x1, 2);
  switch (GET_CODE (x5))
    {
    case REG:
    case SUBREG:
      operands[3] = x5;
      switch (GET_MODE (operands[0]))
        {
        case V16SFmode:
          return pattern205 (x1, V16SFmode, HImode); /* [-1, 0] */

        case V8SFmode:
          if (pattern205 (x1, V8SFmode, QImode) != 0)
            return -1;
          return 1;

        case V4SFmode:
          if (pattern205 (x1, V4SFmode, QImode) != 0)
            return -1;
          return 2;

        case V8DFmode:
          if (pattern205 (x1, V8DFmode, QImode) != 0)
            return -1;
          return 3;

        case V4DFmode:
          if (pattern205 (x1, V4DFmode, QImode) != 0)
            return -1;
          return 4;

        case V2DFmode:
          if (pattern205 (x1, V2DFmode, QImode) != 0)
            return -1;
          return 5;

        default:
          return -1;
        }

    case CONST_INT:
      if (XWINT (x5, 0) != 1LL)
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V4SFmode:
          if (pattern206 (x1, V4SFmode) != 0)
            return -1;
          return 6;

        case V2DFmode:
          if (pattern206 (x1, V2DFmode) != 0)
            return -1;
          return 7;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern208 (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);
  operands[2] = x2;
  x3 = XEXP (x1, 2);
  operands[3] = x3;
  x4 = XEXP (x1, 0);
  x5 = XVECEXP (x4, 0, 0);
  switch (GET_CODE (x5))
    {
    case REG:
    case SUBREG:
    case MEM:
      operands[1] = x5;
      return 0;

    case VEC_SELECT:
      if (GET_MODE (x5) != V2SFmode)
        return -1;
      x6 = XEXP (x5, 1);
      if (GET_CODE (x6) != PARALLEL
          || XVECLEN (x6, 0) != 2)
        return -1;
      x7 = XVECEXP (x6, 0, 0);
      if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x8 = XVECEXP (x6, 0, 1);
      if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
          || !register_operand (operands[0], V2DImode)
          || GET_MODE (x1) != V2DImode
          || GET_MODE (x4) != V2DImode)
        return -1;
      x9 = XEXP (x5, 0);
      operands[1] = x9;
      if (!nonimmediate_operand (operands[1], V4SFmode)
          || !vector_move_operand (operands[2], V2DImode)
          || !register_operand (operands[3], QImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

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

static int
pattern210 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 2);
  operands[3] = x2;
  switch (GET_MODE (operands[0]))
    {
    case V16SFmode:
      return pattern209 (x1, V16SFmode, HImode); /* [-1, 0] */

    case V8DFmode:
      if (pattern209 (x1, V8DFmode, QImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern211 (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
      || !vector_operand (operands[1], i1)
      || !register_operand (operands[2], i1))
    return -1;
  return 0;
}

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

    case CONST_INT:
      if (XWINT (x5, 0) != 1LL)
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V4SFmode:
          if (pattern211 (x1, V4SFmode) != 0)
            return -1;
          return 2;

        case V2DFmode:
          if (pattern211 (x1, V2DFmode) != 0)
            return -1;
          return 3;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern213 (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) != i2
      || !register_operand (operands[1], i2)
      || !vector_operand (operands[2], i2)
      || !vector_move_operand (operands[3], i2)
      || !register_operand (operands[4], i1))
    return -1;
  return 0;
}

static int
pattern214 (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 = XVECEXP (x2, 0, 0);
  operands[1] = x3;
  x4 = XVECEXP (x2, 0, 1);
  operands[2] = x4;
  x5 = XEXP (x1, 1);
  operands[3] = x5;
  x6 = XEXP (x1, 2);
  operands[4] = x6;
  switch (GET_MODE (operands[0]))
    {
    case V16SFmode:
      return pattern213 (x1, HImode, V16SFmode); /* [-1, 0] */

    case V8SFmode:
      if (pattern213 (x1, QImode, V8SFmode) != 0)
        return -1;
      return 1;

    case V4SFmode:
      if (pattern213 (x1, QImode, V4SFmode) != 0)
        return -1;
      return 2;

    case V8DFmode:
      if (pattern213 (x1, QImode, V8DFmode) != 0)
        return -1;
      return 3;

    case V4DFmode:
      if (pattern213 (x1, QImode, V4DFmode) != 0)
        return -1;
      return 4;

    case V2DFmode:
      if (pattern213 (x1, QImode, V2DFmode) != 0)
        return -1;
      return 5;

    default:
      return -1;
    }
}

static int
pattern215 (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) != V32HImode
      || !register_operand (operands[0], V32HImode)
      || GET_MODE (x1) != V32HImode)
    return -1;
  x3 = XVECEXP (x2, 0, 0);
  operands[1] = x3;
  if (!nonimmediate_operand (operands[1], V32HImode))
    return -1;
  x4 = XVECEXP (x2, 0, 1);
  operands[2] = x4;
  if (!const_0_to_255_operand (operands[2], SImode))
    return -1;
  x5 = XEXP (x1, 1);
  operands[3] = x5;
  if (!vector_move_operand (operands[3], V32HImode))
    return -1;
  x6 = XEXP (x1, 2);
  operands[4] = x6;
  if (!register_operand (operands[4], SImode))
    return -1;
  return 0;
}

static int
pattern216 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != CONST_VECTOR
      || XVECLEN (x1, 0) != 2
      || GET_MODE (x1) != V2SImode)
    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;
  return 0;
}

static int
pattern217 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  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);
  x4 = XEXP (x3, 0);
  operands[1] = x4;
  if (!vector_operand (operands[1], V2DFmode))
    return -1;
  return 0;
}

static int
pattern218 (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
pattern219 (rtx x1, int i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) != CONST
      || GET_MODE (x2) != SImode)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != UNSPEC
      || XVECLEN (x3, 0) != 1
      || XINT (x3, 1) != i1
      || GET_MODE (x3) != SImode
      || !register_operand (operands[0], SImode)
      || GET_MODE (x1) != SImode)
    return -1;
  return 0;
}

static int
pattern220 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (XINT (x2, 1) != 0
      || GET_MODE (x2) != QImode)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != AND
      || GET_MODE (x3) != SImode)
    return -1;
  x4 = XEXP (x3, 0);
  operands[2] = x4;
  if (!register_operand (operands[2], SImode))
    return -1;
  x5 = XEXP (x3, 1);
  operands[3] = x5;
  if (!const_int_operand (operands[3], SImode))
    return -1;
  return pattern143 (x1); /* [-1, 1] */
}

static int
pattern221 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[2], SImode)
      || !register_operand (operands[0], SImode)
      || GET_MODE (x1) != SImode
      || !nonimmediate_operand (operands[1], SImode))
    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;
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) != PARALLEL
      || XVECLEN (x2, 0) != 1)
    return -1;
  x3 = XVECEXP (x2, 0, 0);
  if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x4 = XEXP (x1, 0);
  operands[1] = x4;
  switch (GET_MODE (operands[0]))
    {
    case SImode:
      return 0;

    case DImode:
      return 1;

    default:
      return -1;
    }
}

static int
pattern223 (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);
  switch (GET_MODE (x2))
    {
    case SFmode:
      if (!register_operand (operands[1], V4SFmode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern224 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != PARALLEL
      || XVECLEN (x5, 0) != 1)
    return -1;
  x6 = XVECEXP (x5, 0, 0);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x7 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x7) != UNSPEC
      || XVECLEN (x7, 0) != 1
      || XINT (x7, 1) != 170)
    return -1;
  x8 = XEXP (x4, 0);
  operands[1] = x8;
  x9 = XVECEXP (x7, 0, 0);
  operands[2] = x9;
  if (!const48_operand (operands[2], SImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case SImode:
      return pattern223 (x3, SImode); /* [-1, 1] */

    case DImode:
      res = pattern223 (x3, DImode);
      if (res >= 0)
        return res + 2; /* [2, 3] */
      return -1;

    default:
      return -1;
    }
}

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

static int
pattern226 (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 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) != 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) != 17
      || GET_MODE (x6) != CCmode)
    return -1;
  x7 = XEXP (x3, 0);
  x8 = XEXP (x7, 0);
  operands[1] = x8;
  x9 = XEXP (x4, 0);
  operands[2] = x9;
  switch (GET_MODE (operands[0]))
    {
    case DImode:
      return pattern225 (x3, SImode, DImode); /* [-1, 0] */

    case TImode:
      if (pattern225 (x3, DImode, TImode) != 0)
        return -1;
      return 1;

    case HImode:
      if (pattern225 (x3, QImode, HImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern227 (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
      || !nonimmediate_operand (operands[1], i1)
      || !register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern228 (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 = XVECEXP (x2, 0, 0);
  operands[2] = x3;
  switch (GET_MODE (operands[0]))
    {
    case SImode:
      x4 = XVECEXP (x1, 0, 0);
      x5 = XEXP (x4, 1);
      return pattern227 (x5, SImode); /* [-1, 0] */

    case DImode:
      x4 = XVECEXP (x1, 0, 0);
      x5 = XEXP (x4, 1);
      if (pattern227 (x5, DImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern229 (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, 0);
  operands[0] = x3;
  x4 = XEXP (x2, 1);
  x5 = XVECEXP (x4, 0, 0);
  operands[1] = x5;
  x6 = XVECEXP (x1, 0, 1);
  switch (GET_CODE (x6))
    {
    case CLOBBER:
      x7 = XEXP (x6, 0);
      if (GET_CODE (x7) != REG
          || REGNO (x7) != 17
          || GET_MODE (x7) != CCmode)
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case SImode:
          if (!register_operand (operands[0], SImode)
              || GET_MODE (x4) != SImode
              || !nonimmediate_operand (operands[1], SImode))
            return -1;
          return 0;

        case DImode:
          if (!register_operand (operands[0], DImode)
              || GET_MODE (x4) != DImode
              || !nonimmediate_operand (operands[1], DImode))
            return -1;
          return 1;

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

        default:
          return -1;
        }

    case UNSPEC:
      if (pnum_clobbers == NULL
          || XVECLEN (x6, 0) != 1
          || XINT (x6, 1) != 39)
        return -1;
      res = pattern228 (x1);
      if (res >= 0)
        return res + 3; /* [3, 4] */
      return -1;

    default:
      return -1;
    }
}

static int
pattern230 (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) != CCmode)
    return -1;
  x3 = XEXP (x1, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != 17
      || GET_MODE (x3) != CCmode)
    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;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], XFmode))
    return -1;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 0);
  operands[1] = x3;
  if (!register_operand (operands[1], XFmode))
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 1);
  x6 = XVECEXP (x5, 0, 0);
  switch (GET_CODE (x6))
    {
    case REG:
    case SUBREG:
      operands[2] = x6;
      if (!register_operand (operands[2], XFmode))
        return -1;
      x7 = XEXP (x2, 1);
      x8 = XVECEXP (x7, 0, 0);
      if (!rtx_equal_p (x8, operands[2]))
        return -1;
      return 0;

    case FLOAT_EXTEND:
      if (GET_MODE (x6) != XFmode)
        return -1;
      x7 = XEXP (x2, 1);
      x8 = XVECEXP (x7, 0, 0);
      if (GET_CODE (x8) != FLOAT_EXTEND
          || GET_MODE (x8) != XFmode)
        return -1;
      x9 = XEXP (x6, 0);
      operands[2] = x9;
      x10 = XEXP (x8, 0);
      if (!rtx_equal_p (x10, operands[2]))
        return -1;
      switch (GET_MODE (operands[2]))
        {
        case SFmode:
          if (!register_operand (operands[2], SFmode))
            return -1;
          return 1;

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

        default:
          return -1;
        }

    default:
      return -1;
    }
}

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

static int
pattern233 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != XFmode)
    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) != 17
      || GET_MODE (x5) != CCmode)
    return -1;
  x6 = XEXP (x2, 0);
  operands[0] = x6;
  if (!register_operand (operands[0], XFmode))
    return -1;
  x7 = XVECEXP (x3, 0, 0);
  operands[1] = x7;
  if (!register_operand (operands[1], XFmode))
    return -1;
  return 0;
}

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

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

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

    default:
      return -1;
    }
}

static int
pattern235 (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;
  if (!register_operand (operands[1], XFmode))
    return -1;
  return pattern234 (x1); /* [-1, 2] */
}

static int
pattern236 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x2) != CLOBBER)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != 17
      || GET_MODE (x3) != CCmode)
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 0);
  operands[0] = x5;
  x6 = XEXP (x4, 1);
  return pattern235 (x6); /* [-1, 2] */
}

static int
pattern237 (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) != UNSPEC
      || XVECLEN (x2, 0) != 1
      || XINT (x2, 1) != 170)
    return -1;
  x3 = XVECEXP (x1, 0, 0);
  x4 = XEXP (x3, 0);
  operands[0] = x4;
  x5 = XVECEXP (x2, 0, 0);
  operands[2] = x5;
  if (!const_4_or_8_to_11_operand (operands[2], SImode))
    return -1;
  return 0;
}

static int
pattern238 (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) != UNSPEC
      || XVECLEN (x2, 0) != 1
      || XINT (x2, 1) != 170)
    return -1;
  x3 = XVECEXP (x1, 0, 0);
  x4 = XEXP (x3, 0);
  operands[0] = x4;
  x5 = XEXP (x3, 1);
  x6 = XVECEXP (x5, 0, 0);
  operands[1] = x6;
  x7 = XVECEXP (x2, 0, 0);
  operands[2] = x7;
  if (!const48_operand (operands[2], SImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case V16SFmode:
      if (!register_operand (operands[0], V16SFmode)
          || GET_MODE (x5) != V16SFmode
          || !register_operand (operands[1], V16SFmode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern239 (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) != XFmode)
    return -1;
  x4 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x4) != CLOBBER)
    return -1;
  x5 = XEXP (x2, 0);
  operands[0] = x5;
  if (!register_operand (operands[0], XFmode))
    return -1;
  x6 = XVECEXP (x3, 0, 1);
  operands[2] = x6;
  if (!register_operand (operands[2], XFmode))
    return -1;
  x7 = XEXP (x4, 0);
  operands[3] = x7;
  if (!scratch_operand (operands[3], XFmode))
    return -1;
  x8 = XVECEXP (x3, 0, 0);
  switch (GET_CODE (x8))
    {
    case REG:
    case SUBREG:
      operands[1] = x8;
      if (!register_operand (operands[1], XFmode))
        return -1;
      return 0;

    case FLOAT_EXTEND:
      if (GET_MODE (x8) != XFmode)
        return -1;
      x9 = XEXP (x8, 0);
      operands[1] = x9;
      switch (GET_MODE (operands[1]))
        {
        case SFmode:
          if (!register_operand (operands[1], SFmode))
            return -1;
          return 1;

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

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern240 (rtx x1, int i1, machine_mode i2, rtx_code i3, int i4)
{
  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) != i2)
    return -1;
  x4 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x4) != SET)
    return -1;
  x5 = XEXP (x4, 1);
  return pattern154 (x5, i1, i4, i2, i3); /* [-1, 0] */
}

static int
pattern241 (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) != CCZmode)
    return -1;
  x4 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x4) != CLOBBER)
    return -1;
  x5 = XEXP (x2, 0);
  operands[0] = x5;
  if (!flags_reg_operand (operands[0], CCZmode))
    return -1;
  x6 = XVECEXP (x3, 0, 0);
  operands[1] = x6;
  x7 = XVECEXP (x3, 0, 1);
  operands[2] = x7;
  x8 = XEXP (x4, 0);
  operands[3] = x8;
  switch (GET_MODE (operands[1]))
    {
    case SImode:
      return 0;

    case DImode:
      return 1;

    default:
      return -1;
    }
}

static int
pattern242 (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
pattern243 (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);
  if (GET_CODE (x2) != UNSPEC
      || XVECLEN (x2, 0) != 1
      || XINT (x2, 1) != 170)
    return -1;
  x3 = XVECEXP (x1, 0, 0);
  x4 = XEXP (x3, 0);
  operands[0] = x4;
  x5 = XEXP (x3, 1);
  x6 = XVECEXP (x5, 0, 0);
  operands[1] = x6;
  x7 = XVECEXP (x5, 0, 1);
  operands[2] = x7;
  x8 = XVECEXP (x2, 0, 0);
  operands[3] = x8;
  if (!const48_operand (operands[3], SImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case V16SFmode:
      return pattern242 (x5, V16SFmode); /* [-1, 0] */

    case V8DFmode:
      if (pattern242 (x5, V8DFmode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

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

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

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

    default:
      return -1;
    }
}

static int
pattern246 (rtx x1, int i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  if (GET_CODE (x5) != REG
      || REGNO (x5) != 17)
    return -1;
  x6 = XEXP (x4, 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 + i1])
    return -1;
  x8 = XEXP (x3, 2);
  if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x9 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x9) != CLOBBER)
    return -1;
  x10 = XEXP (x9, 0);
  if (GET_CODE (x10) != REG
      || REGNO (x10) != 17
      || GET_MODE (x10) != CCmode)
    return -1;
  x11 = XEXP (x2, 0);
  operands[0] = x11;
  return pattern245 (x3); /* [-1, 1] */
}

static int
pattern247 (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);
  if (GET_CODE (x2) != UNSPEC
      || XVECLEN (x2, 0) != 1
      || XINT (x2, 1) != 39)
    return -1;
  x3 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x3) != CLOBBER)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != REG
      || REGNO (x4) != 17
      || GET_MODE (x4) != CCmode)
    return -1;
  x5 = XVECEXP (x1, 0, 0);
  x6 = XEXP (x5, 0);
  operands[0] = x6;
  x7 = XEXP (x5, 1);
  x8 = XVECEXP (x7, 0, 0);
  operands[1] = x8;
  return pattern228 (x1); /* [-1, 1] */
}

static int
pattern248 (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) != XFmode)
    return -1;
  x4 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x4) != USE)
    return -1;
  x5 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x5) != USE)
    return -1;
  x6 = XEXP (x2, 0);
  operands[0] = x6;
  if (!register_operand (operands[0], XFmode))
    return -1;
  x7 = XVECEXP (x3, 0, 0);
  operands[1] = x7;
  if (!register_operand (operands[1], XFmode))
    return -1;
  x8 = XEXP (x4, 0);
  operands[2] = x8;
  if (!memory_operand (operands[2], HImode))
    return -1;
  x9 = XEXP (x5, 0);
  operands[3] = x9;
  if (!memory_operand (operands[3], HImode))
    return -1;
  return 0;
}

static int
pattern249 (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, 1);
  x3 = XEXP (x2, 0);
  operands[2] = x3;
  if (!memory_operand (operands[2], HImode))
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  x5 = XEXP (x4, 0);
  operands[3] = x5;
  if (!memory_operand (operands[3], HImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case DImode:
      if (pnum_clobbers == NULL
          || !memory_operand (operands[0], DImode))
        return -1;
      x6 = XVECEXP (x1, 0, 0);
      x7 = XEXP (x6, 1);
      if (GET_MODE (x7) != DImode)
        return -1;
      return 0;

    case HImode:
      if (!memory_operand (operands[0], HImode))
        return -1;
      x6 = XVECEXP (x1, 0, 0);
      x7 = XEXP (x6, 1);
      if (GET_MODE (x7) != HImode)
        return -1;
      return 1;

    case SImode:
      if (!memory_operand (operands[0], SImode))
        return -1;
      x6 = XVECEXP (x1, 0, 0);
      x7 = XEXP (x6, 1);
      if (GET_MODE (x7) != SImode)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern250 (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, 1);
  if (GET_CODE (x2) != USE)
    return -1;
  x3 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x3) != USE)
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 0);
  operands[0] = x5;
  x6 = XEXP (x4, 1);
  x7 = XVECEXP (x6, 0, 0);
  operands[1] = x7;
  if (!register_operand (operands[1], XFmode))
    return -1;
  return pattern249 (x1, pnum_clobbers); /* [-1, 2] */
}

static int
pattern251 (rtx x1, machine_mode i1)
{
  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) != 17
      || GET_MODE (x2) != i1)
    return -1;
  return 0;
}

static int
pattern252 (rtx x1)
{
  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 (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  return pattern251 (x4, CCmode); /* [-1, 0] */
}

static int
pattern253 (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);
  operands[2] = x2;
  if (!register_operand (operands[2], V16QImode))
    return -1;
  x3 = XVECEXP (x1, 0, 1);
  operands[3] = x3;
  if (!register_operand (operands[3], SImode))
    return -1;
  x4 = XVECEXP (x1, 0, 3);
  operands[5] = x4;
  if (!register_operand (operands[5], SImode))
    return -1;
  x5 = XVECEXP (x1, 0, 4);
  operands[6] = x5;
  if (!const_0_to_255_operand (operands[6], SImode))
    return -1;
  return 0;
}

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

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

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

    default:
      return -1;
    }
}

static int
pattern256 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, 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, 0);
  if (GET_CODE (x5) != ZERO_EXTRACT)
    return -1;
  x6 = XEXP (x5, 1);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    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;
  x9 = XEXP (x2, 0);
  if (GET_CODE (x9) != PC)
    return -1;
  x10 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x10) != CLOBBER)
    return -1;
  x11 = XEXP (x10, 0);
  if (GET_CODE (x11) != REG
      || REGNO (x11) != 17
      || GET_MODE (x11) != CCmode)
    return -1;
  x12 = XEXP (x5, 0);
  operands[1] = x12;
  x13 = XEXP (x5, 2);
  switch (GET_CODE (x13))
    {
    case CONST_INT:
    case CONST_WIDE_INT:
    case CONST_FIXED:
    case CONST_DOUBLE:
    case CONST_VECTOR:
    case CONST:
    case REG:
    case SUBREG:
    case LABEL_REF:
    case SYMBOL_REF:
    case HIGH:
      operands[2] = x13;
      if (!nonmemory_operand (operands[2], SImode))
        return -1;
      x14 = XEXP (x4, 1);
      if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x15 = XEXP (x7, 0);
      operands[3] = x15;
      switch (GET_MODE (x5))
        {
        case SImode:
          if (!register_operand (operands[1], SImode))
            return -1;
          return 0;

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

        default:
          return -1;
        }

    case ZERO_EXTEND:
      if (GET_MODE (x13) != SImode)
        return -1;
      x14 = XEXP (x4, 1);
      if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x16 = XEXP (x13, 0);
      operands[2] = x16;
      if (!register_operand (operands[2], QImode))
        return -1;
      x15 = XEXP (x7, 0);
      operands[3] = x15;
      switch (GET_MODE (x5))
        {
        case SImode:
          if (!register_operand (operands[1], SImode))
            return -1;
          return 2;

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

        default:
          return -1;
        }

    case AND:
      if (GET_MODE (x13) != SImode)
        return -1;
      x16 = XEXP (x13, 0);
      operands[2] = x16;
      if (!register_operand (operands[2], SImode))
        return -1;
      x17 = XEXP (x13, 1);
      operands[3] = x17;
      if (!const_int_operand (operands[3], VOIDmode))
        return -1;
      x15 = XEXP (x7, 0);
      operands[4] = x15;
      switch (GET_MODE (x5))
        {
        case SImode:
          if (!register_operand (operands[1], SImode))
            return -1;
          return 4;

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

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern257 (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);
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != i1)
    return -1;
  x4 = XEXP (x1, 1);
  if (XVECLEN (x4, 0) < 1)
    return -1;
  operands[5] = x4;
  if (!addsub_vs_parallel (operands[5], VOIDmode))
    return -1;
  operands[7] = x1;
  x5 = XEXP (x2, 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);
  operands[4] = x9;
  x10 = XVECEXP (x4, 0, 0);
  operands[6] = x10;
  if (!const_int_operand (operands[6], VOIDmode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case V8SFmode:
      return 0;

    case V4SFmode:
      return 1;

    case V4DFmode:
      return 2;

    case V2DFmode:
      return 3;

    default:
      return -1;
    }
}

static int
pattern258 (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_CODE (x1) != PARALLEL
      || XVECLEN (x1, 0) != 2)
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_CODE (x2) != SET)
    return -1;
  return 0;
}

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

static int
pattern260 (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], i1)
      || GET_MODE (x1) != i1
      || !register_operand (operands[1], i1)
      || !nonmemory_operand (operands[2], i2))
    return -1;
  return 0;
}

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

static int
pattern262 (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, 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]
      || pattern261 (x1, i1, i2, V4DFmode) != 0)
    return -1;
  return 0;
}

static int
pattern263 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11;
  int res ATTRIBUTE_UNUSED;
  x2 = 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]
      || pattern261 (x1, i1, i2, V8DFmode) != 0)
    return -1;
  return 0;
}

static int
pattern264 (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)
      || !nonimmediate_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern265 (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)
      || !vector_operand (operands[2], i1))
    return -1;
  return 0;
}

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

static int
pattern267 (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)
      || !const_0_to_255_mul_8_operand (operands[2], SImode))
    return -1;
  return 0;
}

static int
pattern268 (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)
      || !vector_operand (operands[2], i1))
    return -1;
  return 0;
}

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

static int
pattern270 (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
      || !nonimmediate_operand (operands[1], i1))
    return -1;
  x2 = XEXP (x1, 1);
  operands[2] = x2;
  if (!vector_move_operand (operands[2], i1))
    return -1;
  return 0;
}

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

static int
pattern272 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!const0_operand (operands[2], i1))
    return -1;
  switch (GET_MODE (operands[1]))
    {
    case V4DImode:
      if (!register_operand (operands[1], V4DImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern273 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  switch (GET_MODE (operands[0]))
    {
    case V16QImode:
      if (!register_operand (operands[0], V16QImode)
          || GET_MODE (x1) != V16QImode)
        return -1;
      x2 = XEXP (x1, 0);
      switch (GET_MODE (x2))
        {
        case V4QImode:
          return pattern272 (V12QImode); /* [-1, 1] */

        case V2QImode:
          if (!register_operand (operands[1], V2DImode)
              || !const0_operand (operands[2], V14QImode))
            return -1;
          return 2;

        case V8QImode:
          if (!const0_operand (operands[2], V8QImode))
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V8SImode:
              if (!register_operand (operands[1], V8SImode))
                return -1;
              return 3;

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

            default:
              return -1;
            }

        default:
          return -1;
        }

    case V8HImode:
      if (!register_operand (operands[0], V8HImode)
          || GET_MODE (x1) != V8HImode)
        return -1;
      x2 = XEXP (x1, 0);
      switch (GET_MODE (x2))
        {
        case V4HImode:
          res = pattern272 (V4HImode);
          if (res >= 0)
            return res + 5; /* [5, 6] */
          return -1;

        case V2HImode:
          if (!register_operand (operands[1], V2DImode)
              || !const0_operand (operands[2], V6HImode))
            return -1;
          return 7;

        default:
          return -1;
        }

    case V4SImode:
      if (!register_operand (operands[0], V4SImode)
          || GET_MODE (x1) != V4SImode)
        return -1;
      x2 = XEXP (x1, 0);
      if (GET_MODE (x2) != V2SImode
          || !register_operand (operands[1], V2DImode)
          || !const0_operand (operands[2], V2SImode))
        return -1;
      return 8;

    default:
      return -1;
    }
}

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

static int
pattern275 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  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 + 1])
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
    return -1;
  x5 = XVECEXP (x1, 0, 3);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
    return -1;
  x6 = XVECEXP (x1, 0, 4);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
    return -1;
  x7 = XVECEXP (x1, 0, 5);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
    return -1;
  x8 = XVECEXP (x1, 0, 6);
  if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
    return -1;
  x9 = XVECEXP (x1, 0, 7);
  if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
    return -1;
  return 0;
}

static int
pattern276 (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 (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 + 1])
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
    return -1;
  x5 = XVECEXP (x1, 0, 3);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
    return -1;
  return 0;
}

static int
pattern277 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 2);
  switch (GET_CODE (x2))
    {
    case REG:
    case SUBREG:
      operands[4] = x2;
      x3 = XEXP (x1, 1);
      operands[3] = x3;
      switch (GET_MODE (operands[0]))
        {
        case V16SFmode:
          return pattern63 (x1, V16SFmode, HImode); /* [-1, 0] */

        case V8SFmode:
          if (pattern63 (x1, V8SFmode, QImode) != 0)
            return -1;
          return 1;

        case V4SFmode:
          if (pattern63 (x1, V4SFmode, QImode) != 0)
            return -1;
          return 2;

        case V8DFmode:
          if (pattern63 (x1, V8DFmode, QImode) != 0)
            return -1;
          return 3;

        case V4DFmode:
          if (pattern63 (x1, V4DFmode, QImode) != 0)
            return -1;
          return 4;

        case V2DFmode:
          if (pattern63 (x1, V2DFmode, QImode) != 0)
            return -1;
          return 5;

        case V64QImode:
          if (pattern65 (x1, V64QImode, DImode) != 0)
            return -1;
          return 6;

        case V32QImode:
          if (pattern65 (x1, V32QImode, SImode) != 0)
            return -1;
          return 7;

        case V16QImode:
          if (pattern65 (x1, V16QImode, HImode) != 0)
            return -1;
          return 8;

        case V32HImode:
          if (pattern65 (x1, V32HImode, SImode) != 0)
            return -1;
          return 9;

        case V16HImode:
          if (pattern65 (x1, V16HImode, HImode) != 0)
            return -1;
          return 10;

        case V8HImode:
          if (pattern65 (x1, V8HImode, QImode) != 0)
            return -1;
          return 11;

        case V16SImode:
          if (pattern65 (x1, V16SImode, HImode) != 0)
            return -1;
          return 12;

        case V8SImode:
          if (pattern65 (x1, V8SImode, QImode) != 0)
            return -1;
          return 13;

        case V4SImode:
          if (pattern65 (x1, V4SImode, QImode) != 0)
            return -1;
          return 14;

        case V8DImode:
          if (pattern65 (x1, V8DImode, QImode) != 0)
            return -1;
          return 15;

        case V4DImode:
          if (pattern65 (x1, V4DImode, QImode) != 0)
            return -1;
          return 16;

        case V2DImode:
          if (pattern65 (x1, V2DImode, QImode) != 0)
            return -1;
          return 17;

        default:
          return -1;
        }

    case CONST_INT:
      res = pattern68 (x1);
      if (res >= 0)
        return res + 18; /* [18, 19] */
      return -1;

    default:
      return -1;
    }
}

static int
pattern278 (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);
  switch (GET_CODE (x2))
    {
    case CONST_INT:
    case CONST_WIDE_INT:
    case CONST_DOUBLE:
    case CONST_VECTOR:
      operands[4] = x2;
      return 0;

    case REG:
    case SUBREG:
    case MEM:
      x3 = XEXP (x1, 2);
      switch (GET_CODE (x3))
        {
        case REG:
        case SUBREG:
          operands[4] = x3;
          x4 = XEXP (x1, 0);
          x5 = XEXP (x4, 0);
          x6 = XEXP (x5, 0);
          operands[1] = x6;
          x7 = XEXP (x4, 1);
          operands[2] = x7;
          switch (GET_MODE (operands[0]))
            {
            case V16SFmode:
              return 1;

            case V8SFmode:
              return 2;

            case V4SFmode:
              return 3;

            case V8DFmode:
              return 4;

            case V4DFmode:
              return 5;

            case V2DFmode:
              return 6;

            default:
              return -1;
            }

        case CONST_INT:
          if (XWINT (x3, 0) != 1LL)
            return -1;
          x4 = XEXP (x1, 0);
          x5 = XEXP (x4, 0);
          x6 = XEXP (x5, 0);
          operands[2] = x6;
          x7 = XEXP (x4, 1);
          operands[1] = x7;
          if (!rtx_equal_p (x2, operands[1]))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case V4SFmode:
              return 7;

            case V2DFmode:
              return 8;

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern279 (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, x25;
  rtx x26, x27, x28, x29, x30, x31, x32, x33;
  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;
  x6 = XVECEXP (x1, 0, 4);
  if (GET_CODE (x6) != CONST_INT)
    return -1;
  x7 = XVECEXP (x1, 0, 5);
  if (GET_CODE (x7) != CONST_INT)
    return -1;
  x8 = XVECEXP (x1, 0, 6);
  if (GET_CODE (x8) != CONST_INT)
    return -1;
  x9 = XVECEXP (x1, 0, 7);
  if (GET_CODE (x9) != CONST_INT)
    return -1;
  x10 = XVECEXP (x1, 0, 8);
  if (GET_CODE (x10) != CONST_INT)
    return -1;
  x11 = XVECEXP (x1, 0, 9);
  if (GET_CODE (x11) != CONST_INT)
    return -1;
  x12 = XVECEXP (x1, 0, 10);
  if (GET_CODE (x12) != CONST_INT)
    return -1;
  x13 = XVECEXP (x1, 0, 11);
  if (GET_CODE (x13) != CONST_INT)
    return -1;
  x14 = XVECEXP (x1, 0, 12);
  if (GET_CODE (x14) != CONST_INT)
    return -1;
  x15 = XVECEXP (x1, 0, 13);
  if (GET_CODE (x15) != CONST_INT)
    return -1;
  x16 = XVECEXP (x1, 0, 14);
  if (GET_CODE (x16) != CONST_INT)
    return -1;
  x17 = XVECEXP (x1, 0, 15);
  if (GET_CODE (x17) != CONST_INT)
    return -1;
  x18 = XVECEXP (x1, 0, 16);
  if (GET_CODE (x18) != CONST_INT)
    return -1;
  x19 = XVECEXP (x1, 0, 17);
  if (GET_CODE (x19) != CONST_INT)
    return -1;
  x20 = XVECEXP (x1, 0, 18);
  if (GET_CODE (x20) != CONST_INT)
    return -1;
  x21 = XVECEXP (x1, 0, 19);
  if (GET_CODE (x21) != CONST_INT)
    return -1;
  x22 = XVECEXP (x1, 0, 20);
  if (GET_CODE (x22) != CONST_INT)
    return -1;
  x23 = XVECEXP (x1, 0, 21);
  if (GET_CODE (x23) != CONST_INT)
    return -1;
  x24 = XVECEXP (x1, 0, 22);
  if (GET_CODE (x24) != CONST_INT)
    return -1;
  x25 = XVECEXP (x1, 0, 23);
  if (GET_CODE (x25) != CONST_INT)
    return -1;
  x26 = XVECEXP (x1, 0, 24);
  if (GET_CODE (x26) != CONST_INT)
    return -1;
  x27 = XVECEXP (x1, 0, 25);
  if (GET_CODE (x27) != CONST_INT)
    return -1;
  x28 = XVECEXP (x1, 0, 26);
  if (GET_CODE (x28) != CONST_INT)
    return -1;
  x29 = XVECEXP (x1, 0, 27);
  if (GET_CODE (x29) != CONST_INT)
    return -1;
  x30 = XVECEXP (x1, 0, 28);
  if (GET_CODE (x30) != CONST_INT)
    return -1;
  x31 = XVECEXP (x1, 0, 29);
  if (GET_CODE (x31) != CONST_INT)
    return -1;
  x32 = XVECEXP (x1, 0, 30);
  if (GET_CODE (x32) != CONST_INT)
    return -1;
  x33 = XVECEXP (x1, 0, 31);
  if (GET_CODE (x33) != CONST_INT)
    return -1;
  return 0;
}

static int
pattern280 (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) != SImode)
    return -1;
  x3 = XEXP (x2, 1);
  if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x4 = XEXP (x2, 2);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 8]
      || GET_MODE (x1) != SImode)
    return -1;
  return 0;
}

static int
pattern281 ()
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (GET_MODE (operands[0]))
    {
    case DImode:
      if (!register_operand (operands[0], DImode)
          || !ix86_comparison_operator (operands[1], DImode))
        return -1;
      return 0;

    case SImode:
      if (!register_operand (operands[0], SImode)
          || !ix86_comparison_operator (operands[1], SImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern282 (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], i1)
      || GET_MODE (x1) != i1
      || !register_operand (operands[1], i2)
      || !nonimmediate_operand (operands[2], i2))
    return -1;
  return 0;
}

static int
pattern283 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (GET_MODE (operands[0]))
    {
    case DImode:
      return pattern282 (x1, DImode, V64QImode); /* [-1, 0] */

    case SImode:
      if (!register_operand (operands[0], SImode)
          || GET_MODE (x1) != SImode)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case V32QImode:
          if (!register_operand (operands[1], V32QImode)
              || !nonimmediate_operand (operands[2], V32QImode))
            return -1;
          return 1;

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

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern284 (rtx x1, int *pnum_clobbers, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (pnum_clobbers == NULL
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x2) != REG
      || REGNO (x2) != 7
      || GET_MODE (x2) != i1
      || !register_operand (operands[0], i1))
    return -1;
  return 0;
}

static int
pattern285 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 2);
  operands[3] = x2;
  if (!const_0_to_7_operand (operands[3], SImode))
    return -1;
  return pattern283 (x1); /* [-1, 2] */
}

static int
pattern286 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (GET_MODE (x1) != SImode)
    return -1;
  x2 = XVECEXP (x1, 0, 3);
  if (GET_CODE (x2) != REG
      || REGNO (x2) != 7
      || GET_MODE (x2) != SImode)
    return -1;
  return 0;
}

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

static int
pattern288 (rtx x1, machine_mode i1, int i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != DImode)
    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
      || XINT (x6, 1) != i2
      || GET_MODE (x6) != i1)
    return -1;
  x7 = XVECEXP (x6, 0, 0);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
      || !register_operand (operands[0], DImode))
    return -1;
  x8 = XEXP (x5, 0);
  operands[1] = x8;
  if (!register_operand (operands[1], i1))
    return -1;
  return 0;
}

static int
pattern289 (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);
  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
      || XINT (x6, 1) != i1
      || GET_MODE (x6) != CCCmode)
    return -1;
  x7 = XVECEXP (x6, 0, 0);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x8 = XEXP (x5, 0);
  if (GET_CODE (x8) != REG
      || REGNO (x8) != 17
      || GET_MODE (x8) != CCCmode)
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case HImode:
      if (!register_operand (operands[0], HImode)
          || GET_MODE (x3) != HImode)
        return -1;
      return 0;

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

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

    default:
      return -1;
    }
}

static int
pattern290 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (XINT (x3, 1) != 61)
    return -1;
  x4 = XVECEXP (x1, 0, 1);
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != UNSPEC_VOLATILE
      || XVECLEN (x5, 0) != 1
      || XINT (x5, 1) != 61)
    return -1;
  x6 = XVECEXP (x5, 0, 0);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x7 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x7) != SET)
    return -1;
  x8 = XEXP (x7, 1);
  if (GET_CODE (x8) != UNSPEC_VOLATILE
      || XVECLEN (x8, 0) != 1
      || XINT (x8, 1) != 61
      || GET_MODE (x8) != CCZmode)
    return -1;
  x9 = XVECEXP (x8, 0, 0);
  if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x10 = XEXP (x7, 0);
  if (GET_CODE (x10) != REG
      || REGNO (x10) != 17
      || GET_MODE (x10) != CCZmode)
    return -1;
  x11 = XVECEXP (x3, 0, 0);
  operands[1] = x11;
  x12 = XVECEXP (x3, 0, 1);
  operands[2] = x12;
  x13 = XVECEXP (x3, 0, 2);
  operands[3] = x13;
  x14 = XVECEXP (x3, 0, 3);
  operands[4] = x14;
  return 0;
}

static int
pattern291 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != CCmode)
    return -1;
  x4 = XEXP (x2, 0);
  if (GET_CODE (x4) != REG
      || REGNO (x4) != 17
      || GET_MODE (x4) != CCmode)
    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 = XVECEXP (x3, 0, 0);
  operands[3] = x7;
  if (!register_operand (operands[3], DImode))
    return -1;
  x8 = XEXP (x5, 0);
  operands[0] = x8;
  if (!scratch_operand (operands[0], DImode))
    return -1;
  x9 = XEXP (x6, 0);
  operands[1] = x9;
  if (!scratch_operand (operands[1], SImode))
    return -1;
  x10 = XVECEXP (x1, 0, 3);
  x11 = XEXP (x10, 0);
  operands[2] = x11;
  if (!scratch_operand (operands[2], HImode))
    return -1;
  return 0;
}

static int
pattern292 (rtx x1, int *pnum_clobbers)
{
  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, 0);
  operands[2] = x3;
  if (!memory_operand (operands[2], HImode))
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  x5 = XEXP (x4, 0);
  operands[3] = x5;
  if (!memory_operand (operands[3], HImode))
    return -1;
  x6 = XVECEXP (x1, 0, 3);
  x7 = XEXP (x6, 0);
  operands[4] = x7;
  switch (GET_CODE (operands[4]))
    {
    case REG:
    case SCRATCH:
      if (!scratch_operand (operands[4], XFmode)
          || !memory_operand (operands[0], DImode))
        return -1;
      x8 = XVECEXP (x1, 0, 0);
      x9 = XEXP (x8, 1);
      if (GET_MODE (x9) != DImode)
        return -1;
      return 0;

    case SUBREG:
    case MEM:
      switch (GET_MODE (operands[0]))
        {
        case DImode:
          if (pnum_clobbers == NULL
              || !nonimmediate_operand (operands[0], DImode))
            return -1;
          x8 = XVECEXP (x1, 0, 0);
          x9 = XEXP (x8, 1);
          if (GET_MODE (x9) != DImode
              || !memory_operand (operands[4], DImode))
            return -1;
          return 1;

        case HImode:
          if (!nonimmediate_operand (operands[0], HImode))
            return -1;
          x8 = XVECEXP (x1, 0, 0);
          x9 = XEXP (x8, 1);
          if (GET_MODE (x9) != HImode
              || !memory_operand (operands[4], HImode))
            return -1;
          return 2;

        case SImode:
          if (!nonimmediate_operand (operands[0], SImode))
            return -1;
          x8 = XVECEXP (x1, 0, 0);
          x9 = XEXP (x8, 1);
          if (GET_MODE (x9) != SImode
              || !memory_operand (operands[4], SImode))
            return -1;
          return 3;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern293 (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, 1);
  if (GET_CODE (x2) != USE)
    return -1;
  x3 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x3) != USE)
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 0);
  operands[0] = x5;
  x6 = XEXP (x4, 1);
  x7 = XVECEXP (x6, 0, 0);
  operands[1] = x7;
  if (!register_operand (operands[1], XFmode))
    return -1;
  return pattern292 (x1, pnum_clobbers); /* [-1, 3] */
}

static int
pattern294 (rtx x1, unsigned int i1, rtx_code i2)
{
  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, 1);
  if (GET_CODE (x2) != i2)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != i1)
    return -1;
  x4 = XEXP (x1, 0);
  if (GET_CODE (x4) != REG
      || REGNO (x4) != i1)
    return -1;
  return 0;
}

static int
pattern295 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x2) != CLOBBER)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != 17
      || GET_MODE (x3) != CCmode)
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 1);
  x6 = XVECEXP (x5, 0, 0);
  operands[1] = x6;
  switch (GET_MODE (operands[0]))
    {
    case SImode:
      if (!register_operand (operands[0], SImode)
          || GET_MODE (x5) != SImode
          || !nonimmediate_operand (operands[1], SImode))
        return -1;
      return 0;

    case DImode:
      if (!register_operand (operands[0], DImode)
          || GET_MODE (x5) != DImode
          || !nonimmediate_operand (operands[1], DImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern296 (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) != XFmode)
    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) != 17
      || GET_MODE (x5) != CCmode
      || !register_operand (operands[0], XFmode))
    return -1;
  x6 = XVECEXP (x3, 0, 0);
  operands[1] = x6;
  if (!register_operand (operands[1], XFmode))
    return -1;
  return 0;
}

static int
pattern297 (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) != 17
      || GET_MODE (x3) != CCmode)
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 1);
  return pattern235 (x5); /* [-1, 2] */
}

static int
pattern298 (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, 0);
  operands[2] = x3;
  if (!memory_operand (operands[2], HImode))
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  x5 = XEXP (x4, 0);
  operands[3] = x5;
  if (!memory_operand (operands[3], HImode))
    return -1;
  x6 = XVECEXP (x1, 0, 3);
  x7 = XEXP (x6, 0);
  operands[4] = x7;
  switch (GET_MODE (operands[0]))
    {
    case HImode:
      x8 = XVECEXP (x1, 0, 0);
      x9 = XEXP (x8, 1);
      if (GET_MODE (x9) != HImode
          || !memory_operand (operands[4], HImode))
        return -1;
      return 0;

    case SImode:
      x8 = XVECEXP (x1, 0, 0);
      x9 = XEXP (x8, 1);
      if (GET_MODE (x9) != SImode
          || !memory_operand (operands[4], SImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern299 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x2) != USE)
    return -1;
  x3 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x3) != USE)
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 0);
  operands[0] = x5;
  x6 = XEXP (x4, 1);
  x7 = XVECEXP (x6, 0, 0);
  operands[1] = x7;
  if (!register_operand (operands[1], XFmode))
    return -1;
  return pattern298 (x1); /* [-1, 1] */
}

static int
pattern300 (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 (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 + 1])
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
    return -1;
  x5 = XVECEXP (x1, 0, 3);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
    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, 12);
  if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
    return -1;
  x3 = XVECEXP (x1, 0, 13);
  if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 13])
    return -1;
  x4 = XVECEXP (x1, 0, 14);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 14])
    return -1;
  x5 = XVECEXP (x1, 0, 15);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 15])
    return -1;
  return 0;
}

static int
pattern302 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13;
  int res ATTRIBUTE_UNUSED;
  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 + 1])
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
    return -1;
  x5 = XVECEXP (x1, 0, 3);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
    return -1;
  x6 = XVECEXP (x1, 0, 4);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
    return -1;
  x7 = XVECEXP (x1, 0, 5);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
    return -1;
  x8 = XVECEXP (x1, 0, 6);
  if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
    return -1;
  x9 = XVECEXP (x1, 0, 7);
  if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
    return -1;
  x10 = XVECEXP (x1, 0, 8);
  if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x11 = XVECEXP (x1, 0, 9);
  if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
    return -1;
  x12 = XVECEXP (x1, 0, 10);
  if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
    return -1;
  x13 = XVECEXP (x1, 0, 11);
  if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 11]
      || pattern301 (x1) != 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, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  if (peep2_current_count < 3
      || peep2_current_count < 4
      || !register_operand (operands[0], i1)
      || GET_CODE (x1) != PARALLEL
      || XVECLEN (x1, 0) != 2)
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XEXP (x2, 1);
  switch (GET_CODE (x3))
    {
    case PLUS:
    case MINUS:
    case AND:
    case IOR:
    case XOR:
      operands[3] = x3;
      x4 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x4) != CLOBBER)
        return -1;
      x5 = XEXP (x4, 0);
      if (GET_CODE (x5) != REG
          || REGNO (x5) != 17
          || GET_MODE (x5) != CCmode)
        return -1;
      x6 = XEXP (x3, 1);
      operands[2] = x6;
      return 0;

    default:
      return -1;
    }
}

static int
pattern304 (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 SFmode:
      if (!register_operand (operands[0], SFmode))
        return -1;
      return 0;

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

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

    default:
      return -1;
    }
}

static int
pattern305 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  if (XINT (x1, 1) != 0
      || GET_MODE (x1) != QImode)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != ZERO_EXTRACT
      || GET_MODE (x2) != SImode)
    return -1;
  x3 = XEXP (x2, 1);
  if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x4 = XEXP (x2, 2);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x5 = XEXP (x2, 0);
  operands[1] = x5;
  if (!ext_register_operand (operands[1], VOIDmode))
    return -1;
  return 0;
}

static int
pattern306 (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)
    return -1;
  switch (GET_MODE (operands[1]))
    {
    case V8SFmode:
      if (!nonimmediate_operand (operands[1], V8SFmode))
        return -1;
      return 0;

    case V8DFmode:
      if (!nonimmediate_operand (operands[1], V8DFmode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern307 (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)
    return -1;
  switch (GET_MODE (operands[1]))
    {
    case V4SFmode:
      if (!nonimmediate_operand (operands[1], V4SFmode))
        return -1;
      return 0;

    case V4DFmode:
      if (!nonimmediate_operand (operands[1], V4DFmode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern308 (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)
      || !const_0_to_15_operand (operands[2], SImode))
    return -1;
  return 0;
}

static int
pattern309 (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
      || !nonimmediate_operand (operands[1], i1)
      || !const_0_to_255_operand (operands[2], SImode))
    return -1;
  return 0;
}

static int
pattern310 (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
      || !register_operand (operands[1], i1)
      || !vector_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern311 (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
      || !nonimmediate_operand (operands[1], i1)
      || !register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern312 (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
      || !nonimmediate_operand (operands[1], i2)
      || !register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern313 (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
      || !register_operand (operands[1], i2)
      || !nonimmediate_operand (operands[2], 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];
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1
      || !register_operand (operands[2], i2)
      || !memory_operand (operands[1], i1))
    return -1;
  return 0;
}

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

static int
pattern316 ()
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (GET_MODE (operands[1]))
    {
    case V16QImode:
      if (!register_operand (operands[1], V16QImode)
          || !nonimmediate_operand (operands[2], V16QImode))
        return -1;
      return 0;

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

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

    default:
      return -1;
    }
}

static int
pattern317 ()
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (GET_MODE (operands[1]))
    {
    case V8HImode:
      if (!register_operand (operands[1], V8HImode)
          || !nonimmediate_operand (operands[2], V8HImode))
        return -1;
      return 0;

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

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

    case V8DImode:
      if (!register_operand (operands[1], V8DImode)
          || !nonimmediate_operand (operands[2], V8DImode))
        return -1;
      return 3;

    case V4DImode:
      if (!register_operand (operands[1], V4DImode)
          || !nonimmediate_operand (operands[2], V4DImode))
        return -1;
      return 4;

    case V2DImode:
      if (!register_operand (operands[1], V2DImode)
          || !nonimmediate_operand (operands[2], V2DImode))
        return -1;
      return 5;

    default:
      return -1;
    }
}

static int
pattern318 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  operands[3] = x2;
  switch (GET_MODE (operands[0]))
    {
    case HImode:
      if (!register_operand (operands[0], HImode)
          || GET_MODE (x1) != HImode)
        return -1;
      x3 = XEXP (x1, 0);
      if (GET_MODE (x3) != HImode
          || !register_operand (operands[3], HImode))
        return -1;
      return pattern316 (); /* [-1, 2] */

    case QImode:
      if (!register_operand (operands[0], QImode)
          || GET_MODE (x1) != QImode)
        return -1;
      x3 = XEXP (x1, 0);
      if (GET_MODE (x3) != QImode
          || !register_operand (operands[3], QImode))
        return -1;
      res = pattern317 ();
      if (res >= 0)
        return res + 3; /* [3, 8] */
      return -1;

    default:
      return -1;
    }
}

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

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

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

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

static int
pattern323 (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) != DFmode)
    return -1;
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) != PARALLEL
      || XVECLEN (x2, 0) != 1)
    return -1;
  x3 = XVECEXP (x2, 0, 0);
  if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  return 0;
}

static int
pattern324 ()
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (GET_MODE (operands[0]))
    {
    case DFmode:
      if (!register_operand (operands[0], DFmode)
          || !binary_fp_operator (operands[3], DFmode))
        return -1;
      return 0;

    case XFmode:
      if (!register_operand (operands[0], XFmode)
          || !binary_fp_operator (operands[3], XFmode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern325 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || !binary_fp_operator (operands[3], i1)
      || GET_MODE (x1) != i1
      || !register_operand (operands[2], i1))
    return -1;
  switch (GET_MODE (operands[1]))
    {
    case HImode:
      if (!nonimmediate_operand (operands[1], HImode))
        return -1;
      return 0;

    case SImode:
      if (!nonimmediate_operand (operands[1], SImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern326 (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
      || !nonimmediate_operand (operands[2], i1))
    return -1;
  return 0;
}

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

static int
pattern328 (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
      || !vector_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern329 (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)
      || !nonimmediate_operand (operands[3], i1)
      || !const0_operand (operands[4], i1))
    return -1;
  return 0;
}

static int
pattern330 (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)
      || !nonimmediate_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern331 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XVECEXP (x2, 0, 2);
  operands[3] = x3;
  x4 = XEXP (x1, 2);
  if (!register_operand (x4, QImode))
    return -1;
  x5 = XEXP (x1, 1);
  switch (GET_CODE (x5))
    {
    case CONST_INT:
    case CONST_WIDE_INT:
    case CONST_DOUBLE:
    case CONST_VECTOR:
      operands[4] = x5;
      operands[5] = x4;
      switch (GET_MODE (operands[0]))
        {
        case V8DImode:
          return pattern329 (x1, V8DImode); /* [-1, 0] */

        case V4DImode:
          if (pattern329 (x1, V4DImode) != 0)
            return -1;
          return 1;

        case V2DImode:
          if (pattern329 (x1, V2DImode) != 0)
            return -1;
          return 2;

        default:
          return -1;
        }

    case REG:
    case SUBREG:
      if (!rtx_equal_p (x5, operands[1]))
        return -1;
      operands[4] = x4;
      switch (GET_MODE (operands[0]))
        {
        case V8DImode:
          if (pattern330 (x1, V8DImode) != 0)
            return -1;
          return 3;

        case V4DImode:
          if (pattern330 (x1, V4DImode) != 0)
            return -1;
          return 4;

        case V2DImode:
          if (pattern330 (x1, V2DImode) != 0)
            return -1;
          return 5;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern332 (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], i1)
      || GET_MODE (x1) != i1
      || !constm1_operand (operands[2], i1)
      || !const0_operand (operands[3], i1)
      || !register_operand (operands[1], i2))
    return -1;
  return 0;
}

static int
pattern333 (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, x25;
  rtx x26, x27, x28, x29, x30, x31, x32, x33;
  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;
  x6 = XVECEXP (x1, 0, 4);
  if (GET_CODE (x6) != CONST_INT)
    return -1;
  x7 = XVECEXP (x1, 0, 5);
  if (GET_CODE (x7) != CONST_INT)
    return -1;
  x8 = XVECEXP (x1, 0, 6);
  if (GET_CODE (x8) != CONST_INT)
    return -1;
  x9 = XVECEXP (x1, 0, 7);
  if (GET_CODE (x9) != CONST_INT)
    return -1;
  x10 = XVECEXP (x1, 0, 8);
  if (GET_CODE (x10) != CONST_INT)
    return -1;
  x11 = XVECEXP (x1, 0, 9);
  if (GET_CODE (x11) != CONST_INT)
    return -1;
  x12 = XVECEXP (x1, 0, 10);
  if (GET_CODE (x12) != CONST_INT)
    return -1;
  x13 = XVECEXP (x1, 0, 11);
  if (GET_CODE (x13) != CONST_INT)
    return -1;
  x14 = XVECEXP (x1, 0, 12);
  if (GET_CODE (x14) != CONST_INT)
    return -1;
  x15 = XVECEXP (x1, 0, 13);
  if (GET_CODE (x15) != CONST_INT)
    return -1;
  x16 = XVECEXP (x1, 0, 14);
  if (GET_CODE (x16) != CONST_INT)
    return -1;
  x17 = XVECEXP (x1, 0, 15);
  if (GET_CODE (x17) != CONST_INT)
    return -1;
  x18 = XVECEXP (x1, 0, 16);
  if (GET_CODE (x18) != CONST_INT)
    return -1;
  x19 = XVECEXP (x1, 0, 17);
  if (GET_CODE (x19) != CONST_INT)
    return -1;
  x20 = XVECEXP (x1, 0, 18);
  if (GET_CODE (x20) != CONST_INT)
    return -1;
  x21 = XVECEXP (x1, 0, 19);
  if (GET_CODE (x21) != CONST_INT)
    return -1;
  x22 = XVECEXP (x1, 0, 20);
  if (GET_CODE (x22) != CONST_INT)
    return -1;
  x23 = XVECEXP (x1, 0, 21);
  if (GET_CODE (x23) != CONST_INT)
    return -1;
  x24 = XVECEXP (x1, 0, 22);
  if (GET_CODE (x24) != CONST_INT)
    return -1;
  x25 = XVECEXP (x1, 0, 23);
  if (GET_CODE (x25) != CONST_INT)
    return -1;
  x26 = XVECEXP (x1, 0, 24);
  if (GET_CODE (x26) != CONST_INT)
    return -1;
  x27 = XVECEXP (x1, 0, 25);
  if (GET_CODE (x27) != CONST_INT)
    return -1;
  x28 = XVECEXP (x1, 0, 26);
  if (GET_CODE (x28) != CONST_INT)
    return -1;
  x29 = XVECEXP (x1, 0, 27);
  if (GET_CODE (x29) != CONST_INT)
    return -1;
  x30 = XVECEXP (x1, 0, 28);
  if (GET_CODE (x30) != CONST_INT)
    return -1;
  x31 = XVECEXP (x1, 0, 29);
  if (GET_CODE (x31) != CONST_INT)
    return -1;
  x32 = XVECEXP (x1, 0, 30);
  if (GET_CODE (x32) != CONST_INT)
    return -1;
  x33 = XVECEXP (x1, 0, 31);
  if (GET_CODE (x33) != CONST_INT)
    return -1;
  return 0;
}

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

static int
pattern335 (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], V16HImode)
      || GET_MODE (x1) != V16HImode)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != V16HImode
      || !nonimmediate_operand (operands[1], i1)
      || !vector_move_operand (operands[2], V16HImode)
      || !register_operand (operands[3], HImode))
    return -1;
  return 0;
}

static int
pattern336 (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
      || !nonimmediate_operand (operands[1], i1))
    return -1;
  x5 = XEXP (x3, 1);
  if (GET_MODE (x5) != i2
      || !nonimmediate_operand (operands[2], i1))
    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, 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
      || !vector_operand (operands[1], i1))
    return -1;
  x5 = XEXP (x3, 1);
  if (GET_MODE (x5) != i2
      || !vector_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern338 (rtx x1, rtx_code i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 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;
  switch (GET_MODE (operands[0]))
    {
    case V4HImode:
      return pattern336 (x1, V4HImode, V4SImode); /* [-1, 0] */

    case V32HImode:
      if (pattern337 (x1, V32HImode, V32SImode) != 0)
        return -1;
      return 1;

    case V16HImode:
      if (pattern337 (x1, V16HImode, V16SImode) != 0)
        return -1;
      return 2;

    case V8HImode:
      if (pattern337 (x1, V8HImode, V8SImode) != 0)
        return -1;
      return 3;

    default:
      return -1;
    }
}

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

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

static int
pattern341 (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 REG:
    case SUBREG:
    case MEM:
      if (!rtx_equal_p (x2, operands[1]))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case SImode:
          return pattern339 (x1, SImode); /* [-1, 0] */

        case DImode:
          if (pattern339 (x1, DImode) != 0)
            return -1;
          return 1;

        default:
          return -1;
        }

    case NOT:
      x3 = XEXP (x2, 0);
      if (!rtx_equal_p (x3, operands[1]))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case SImode:
          if (pattern340 (x1, SImode) != 0)
            return -1;
          return 2;

        case DImode:
          if (pattern340 (x1, DImode) != 0)
            return -1;
          return 3;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern342 (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, 1);
  if (GET_MODE (x2) != i1
      || !nonimmediate_operand (operands[1], i1))
    return -1;
  return 0;
}

static int
pattern343 (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
      || !nonimmediate_operand (operands[1], i1)
      || !x86_64_general_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern344 (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 64LL:
      return pattern336 (x1, DImode, TImode); /* [-1, 0] */

    case 32LL:
      if (pattern336 (x1, SImode, DImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

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

    case DFmode:
      if (!nonimmediate_operand (operands[1], DFmode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern346 (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);
  operands[0] = x3;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 1);
  x6 = XEXP (x5, 0);
  switch (GET_MODE (x6))
    {
    case QImode:
      if (!nonimmediate_operand (operands[1], QImode)
          || !general_operand (operands[2], QImode)
          || !scratch_operand (operands[0], QImode))
        return -1;
      return 0;

    case HImode:
      if (!nonimmediate_operand (operands[1], HImode)
          || !general_operand (operands[2], HImode)
          || !scratch_operand (operands[0], HImode))
        return -1;
      return 1;

    case SImode:
      if (!nonimmediate_operand (operands[1], SImode)
          || !x86_64_general_operand (operands[2], SImode)
          || !scratch_operand (operands[0], SImode))
        return -1;
      return 2;

    case DImode:
      if (!nonimmediate_operand (operands[1], DImode)
          || !x86_64_general_operand (operands[2], DImode)
          || !scratch_operand (operands[0], DImode))
        return -1;
      return 3;

    default:
      return -1;
    }
}

static int
pattern347 (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);
  switch (GET_CODE (x2))
    {
    case SET:
      return 0;

    case CLOBBER:
      x3 = XVECEXP (x1, 0, 0);
      x4 = XEXP (x3, 1);
      x5 = XEXP (x4, 0);
      x6 = XEXP (x5, 0);
      operands[1] = x6;
      x7 = XEXP (x5, 1);
      operands[2] = x7;
      res = pattern346 (x1);
      if (res >= 0)
        return res + 1; /* [1, 4] */
      return -1;

    default:
      return -1;
    }
}

static int
pattern348 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  operands[1] = x5;
  x6 = XEXP (x4, 1);
  operands[2] = x6;
  x7 = XVECEXP (x1, 0, 1);
  switch (GET_CODE (x7))
    {
    case SET:
      x8 = XEXP (x7, 0);
      operands[0] = x8;
      return 0;

    case CLOBBER:
      x8 = XEXP (x7, 0);
      operands[0] = x8;
      switch (GET_MODE (x4))
        {
        case QImode:
          if (!register_operand (operands[1], QImode)
              || !const_1_to_31_operand (operands[2], QImode)
              || !scratch_operand (operands[0], QImode))
            return -1;
          return 1;

        case HImode:
          if (!register_operand (operands[1], HImode)
              || !const_1_to_31_operand (operands[2], QImode)
              || !scratch_operand (operands[0], HImode))
            return -1;
          return 2;

        case SImode:
          if (!register_operand (operands[1], SImode)
              || !const_1_to_31_operand (operands[2], QImode)
              || !scratch_operand (operands[0], SImode))
            return -1;
          return 3;

        case DImode:
          if (!register_operand (operands[1], DImode)
              || !const_1_to_63_operand (operands[2], QImode)
              || !scratch_operand (operands[0], DImode))
            return -1;
          return 4;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

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

static int
pattern350 (rtx x1, unsigned int i1, unsigned int i2, machine_mode i3, unsigned int i4, machine_mode i5)
{
  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, 0);
  if (GET_MODE (x3) != i5)
    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) != i4
      || GET_MODE (x5) != i3)
    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) != i2
      || GET_MODE (x7) != XFmode)
    return -1;
  x8 = XVECEXP (x1, 0, 4);
  if (GET_CODE (x8) != CLOBBER)
    return -1;
  x9 = XEXP (x8, 0);
  if (GET_CODE (x9) != REG
      || REGNO (x9) != i1)
    return -1;
  return 0;
}

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

static int
pattern352 (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
      || !nonimmediate_operand (operands[2], i1)
      || !nonimmediate_operand (operands[3], i1))
    return -1;
  return 0;
}

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

    case DImode:
      if (pattern352 (x1, DImode) != 0)
        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;
  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;
  if (!nonmemory_operand (operands[2], QImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case DImode:
      if (!register_operand (operands[0], DImode)
          || GET_MODE (x3) != DImode
          || !register_operand (operands[1], DImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

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

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

static int
pattern357 (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)
      || !nonimmediate_operand (operands[2], i1)
      || !const_0_to_31_operand (operands[3], SImode))
    return -1;
  return 0;
}

static int
pattern358 (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)
      || !vector_operand (operands[2], i1)
      || !register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern359 (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], i1)
      || GET_MODE (x1) != i1
      || !register_operand (operands[1], i1)
      || !register_operand (operands[2], i2)
      || !nonimmediate_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern360 (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], i1)
      || GET_MODE (x1) != i1
      || !register_operand (operands[1], i2)
      || !register_operand (operands[2], i1)
      || !nonimmediate_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern361 (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], i1)
      || GET_MODE (x1) != i1
      || !register_operand (operands[1], i1)
      || !vector_move_operand (operands[2], i1)
      || !register_operand (operands[3], i2))
    return -1;
  return 0;
}

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

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

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

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

static int
pattern366 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || !binary_fp_operator (operands[3], i1)
      || !register_operand (operands[1], i1)
      || GET_MODE (x1) != i1)
    return -1;
  switch (GET_MODE (operands[2]))
    {
    case HImode:
      if (!nonimmediate_operand (operands[2], HImode))
        return -1;
      return 0;

    case SImode:
      if (!nonimmediate_operand (operands[2], SImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

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

static int
pattern368 (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 QImode:
      return pattern367 (x1, QImode); /* [-1, 0] */

    case HImode:
      if (pattern367 (x1, HImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

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

static int
pattern370 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  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;
  switch (GET_MODE (operands[2]))
    {
    case SImode:
      if (!vector_operand (operands[2], SImode))
        return -1;
      return 0;

    case DImode:
      if (!vector_operand (operands[2], DImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

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

static int
pattern372 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  operands[3] = x2;
  x3 = XEXP (x1, 2);
  operands[4] = x3;
  switch (GET_MODE (operands[0]))
    {
    case V16SFmode:
      return pattern371 (x1, V16SFmode, HImode); /* [-1, 0] */

    case V8SFmode:
      if (pattern371 (x1, V8SFmode, QImode) != 0)
        return -1;
      return 1;

    case V4SFmode:
      if (pattern371 (x1, V4SFmode, QImode) != 0)
        return -1;
      return 2;

    case V8DFmode:
      if (pattern371 (x1, V8DFmode, QImode) != 0)
        return -1;
      return 3;

    case V4DFmode:
      if (pattern371 (x1, V4DFmode, QImode) != 0)
        return -1;
      return 4;

    case V2DFmode:
      if (pattern371 (x1, V2DFmode, QImode) != 0)
        return -1;
      return 5;

    default:
      return -1;
    }
}

static int
pattern373 (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)
      || !vector_operand (operands[2], i1))
    return -1;
  return 0;
}

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

    case V2DFmode:
      if (pattern373 (x1, V2DFmode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

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

static int
pattern376 (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
      || !vector_operand (operands[1], i1)
      || !register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern377 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (GET_CODE (x1))
    {
    case REG:
    case SUBREG:
      operands[5] = x1;
      switch (GET_MODE (operands[0]))
        {
        case V16SFmode:
          return 0;

        case V8SFmode:
          return 1;

        case V4SFmode:
          return 2;

        case V8DFmode:
          return 3;

        case V4DFmode:
          return 4;

        case V2DFmode:
          return 5;

        default:
          return -1;
        }

    case CONST_INT:
      if (XWINT (x1, 0) != 1LL)
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V4SFmode:
          return 6;

        case V2DFmode:
          return 7;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern378 (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 CONST_INT:
    case CONST_WIDE_INT:
    case CONST_DOUBLE:
    case CONST_VECTOR:
      operands[4] = x2;
      x3 = XEXP (x1, 2);
      return pattern377 (x3); /* [-1, 7] */

    case REG:
    case SUBREG:
    case MEM:
      x3 = XEXP (x1, 2);
      switch (GET_CODE (x3))
        {
        case REG:
        case SUBREG:
          operands[4] = x3;
          switch (GET_MODE (operands[0]))
            {
            case V16SFmode:
              return 8;

            case V8SFmode:
              return 9;

            case V4SFmode:
              return 10;

            case V8DFmode:
              return 11;

            case V4DFmode:
              return 12;

            case V2DFmode:
              return 13;

            default:
              return -1;
            }

        case CONST_INT:
          if (XWINT (x3, 0) != 1LL
              || !rtx_equal_p (x2, operands[1]))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case V4SFmode:
              return 14;

            case V2DFmode:
              return 15;

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

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)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !vector_move_operand (operands[2], i1)
      || !register_operand (operands[3], QImode))
    return -1;
  switch (GET_MODE (operands[1]))
    {
    case V8SImode:
      if (!nonimmediate_operand (operands[1], V8SImode))
        return -1;
      return 0;

    case V8DImode:
      if (!nonimmediate_operand (operands[1], V8DImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

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
      || !vector_move_operand (operands[2], i1)
      || !register_operand (operands[3], QImode))
    return -1;
  switch (GET_MODE (operands[1]))
    {
    case V4SImode:
      if (!nonimmediate_operand (operands[1], V4SImode))
        return -1;
      return 0;

    case V4DImode:
      if (!nonimmediate_operand (operands[1], V4DImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern381 (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 (!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);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  if (!register_operand (operands[1], i1))
    return -1;
  return 0;
}

static int
pattern382 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !vector_operand (operands[1], i2)
      || !vector_move_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, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x2) != CONST_INT)
    return -1;
  x3 = XVECEXP (x1, 0, 3);
  if (GET_CODE (x3) != CONST_INT)
    return -1;
  x4 = XVECEXP (x1, 0, 4);
  if (GET_CODE (x4) != CONST_INT)
    return -1;
  x5 = XVECEXP (x1, 0, 5);
  if (GET_CODE (x5) != CONST_INT)
    return -1;
  x6 = XVECEXP (x1, 0, 6);
  if (GET_CODE (x6) != CONST_INT)
    return -1;
  x7 = XVECEXP (x1, 0, 7);
  if (GET_CODE (x7) != CONST_INT)
    return -1;
  return 0;
}

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, x11, x12, x13, x14, x15;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x2) != CONST_INT)
    return -1;
  x3 = XVECEXP (x1, 0, 3);
  if (GET_CODE (x3) != CONST_INT)
    return -1;
  x4 = XVECEXP (x1, 0, 4);
  if (GET_CODE (x4) != CONST_INT)
    return -1;
  x5 = XVECEXP (x1, 0, 5);
  if (GET_CODE (x5) != CONST_INT)
    return -1;
  x6 = XVECEXP (x1, 0, 6);
  if (GET_CODE (x6) != CONST_INT)
    return -1;
  x7 = XVECEXP (x1, 0, 7);
  if (GET_CODE (x7) != CONST_INT)
    return -1;
  x8 = XVECEXP (x1, 0, 8);
  if (GET_CODE (x8) != CONST_INT)
    return -1;
  x9 = XVECEXP (x1, 0, 9);
  if (GET_CODE (x9) != CONST_INT)
    return -1;
  x10 = XVECEXP (x1, 0, 10);
  if (GET_CODE (x10) != CONST_INT)
    return -1;
  x11 = XVECEXP (x1, 0, 11);
  if (GET_CODE (x11) != CONST_INT)
    return -1;
  x12 = XVECEXP (x1, 0, 12);
  if (GET_CODE (x12) != CONST_INT)
    return -1;
  x13 = XVECEXP (x1, 0, 13);
  if (GET_CODE (x13) != CONST_INT)
    return -1;
  x14 = XVECEXP (x1, 0, 14);
  if (GET_CODE (x14) != CONST_INT)
    return -1;
  x15 = XVECEXP (x1, 0, 15);
  if (GET_CODE (x15) != CONST_INT)
    return -1;
  return 0;
}

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

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

static int
pattern388 (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
      || !vector_operand (operands[1], i1)
      || !vector_operand (operands[2], i1)
      || !vector_operand (operands[3], i1))
    return -1;
  return 0;
}

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

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

static int
pattern391 ()
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (GET_MODE (operands[1]))
    {
    case V32QImode:
      if (!register_operand (operands[1], V32QImode)
          || !nonimmediate_operand (operands[2], V32QImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern392 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  switch (GET_MODE (operands[0]))
    {
    case DImode:
      if (!register_operand (operands[0], DImode)
          || GET_MODE (x1) != DImode)
        return -1;
      x2 = XEXP (x1, 0);
      if (GET_MODE (x2) != DImode
          || !register_operand (operands[1], V64QImode)
          || !nonimmediate_operand (operands[2], V64QImode)
          || !register_operand (operands[3], DImode))
        return -1;
      return 0;

    case SImode:
      if (!register_operand (operands[0], SImode)
          || GET_MODE (x1) != SImode)
        return -1;
      x2 = XEXP (x1, 0);
      if (GET_MODE (x2) != SImode
          || !register_operand (operands[3], SImode))
        return -1;
      res = pattern391 ();
      if (res >= 0)
        return res + 1; /* [1, 2] */
      return -1;

    default:
      return -1;
    }
}

static int
pattern393 (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)
      || !const_int_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern394 (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 SImode:
      return pattern367 (x1, SImode); /* [-1, 0] */

    case DImode:
      if (pattern367 (x1, DImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern395 (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;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  if (GET_MODE (x5) != SImode)
    return -1;
  x6 = XEXP (x5, 1);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x7 = XEXP (x5, 2);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x8 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x8) != SET)
    return -1;
  x9 = XEXP (x8, 1);
  if (GET_CODE (x9) != i1
      || GET_MODE (x9) != SImode)
    return -1;
  x10 = XEXP (x9, 0);
  if (GET_CODE (x10) != ZERO_EXTRACT
      || GET_MODE (x10) != SImode)
    return -1;
  x11 = XEXP (x10, 1);
  if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x12 = XEXP (x10, 2);
  if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x13 = XEXP (x8, 0);
  if (GET_CODE (x13) != ZERO_EXTRACT
      || GET_MODE (x13) != SImode)
    return -1;
  x14 = XEXP (x13, 1);
  if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x15 = XEXP (x13, 2);
  if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 8]
      || GET_MODE (x4) != SImode)
    return -1;
  x16 = XEXP (x5, 0);
  operands[1] = x16;
  if (!ext_register_operand (operands[1], VOIDmode))
    return -1;
  x17 = XEXP (x4, 1);
  operands[2] = x17;
  return 0;
}

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

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

static int
pattern398 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  switch (GET_CODE (x2))
    {
    case REG:
    case SUBREG:
    case MEM:
      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 SImode:
          return pattern396 (x3, SImode); /* [-1, 0] */

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

        case HImode:
          if (pattern397 (x3, HImode) != 0)
            return -1;
          return 2;

        case QImode:
          if (pattern397 (x3, QImode) != 0)
            return -1;
          return 3;

        default:
          return -1;
        }

    case STRICT_LOW_PART:
      if (pattern147 (x1) != 0)
        return -1;
      return 4;

    default:
      return -1;
    }
}

static int
pattern399 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], DImode)
      || GET_MODE (x1) != DImode)
    return -1;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  operands[1] = x3;
  if (!register_operand (operands[1], SImode))
    return -1;
  x4 = XEXP (x1, 1);
  operands[2] = x4;
  if (!x86_64_zext_immediate_operand (operands[2], DImode))
    return -1;
  return 0;
}

static int
pattern400 (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, 0);
  if (GET_MODE (x3) != DImode)
    return -1;
  x4 = XEXP (x1, 0);
  operands[0] = x4;
  return pattern399 (x2); /* [-1, 0] */
}

static int
pattern401 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  if (GET_MODE (x1) != SImode)
    return -1;
  x2 = XEXP (x1, 1);
  if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x3 = XEXP (x1, 2);
  if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x4 = XEXP (x1, 0);
  operands[2] = x4;
  if (!ext_register_operand (operands[2], VOIDmode))
    return -1;
  return 0;
}

static int
pattern402 (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[0] = x3;
  if (!ext_register_operand (operands[0], VOIDmode))
    return -1;
  x4 = XEXP (x1, 1);
  if (GET_MODE (x4) != SImode)
    return -1;
  x5 = XEXP (x4, 0);
  x6 = XEXP (x5, 0);
  operands[1] = x6;
  if (!ext_register_operand (operands[1], VOIDmode))
    return -1;
  x7 = XEXP (x4, 1);
  switch (GET_CODE (x7))
    {
    case CONST_INT:
      operands[2] = x7;
      if (!const_int_operand (operands[2], VOIDmode))
        return -1;
      return 0;

    case ZERO_EXTEND:
      if (GET_MODE (x7) != SImode)
        return -1;
      x8 = XEXP (x7, 0);
      operands[2] = x8;
      if (!nonimmediate_x64nomem_operand (operands[2], QImode))
        return -1;
      return 1;

    case ZERO_EXTRACT:
      if (pattern401 (x7) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern403 (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);
  if (GET_MODE (x3) != SImode)
    return -1;
  x4 = XEXP (x3, 1);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x5 = XEXP (x3, 2);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x6 = XEXP (x1, 0);
  if (GET_CODE (x6) != ZERO_EXTRACT
      || GET_MODE (x6) != SImode)
    return -1;
  x7 = XEXP (x6, 1);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x8 = XEXP (x6, 2);
  if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  return pattern402 (x1); /* [-1, 2] */
}

static int
pattern404 (rtx x1, rtx_code i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) != MINUS
      || GET_MODE (x2) != QImode)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != CONST_INT)
    return -1;
  return 0;
}

static int
pattern405 (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);
  if (GET_MODE (x3) != DImode)
    return -1;
  x4 = XEXP (x3, 1);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x5 = XEXP (x1, 0);
  if (GET_CODE (x5) != ZERO_EXTRACT
      || GET_MODE (x5) != DImode)
    return -1;
  x6 = XEXP (x5, 1);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x7 = XEXP (x5, 0);
  operands[0] = x7;
  if (!register_operand (operands[0], DImode))
    return -1;
  x8 = XEXP (x5, 2);
  operands[1] = x8;
  if (!const_0_to_63_operand (operands[1], VOIDmode))
    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 (!memory_operand (operands[0], i1)
      || GET_MODE (x1) != i1
      || !memory_operand (operands[1], i1)
      || !scratch_operand (operands[2], i1))
    return -1;
  return 0;
}

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

    case DImode:
      if (pattern406 (x4, DImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

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

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

    case DImode:
      if (pattern408 (x4, DImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

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

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

    default:
      return -1;
    }
}

static int
pattern411 (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[2] = x4;
  if (!register_operand (operands[2], SImode))
    return -1;
  x5 = XEXP (x3, 1);
  operands[3] = x5;
  if (!const_int_operand (operands[3], SImode))
    return -1;
  return pattern410 (x1); /* [-1, 1] */
}

static int
pattern412 (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);
  if (XINT (x3, 1) != 0
      || GET_MODE (x3) != QImode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != AND
      || GET_MODE (x4) != SImode)
    return -1;
  x5 = XEXP (x1, 0);
  operands[0] = x5;
  x6 = XEXP (x2, 0);
  operands[1] = x6;
  return pattern411 (x2); /* [-1, 1] */
}

static int
pattern413 (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);
  switch (GET_CODE (x2))
    {
    case REG:
    case SUBREG:
    case MEM:
      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 SImode:
          if (!nonimmediate_operand (operands[0], SImode)
              || GET_MODE (x3) != SImode
              || !nonimmediate_operand (operands[1], SImode))
            return -1;
          return 0;

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

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

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

        default:
          return -1;
        }

    case STRICT_LOW_PART:
      x6 = XEXP (x2, 0);
      operands[0] = x6;
      if (!nonimmediate_operand (operands[0], QImode))
        return -1;
      x3 = XEXP (x1, 1);
      if (GET_MODE (x3) != QImode)
        return -1;
      x5 = XEXP (x3, 1);
      operands[1] = x5;
      x4 = XEXP (x3, 0);
      if (!rtx_equal_p (x4, operands[0]))
        return -1;
      return 4;

    default:
      return -1;
    }
}

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

static int
pattern415 (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)
      || !vector_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern416 (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, 2);
  if (XWINT (x4, 0) != 1LL)
    return -1;
  x5 = XVECEXP (x1, 0, 1);
  x6 = XVECEXP (x5, 0, 0);
  operands[3] = x6;
  x7 = XEXP (x3, 1);
  if (!rtx_equal_p (x7, operands[1]))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case V4SFmode:
      return pattern415 (x3, V4SFmode); /* [-1, 0] */

    case V2DFmode:
      if (pattern415 (x3, V2DFmode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern417 (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, 2);
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
      operands[4] = x4;
      x5 = XEXP (x3, 1);
      operands[3] = x5;
      x6 = XVECEXP (x1, 0, 1);
      x7 = XVECEXP (x6, 0, 0);
      operands[5] = x7;
      switch (GET_MODE (operands[0]))
        {
        case V16SFmode:
          return pattern414 (x3, V16SFmode, HImode); /* [-1, 0] */

        case V8SFmode:
          if (pattern414 (x3, V8SFmode, QImode) != 0)
            return -1;
          return 1;

        case V4SFmode:
          if (pattern414 (x3, V4SFmode, QImode) != 0)
            return -1;
          return 2;

        case V8DFmode:
          if (pattern414 (x3, V8DFmode, QImode) != 0)
            return -1;
          return 3;

        case V4DFmode:
          if (pattern414 (x3, V4DFmode, QImode) != 0)
            return -1;
          return 4;

        case V2DFmode:
          if (pattern414 (x3, V2DFmode, QImode) != 0)
            return -1;
          return 5;

        default:
          return -1;
        }

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

    default:
      return -1;
    }
}

static int
pattern418 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  operands[1] = x5;
  x6 = XEXP (x4, 1);
  operands[2] = x6;
  x7 = XVECEXP (x1, 0, 1);
  x8 = XVECEXP (x7, 0, 0);
  if (!const_4_or_8_to_11_operand (x8, SImode))
    return -1;
  return pattern417 (x1); /* [-1, 7] */
}

static int
pattern419 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  operands[1] = x5;
  x6 = XEXP (x4, 1);
  operands[2] = x6;
  x7 = XVECEXP (x1, 0, 1);
  x8 = XVECEXP (x7, 0, 0);
  if (!const48_operand (x8, SImode))
    return -1;
  return pattern417 (x1); /* [-1, 7] */
}

static int
pattern420 (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], i2)
      || GET_MODE (x1) != i2)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i2
      || !register_operand (operands[1], i3)
      || !vector_move_operand (operands[2], i2)
      || !register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern421 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  operands[1] = x5;
  x6 = XEXP (x3, 1);
  operands[2] = x6;
  x7 = XEXP (x3, 2);
  operands[3] = x7;
  x8 = XVECEXP (x1, 0, 1);
  x9 = XVECEXP (x8, 0, 0);
  operands[4] = x9;
  if (!const48_operand (operands[4], SImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case V16SImode:
      return pattern420 (x3, HImode, V16SImode, V16SFmode); /* [-1, 0] */

    case V8SImode:
      if (pattern420 (x3, QImode, V8SImode, V8DFmode) != 0)
        return -1;
      return 1;

    case V8DImode:
      if (!register_operand (operands[0], V8DImode)
          || GET_MODE (x3) != V8DImode
          || GET_MODE (x4) != V8DImode
          || !vector_move_operand (operands[2], V8DImode)
          || !register_operand (operands[3], QImode))
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case V8DFmode:
          if (!register_operand (operands[1], V8DFmode))
            return -1;
          return 2;

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

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern422 (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, 0);
  operands[0] = x3;
  if (!nonimmediate_operand (operands[0], DImode))
    return -1;
  x4 = XEXP (x2, 1);
  x5 = XVECEXP (x4, 0, 0);
  operands[1] = x5;
  if (!memory_operand (operands[1], DImode))
    return -1;
  x6 = XVECEXP (x1, 0, 1);
  x7 = XEXP (x6, 0);
  operands[2] = x7;
  if (!memory_operand (operands[2], DImode))
    return -1;
  x8 = XVECEXP (x1, 0, 2);
  x9 = XEXP (x8, 0);
  operands[3] = x9;
  if (!scratch_operand (operands[3], DFmode))
    return -1;
  return 0;
}

static int
pattern423 (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, 0);
  operands[0] = x3;
  if (!memory_operand (operands[0], DImode))
    return -1;
  x4 = XEXP (x2, 1);
  x5 = XVECEXP (x4, 0, 0);
  operands[1] = x5;
  if (!nonimmediate_operand (operands[1], DImode))
    return -1;
  x6 = XVECEXP (x1, 0, 1);
  x7 = XEXP (x6, 0);
  operands[2] = x7;
  if (!memory_operand (operands[2], DImode))
    return -1;
  x8 = XVECEXP (x1, 0, 2);
  x9 = XEXP (x8, 0);
  operands[3] = x9;
  if (!scratch_operand (operands[3], DFmode))
    return -1;
  return 0;
}

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

static int
pattern425 (rtx x1, machine_mode 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);
  x3 = XEXP (x2, 0);
  operands[2] = x3;
  if (!memory_operand (operands[2], HImode))
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  x5 = XEXP (x4, 0);
  operands[3] = x5;
  if (!memory_operand (operands[3], HImode))
    return -1;
  x6 = XVECEXP (x1, 0, 3);
  x7 = XEXP (x6, 0);
  operands[4] = x7;
  if (!memory_operand (operands[4], DImode))
    return -1;
  x8 = XVECEXP (x1, 0, 4);
  x9 = XEXP (x8, 0);
  operands[5] = x9;
  if (!scratch_operand (operands[5], 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 (peep2_current_count < 3
      || XVECLEN (x1, 0) != 1
      || XINT (x1, 1) != 0)
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  return 0;
}

static int
pattern427 (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);
  switch (GET_CODE (x2))
    {
    case REG:
    case SUBREG:
      if (!rtx_equal_p (x2, operands[0]))
        return -1;
      x3 = XEXP (x1, 0);
      if (GET_CODE (x3) != PC)
        return -1;
      return 0;

    case CALL:
      x4 = XEXP (x2, 0);
      if (GET_CODE (x4) != MEM
          || GET_MODE (x4) != QImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[2] = x3;
      x5 = XEXP (x2, 1);
      operands[3] = x5;
      x6 = XEXP (x4, 0);
      if (!rtx_equal_p (x6, operands[0]))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern428 (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 (x2, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != 7
      || GET_MODE (x3) != i1)
    return -1;
  x4 = XEXP (x1, 0);
  if (GET_CODE (x4) != REG
      || REGNO (x4) != 7
      || GET_MODE (x4) != i1)
    return -1;
  x5 = XEXP (x2, 1);
  operands[0] = x5;
  if (!const_int_operand (operands[0], i1))
    return -1;
  return 0;
}

static int
pattern429 (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
      || !ix86_comparison_uns_operator (operands[1], i1)
      || !register_operand (operands[2], i1)
      || !nonimmediate_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern430 (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
      || !vector_operand (operands[1], i1)
      || !vector_operand (operands[2], i1)
      || !vector_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern431 (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
      || !vector_operand (operands[1], i1)
      || !vector_operand (operands[2], i1))
    return -1;
  x2 = XVECEXP (x1, 0, 2);
  if (GET_MODE (x2) != i1
      || !vector_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern432 (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
      || !vector_operand (operands[1], i1)
      || !vector_operand (operands[2], i1))
    return -1;
  return 0;
}

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

static int
pattern434 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  operands[4] = x2;
  switch (GET_MODE (operands[0]))
    {
    case HImode:
      return pattern433 (x1, HImode); /* [-1, 0] */

    case QImode:
      if (pattern433 (x1, QImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

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

static int
pattern436 (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);
  if (!rtx_equal_p (x4, operands[2]))
    return -1;
  x5 = XEXP (x2, 1);
  x6 = XEXP (x5, 0);
  if (!rtx_equal_p (x6, operands[2]))
    return -1;
  x7 = XEXP (x1, 1);
  x8 = XEXP (x7, 0);
  x9 = XEXP (x8, 0);
  if (!rtx_equal_p (x9, operands[2]))
    return -1;
  x10 = XEXP (x7, 1);
  x11 = XEXP (x10, 0);
  if (!rtx_equal_p (x11, operands[2]))
    return -1;
  return 0;
}

static int
pattern437 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 1);
  if (GET_MODE (x4) != i1)
    return -1;
  x5 = XEXP (x2, 1);
  if (GET_MODE (x5) != i1)
    return -1;
  x6 = XEXP (x5, 0);
  if (GET_MODE (x6) != i1)
    return -1;
  x7 = XEXP (x5, 1);
  if (GET_MODE (x7) != i1)
    return -1;
  x8 = XEXP (x1, 1);
  if (GET_MODE (x8) != i2)
    return -1;
  x9 = XEXP (x8, 0);
  if (GET_MODE (x9) != i1)
    return -1;
  x10 = XEXP (x9, 0);
  if (GET_MODE (x10) != i1)
    return -1;
  x11 = XEXP (x9, 1);
  if (GET_MODE (x11) != i1)
    return -1;
  x12 = XEXP (x8, 1);
  if (GET_MODE (x12) != i1)
    return -1;
  x13 = XEXP (x12, 0);
  if (GET_MODE (x13) != i1)
    return -1;
  x14 = XEXP (x12, 1);
  if (GET_MODE (x14) != i1)
    return -1;
  return 0;
}

static int
pattern438 (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, 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, x67, x68, x69, x70, x71, x72, x73;
  rtx x74, x75, x76, x77, x78, x79;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  if (GET_CODE (x5) != VEC_SELECT)
    return -1;
  x6 = XEXP (x5, 1);
  if (GET_CODE (x6) != PARALLEL
      || XVECLEN (x6, 0) != 1)
    return -1;
  x7 = XVECEXP (x6, 0, 0);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x8 = XEXP (x4, 1);
  if (GET_CODE (x8) != VEC_SELECT)
    return -1;
  x9 = XEXP (x8, 1);
  if (GET_CODE (x9) != PARALLEL
      || XVECLEN (x9, 0) != 1)
    return -1;
  x10 = XVECEXP (x9, 0, 0);
  if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x11 = XEXP (x3, 1);
  if (GET_CODE (x11) != i1)
    return -1;
  x12 = XEXP (x11, 0);
  if (GET_CODE (x12) != VEC_SELECT)
    return -1;
  x13 = XEXP (x12, 1);
  if (GET_CODE (x13) != PARALLEL
      || XVECLEN (x13, 0) != 1)
    return -1;
  x14 = XVECEXP (x13, 0, 0);
  if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
    return -1;
  x15 = XEXP (x11, 1);
  if (GET_CODE (x15) != VEC_SELECT)
    return -1;
  x16 = XEXP (x15, 1);
  if (GET_CODE (x16) != PARALLEL
      || XVECLEN (x16, 0) != 1)
    return -1;
  x17 = XVECEXP (x16, 0, 0);
  if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
    return -1;
  x18 = XEXP (x2, 1);
  x19 = XEXP (x18, 0);
  if (GET_CODE (x19) != i1)
    return -1;
  x20 = XEXP (x19, 0);
  if (GET_CODE (x20) != VEC_SELECT)
    return -1;
  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;
  x23 = XEXP (x19, 1);
  if (GET_CODE (x23) != VEC_SELECT)
    return -1;
  x24 = XEXP (x23, 1);
  if (GET_CODE (x24) != PARALLEL
      || XVECLEN (x24, 0) != 1)
    return -1;
  x25 = XVECEXP (x24, 0, 0);
  if (GET_CODE (x25) != CONST_INT)
    return -1;
  x26 = XEXP (x18, 1);
  if (GET_CODE (x26) != i1)
    return -1;
  x27 = XEXP (x26, 0);
  if (GET_CODE (x27) != VEC_SELECT)
    return -1;
  x28 = XEXP (x27, 1);
  if (GET_CODE (x28) != PARALLEL
      || XVECLEN (x28, 0) != 1)
    return -1;
  x29 = XVECEXP (x28, 0, 0);
  if (GET_CODE (x29) != CONST_INT)
    return -1;
  x30 = XEXP (x26, 1);
  if (GET_CODE (x30) != VEC_SELECT)
    return -1;
  x31 = XEXP (x30, 1);
  if (GET_CODE (x31) != PARALLEL
      || XVECLEN (x31, 0) != 1)
    return -1;
  x32 = XVECEXP (x31, 0, 0);
  if (GET_CODE (x32) != CONST_INT)
    return -1;
  x33 = XEXP (x1, 1);
  x34 = XEXP (x33, 0);
  x35 = XEXP (x34, 0);
  if (GET_CODE (x35) != i1)
    return -1;
  x36 = XEXP (x35, 0);
  if (GET_CODE (x36) != VEC_SELECT)
    return -1;
  x37 = XEXP (x36, 1);
  if (GET_CODE (x37) != PARALLEL
      || XVECLEN (x37, 0) != 1)
    return -1;
  x38 = XVECEXP (x37, 0, 0);
  if (GET_CODE (x38) != CONST_INT)
    return -1;
  x39 = XEXP (x35, 1);
  if (GET_CODE (x39) != VEC_SELECT)
    return -1;
  x40 = XEXP (x39, 1);
  if (GET_CODE (x40) != PARALLEL
      || XVECLEN (x40, 0) != 1)
    return -1;
  x41 = XVECEXP (x40, 0, 0);
  if (GET_CODE (x41) != CONST_INT)
    return -1;
  x42 = XEXP (x34, 1);
  if (GET_CODE (x42) != i1)
    return -1;
  x43 = XEXP (x42, 0);
  if (GET_CODE (x43) != VEC_SELECT)
    return -1;
  x44 = XEXP (x43, 1);
  if (GET_CODE (x44) != PARALLEL
      || XVECLEN (x44, 0) != 1)
    return -1;
  x45 = XVECEXP (x44, 0, 0);
  if (GET_CODE (x45) != CONST_INT)
    return -1;
  x46 = XEXP (x42, 1);
  if (GET_CODE (x46) != VEC_SELECT)
    return -1;
  x47 = XEXP (x46, 1);
  if (GET_CODE (x47) != PARALLEL
      || XVECLEN (x47, 0) != 1)
    return -1;
  x48 = XVECEXP (x47, 0, 0);
  if (GET_CODE (x48) != CONST_INT)
    return -1;
  x49 = XEXP (x33, 1);
  x50 = XEXP (x49, 0);
  if (GET_CODE (x50) != i1)
    return -1;
  x51 = XEXP (x50, 0);
  if (GET_CODE (x51) != VEC_SELECT)
    return -1;
  x52 = XEXP (x51, 1);
  if (GET_CODE (x52) != PARALLEL
      || XVECLEN (x52, 0) != 1)
    return -1;
  x53 = XVECEXP (x52, 0, 0);
  if (x53 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
    return -1;
  x54 = XEXP (x50, 1);
  if (GET_CODE (x54) != VEC_SELECT)
    return -1;
  x55 = XEXP (x54, 1);
  if (GET_CODE (x55) != PARALLEL
      || XVECLEN (x55, 0) != 1)
    return -1;
  x56 = XVECEXP (x55, 0, 0);
  if (x56 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
    return -1;
  x57 = XEXP (x49, 1);
  if (GET_CODE (x57) != i1)
    return -1;
  x58 = XEXP (x57, 0);
  if (GET_CODE (x58) != VEC_SELECT)
    return -1;
  x59 = XEXP (x58, 1);
  if (GET_CODE (x59) != PARALLEL
      || XVECLEN (x59, 0) != 1)
    return -1;
  x60 = XVECEXP (x59, 0, 0);
  if (x60 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
    return -1;
  x61 = XEXP (x57, 1);
  if (GET_CODE (x61) != VEC_SELECT)
    return -1;
  x62 = XEXP (x61, 1);
  if (GET_CODE (x62) != PARALLEL
      || XVECLEN (x62, 0) != 1)
    return -1;
  x63 = XVECEXP (x62, 0, 0);
  if (x63 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
    return -1;
  x64 = XEXP (x5, 0);
  operands[1] = x64;
  x65 = XEXP (x8, 0);
  if (!rtx_equal_p (x65, operands[1]))
    return -1;
  x66 = XEXP (x12, 0);
  if (!rtx_equal_p (x66, operands[1]))
    return -1;
  x67 = XEXP (x15, 0);
  if (!rtx_equal_p (x67, operands[1]))
    return -1;
  switch (XWINT (x22, 0))
    {
    case 0LL:
      if (XWINT (x25, 0) != 1LL
          || XWINT (x29, 0) != 2LL
          || XWINT (x32, 0) != 3LL
          || XWINT (x38, 0) != 4LL
          || XWINT (x41, 0) != 5LL
          || XWINT (x45, 0) != 6LL
          || XWINT (x48, 0) != 7LL
          || !register_operand (operands[0], V8SFmode)
          || GET_MODE (x1) != V8SFmode
          || GET_MODE (x2) != V4SFmode
          || GET_MODE (x3) != V2SFmode
          || GET_MODE (x4) != SFmode
          || GET_MODE (x5) != SFmode
          || !register_operand (operands[1], V8SFmode)
          || GET_MODE (x8) != SFmode
          || GET_MODE (x11) != SFmode
          || GET_MODE (x12) != SFmode
          || GET_MODE (x15) != SFmode
          || GET_MODE (x18) != V2SFmode
          || GET_MODE (x19) != SFmode
          || GET_MODE (x20) != SFmode)
        return -1;
      x68 = XEXP (x20, 0);
      operands[2] = x68;
      if (!nonimmediate_operand (operands[2], V8SFmode)
          || GET_MODE (x23) != SFmode
          || GET_MODE (x26) != SFmode
          || GET_MODE (x27) != SFmode
          || GET_MODE (x30) != SFmode
          || GET_MODE (x33) != V4SFmode
          || GET_MODE (x34) != V2SFmode
          || GET_MODE (x35) != SFmode
          || GET_MODE (x36) != SFmode
          || GET_MODE (x39) != SFmode
          || GET_MODE (x42) != SFmode
          || GET_MODE (x43) != SFmode
          || GET_MODE (x46) != SFmode
          || GET_MODE (x49) != V2SFmode
          || GET_MODE (x50) != SFmode
          || GET_MODE (x51) != SFmode
          || GET_MODE (x54) != SFmode
          || GET_MODE (x57) != SFmode
          || GET_MODE (x58) != SFmode
          || GET_MODE (x61) != SFmode)
        return -1;
      x69 = XEXP (x23, 0);
      if (!rtx_equal_p (x69, operands[2]))
        return -1;
      x70 = XEXP (x27, 0);
      if (!rtx_equal_p (x70, operands[2]))
        return -1;
      x71 = XEXP (x30, 0);
      if (!rtx_equal_p (x71, operands[2]))
        return -1;
      x72 = XEXP (x36, 0);
      if (!rtx_equal_p (x72, operands[1]))
        return -1;
      x73 = XEXP (x39, 0);
      if (!rtx_equal_p (x73, operands[1]))
        return -1;
      x74 = XEXP (x43, 0);
      if (!rtx_equal_p (x74, operands[1]))
        return -1;
      x75 = XEXP (x46, 0);
      if (!rtx_equal_p (x75, operands[1])
          || pattern436 (x49) != 0)
        return -1;
      return 0;

    case 4LL:
      if (XWINT (x25, 0) != 5LL
          || XWINT (x29, 0) != 6LL
          || XWINT (x32, 0) != 7LL
          || XWINT (x38, 0) != 0LL
          || XWINT (x41, 0) != 1LL
          || XWINT (x45, 0) != 2LL
          || XWINT (x48, 0) != 3LL)
        return -1;
      x72 = XEXP (x36, 0);
      operands[2] = x72;
      x68 = XEXP (x20, 0);
      if (!rtx_equal_p (x68, operands[1]))
        return -1;
      x69 = XEXP (x23, 0);
      if (!rtx_equal_p (x69, operands[1]))
        return -1;
      x70 = XEXP (x27, 0);
      if (!rtx_equal_p (x70, operands[1]))
        return -1;
      x71 = XEXP (x30, 0);
      if (!rtx_equal_p (x71, operands[1]))
        return -1;
      x73 = XEXP (x39, 0);
      if (!rtx_equal_p (x73, operands[2]))
        return -1;
      x74 = XEXP (x43, 0);
      if (!rtx_equal_p (x74, operands[2]))
        return -1;
      x75 = XEXP (x46, 0);
      if (!rtx_equal_p (x75, operands[2]))
        return -1;
      x76 = XEXP (x51, 0);
      if (!rtx_equal_p (x76, operands[2]))
        return -1;
      x77 = XEXP (x54, 0);
      if (!rtx_equal_p (x77, operands[2]))
        return -1;
      x78 = XEXP (x58, 0);
      if (!rtx_equal_p (x78, operands[2]))
        return -1;
      x79 = XEXP (x61, 0);
      if (!rtx_equal_p (x79, operands[2]))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V8HImode:
          if (!register_operand (operands[0], V8HImode)
              || GET_MODE (x1) != V8HImode
              || GET_MODE (x2) != V4HImode
              || GET_MODE (x3) != V2HImode
              || GET_MODE (x4) != HImode
              || GET_MODE (x5) != HImode
              || !register_operand (operands[1], V8HImode)
              || GET_MODE (x8) != HImode
              || GET_MODE (x11) != HImode
              || GET_MODE (x12) != HImode
              || GET_MODE (x15) != HImode
              || GET_MODE (x18) != V2HImode
              || GET_MODE (x19) != HImode
              || GET_MODE (x20) != HImode
              || GET_MODE (x23) != HImode
              || GET_MODE (x26) != HImode
              || GET_MODE (x27) != HImode
              || GET_MODE (x30) != HImode
              || GET_MODE (x33) != V4HImode
              || GET_MODE (x34) != V2HImode
              || GET_MODE (x35) != HImode
              || GET_MODE (x36) != HImode
              || !vector_operand (operands[2], V8HImode)
              || pattern437 (x33, HImode, V2HImode) != 0)
            return -1;
          return 1;

        case V8SImode:
          if (!register_operand (operands[0], V8SImode)
              || GET_MODE (x1) != V8SImode
              || GET_MODE (x2) != V4SImode
              || GET_MODE (x3) != V2SImode
              || GET_MODE (x4) != SImode
              || GET_MODE (x5) != SImode
              || !register_operand (operands[1], V8SImode)
              || GET_MODE (x8) != SImode
              || GET_MODE (x11) != SImode
              || GET_MODE (x12) != SImode
              || GET_MODE (x15) != SImode
              || GET_MODE (x18) != V2SImode
              || GET_MODE (x19) != SImode
              || GET_MODE (x20) != SImode
              || GET_MODE (x23) != SImode
              || GET_MODE (x26) != SImode
              || GET_MODE (x27) != SImode
              || GET_MODE (x30) != SImode
              || GET_MODE (x33) != V4SImode
              || GET_MODE (x34) != V2SImode
              || GET_MODE (x35) != SImode
              || GET_MODE (x36) != SImode
              || !nonimmediate_operand (operands[2], V8SImode)
              || pattern437 (x33, SImode, V2SImode) != 0)
            return -1;
          return 2;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern439 (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, 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, x67, x68, x69, x70, x71, x72, x73;
  rtx x74, x75;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) != HImode)
    return -1;
  x5 = XEXP (x4, 0);
  if (GET_CODE (x5) != VEC_SELECT
      || GET_MODE (x5) != HImode)
    return -1;
  x6 = XEXP (x5, 1);
  if (GET_CODE (x6) != PARALLEL
      || XVECLEN (x6, 0) != 1)
    return -1;
  x7 = XVECEXP (x6, 0, 0);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x8 = XEXP (x4, 1);
  if (GET_CODE (x8) != VEC_SELECT
      || GET_MODE (x8) != HImode)
    return -1;
  x9 = XEXP (x8, 1);
  if (GET_CODE (x9) != PARALLEL
      || XVECLEN (x9, 0) != 1)
    return -1;
  x10 = XVECEXP (x9, 0, 0);
  if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x11 = XEXP (x3, 1);
  if (GET_CODE (x11) != i1
      || GET_MODE (x11) != HImode)
    return -1;
  x12 = XEXP (x11, 0);
  if (GET_CODE (x12) != VEC_SELECT
      || GET_MODE (x12) != HImode)
    return -1;
  x13 = XEXP (x12, 1);
  if (GET_CODE (x13) != PARALLEL
      || XVECLEN (x13, 0) != 1)
    return -1;
  x14 = XVECEXP (x13, 0, 0);
  if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
    return -1;
  x15 = XEXP (x11, 1);
  if (GET_CODE (x15) != VEC_SELECT
      || GET_MODE (x15) != HImode)
    return -1;
  x16 = XEXP (x15, 1);
  if (GET_CODE (x16) != PARALLEL
      || XVECLEN (x16, 0) != 1)
    return -1;
  x17 = XVECEXP (x16, 0, 0);
  if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
    return -1;
  x18 = XEXP (x2, 1);
  x19 = XEXP (x18, 0);
  if (GET_CODE (x19) != i1
      || GET_MODE (x19) != HImode)
    return -1;
  x20 = XEXP (x19, 0);
  if (GET_CODE (x20) != VEC_SELECT
      || GET_MODE (x20) != HImode)
    return -1;
  x21 = XEXP (x20, 1);
  if (GET_CODE (x21) != PARALLEL
      || XVECLEN (x21, 0) != 1)
    return -1;
  x22 = XVECEXP (x21, 0, 0);
  if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
    return -1;
  x23 = XEXP (x19, 1);
  if (GET_CODE (x23) != VEC_SELECT
      || GET_MODE (x23) != HImode)
    return -1;
  x24 = XEXP (x23, 1);
  if (GET_CODE (x24) != PARALLEL
      || XVECLEN (x24, 0) != 1)
    return -1;
  x25 = XVECEXP (x24, 0, 0);
  if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
    return -1;
  x26 = XEXP (x18, 1);
  if (GET_CODE (x26) != i1
      || GET_MODE (x26) != HImode)
    return -1;
  x27 = XEXP (x26, 0);
  if (GET_CODE (x27) != VEC_SELECT
      || GET_MODE (x27) != HImode)
    return -1;
  x28 = XEXP (x27, 1);
  if (GET_CODE (x28) != PARALLEL
      || XVECLEN (x28, 0) != 1)
    return -1;
  x29 = XVECEXP (x28, 0, 0);
  if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
    return -1;
  x30 = XEXP (x26, 1);
  if (GET_CODE (x30) != VEC_SELECT
      || GET_MODE (x30) != HImode)
    return -1;
  x31 = XEXP (x30, 1);
  if (GET_CODE (x31) != PARALLEL
      || XVECLEN (x31, 0) != 1)
    return -1;
  x32 = XVECEXP (x31, 0, 0);
  if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
    return -1;
  x33 = XEXP (x1, 1);
  x34 = XEXP (x33, 0);
  x35 = XEXP (x34, 0);
  if (GET_CODE (x35) != i1
      || GET_MODE (x35) != HImode)
    return -1;
  x36 = XEXP (x35, 0);
  if (GET_CODE (x36) != VEC_SELECT
      || GET_MODE (x36) != HImode)
    return -1;
  x37 = XEXP (x36, 1);
  if (GET_CODE (x37) != PARALLEL
      || XVECLEN (x37, 0) != 1)
    return -1;
  x38 = XVECEXP (x37, 0, 0);
  if (x38 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x39 = XEXP (x35, 1);
  if (GET_CODE (x39) != VEC_SELECT
      || GET_MODE (x39) != HImode)
    return -1;
  x40 = XEXP (x39, 1);
  if (GET_CODE (x40) != PARALLEL
      || XVECLEN (x40, 0) != 1)
    return -1;
  x41 = XVECEXP (x40, 0, 0);
  if (x41 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x42 = XEXP (x34, 1);
  if (GET_CODE (x42) != i1
      || GET_MODE (x42) != HImode)
    return -1;
  x43 = XEXP (x42, 0);
  if (GET_CODE (x43) != VEC_SELECT
      || GET_MODE (x43) != HImode)
    return -1;
  x44 = XEXP (x43, 1);
  if (GET_CODE (x44) != PARALLEL
      || XVECLEN (x44, 0) != 1)
    return -1;
  x45 = XVECEXP (x44, 0, 0);
  if (x45 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
    return -1;
  x46 = XEXP (x42, 1);
  if (GET_CODE (x46) != VEC_SELECT
      || GET_MODE (x46) != HImode)
    return -1;
  x47 = XEXP (x46, 1);
  if (GET_CODE (x47) != PARALLEL
      || XVECLEN (x47, 0) != 1)
    return -1;
  x48 = XVECEXP (x47, 0, 0);
  if (x48 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
    return -1;
  x49 = XEXP (x33, 1);
  x50 = XEXP (x49, 0);
  if (GET_CODE (x50) != i1
      || GET_MODE (x50) != HImode)
    return -1;
  x51 = XEXP (x50, 0);
  if (GET_CODE (x51) != VEC_SELECT
      || GET_MODE (x51) != HImode)
    return -1;
  x52 = XEXP (x51, 1);
  if (GET_CODE (x52) != PARALLEL
      || XVECLEN (x52, 0) != 1)
    return -1;
  x53 = XVECEXP (x52, 0, 0);
  if (x53 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
    return -1;
  x54 = XEXP (x50, 1);
  if (GET_CODE (x54) != VEC_SELECT
      || GET_MODE (x54) != HImode)
    return -1;
  x55 = XEXP (x54, 1);
  if (GET_CODE (x55) != PARALLEL
      || XVECLEN (x55, 0) != 1)
    return -1;
  x56 = XVECEXP (x55, 0, 0);
  if (x56 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
    return -1;
  x57 = XEXP (x49, 1);
  if (GET_CODE (x57) != i1
      || GET_MODE (x57) != HImode)
    return -1;
  x58 = XEXP (x57, 0);
  if (GET_CODE (x58) != VEC_SELECT
      || GET_MODE (x58) != HImode)
    return -1;
  x59 = XEXP (x58, 1);
  if (GET_CODE (x59) != PARALLEL
      || XVECLEN (x59, 0) != 1)
    return -1;
  x60 = XVECEXP (x59, 0, 0);
  if (x60 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
    return -1;
  x61 = XEXP (x57, 1);
  if (GET_CODE (x61) != VEC_SELECT
      || GET_MODE (x61) != HImode)
    return -1;
  x62 = XEXP (x61, 1);
  if (GET_CODE (x62) != PARALLEL
      || XVECLEN (x62, 0) != 1)
    return -1;
  x63 = XVECEXP (x62, 0, 0);
  if (x63 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
      || !register_operand (operands[0], V8HImode)
      || GET_MODE (x1) != V8HImode
      || GET_MODE (x2) != V4HImode
      || GET_MODE (x3) != V2HImode)
    return -1;
  x64 = XEXP (x5, 0);
  operands[1] = x64;
  if (!register_operand (operands[1], V8HImode)
      || GET_MODE (x18) != V2HImode
      || GET_MODE (x33) != V4HImode
      || GET_MODE (x34) != V2HImode)
    return -1;
  x65 = XEXP (x36, 0);
  operands[2] = x65;
  if (!vector_operand (operands[2], V8HImode)
      || GET_MODE (x49) != V2HImode)
    return -1;
  x66 = XEXP (x8, 0);
  if (!rtx_equal_p (x66, operands[1]))
    return -1;
  x67 = XEXP (x12, 0);
  if (!rtx_equal_p (x67, operands[1]))
    return -1;
  x68 = XEXP (x15, 0);
  if (!rtx_equal_p (x68, operands[1]))
    return -1;
  x69 = XEXP (x20, 0);
  if (!rtx_equal_p (x69, operands[1]))
    return -1;
  x70 = XEXP (x23, 0);
  if (!rtx_equal_p (x70, operands[1]))
    return -1;
  x71 = XEXP (x27, 0);
  if (!rtx_equal_p (x71, operands[1]))
    return -1;
  x72 = XEXP (x30, 0);
  if (!rtx_equal_p (x72, operands[1]))
    return -1;
  x73 = XEXP (x39, 0);
  if (!rtx_equal_p (x73, operands[2]))
    return -1;
  x74 = XEXP (x43, 0);
  if (!rtx_equal_p (x74, operands[2]))
    return -1;
  x75 = XEXP (x46, 0);
  if (!rtx_equal_p (x75, operands[2])
      || pattern436 (x49) != 0)
    return -1;
  return 0;
}

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

static int
pattern441 (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;
  switch (GET_MODE (operands[2]))
    {
    case SImode:
      if (!nonimmediate_operand (operands[2], SImode))
        return -1;
      return 0;

    case DImode:
      if (!nonimmediate_operand (operands[2], DImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern442 (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
      || !vector_operand (operands[2], i1)
      || !register_operand (operands[1], i1)
      || !const_0_to_255_operand (operands[3], SImode))
    return -1;
  return 0;
}

static int
pattern443 (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
      || !vector_operand (operands[2], i1)
      || !register_operand (operands[1], i1)
      || !const_0_to_15_operand (operands[3], SImode))
    return -1;
  return 0;
}

static int
pattern444 (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
      || !nonimmediate_operand (operands[2], i1)
      || !register_operand (operands[1], i1)
      || !const_0_to_255_operand (operands[3], SImode))
    return -1;
  return 0;
}

static int
pattern445 (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
      || !nonimmediate_operand (operands[2], i1))
    return -1;
  return 0;
}

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

static int
pattern447 (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
      || !nonimmediate_operand (operands[1], i1)
      || !const0_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern448 (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], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !nonimmediate_operand (operands[1], i3)
      || !vector_move_operand (operands[2], i1)
      || !register_operand (operands[3], i2))
    return -1;
  return 0;
}

static int
pattern449 (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], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !vector_operand (operands[1], i3)
      || !vector_move_operand (operands[2], i1)
      || !register_operand (operands[3], i2))
    return -1;
  return 0;
}

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

static int
pattern451 (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
      || !sse_comparison_operator (operands[3], i1)
      || !register_operand (operands[1], i1)
      || !vector_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern452 (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)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i1
      || !register_operand (operands[1], i1)
      || !vector_operand (operands[2], i1)
      || !vector_move_operand (operands[3], i1)
      || !register_operand (operands[4], QImode))
    return -1;
  return 0;
}

static int
pattern453 (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) != i1
      || !register_operand (operands[1], i1)
      || !nonimmediate_operand (operands[2], i1)
      || !vector_move_operand (operands[3], i1)
      || !register_operand (operands[4], i2))
    return -1;
  return 0;
}

static int
pattern454 (rtx x1, machine_mode i1, machine_mode i2)
{
  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) != i1
      || !nonimmediate_operand (operands[1], i2)
      || !vector_move_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern455 (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);
  if (GET_CODE (x2) != CONST_INT)
    return -1;
  x3 = XVECEXP (x1, 0, 3);
  if (GET_CODE (x3) != CONST_INT)
    return -1;
  x4 = XVECEXP (x1, 0, 4);
  if (GET_CODE (x4) != CONST_INT)
    return -1;
  x5 = XVECEXP (x1, 0, 5);
  if (GET_CODE (x5) != CONST_INT)
    return -1;
  x6 = XVECEXP (x1, 0, 6);
  if (GET_CODE (x6) != CONST_INT)
    return -1;
  x7 = XVECEXP (x1, 0, 7);
  if (GET_CODE (x7) != CONST_INT)
    return -1;
  return 0;
}

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

    case V4SFmode:
      if (!nonimmediate_operand (operands[1], V4SFmode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern457 (rtx x1, machine_mode i1, machine_mode i2, int i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XVECEXP (x2, 0, 0);
  if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x4 = XVECEXP (x2, 0, 1);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + i3]
      || !register_operand (operands[0], i2)
      || GET_MODE (x1) != i2
      || !nonimmediate_operand (operands[1], i1))
    return -1;
  return 0;
}

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

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

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

static int
pattern461 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  if (!nonmemory_operand (operands[2], QImode))
    return -1;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  operands[1] = x3;
  x4 = XEXP (x1, 0);
  x5 = XEXP (x4, 0);
  if (!rtx_equal_p (x5, operands[0]))
    return -1;
  x6 = XEXP (x2, 1);
  x7 = XEXP (x6, 1);
  if (!rtx_equal_p (x7, operands[2]))
    return -1;
  x8 = XEXP (x6, 0);
  switch (XWINT (x8, 0))
    {
    case 64LL:
      return pattern460 (x1, DImode); /* [-1, 0] */

    case 32LL:
      if (pattern460 (x1, SImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

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

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

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

static int
pattern465 (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 = XEXP (x3, 0);
  if (!rtx_equal_p (x4, operands[1]))
    return -1;
  x5 = XEXP (x3, 1);
  if (!rtx_equal_p (x5, operands[2]))
    return -1;
  x6 = XVECEXP (x1, 0, 0);
  x7 = XEXP (x6, 1);
  x8 = XEXP (x7, 0);
  switch (GET_MODE (x8))
    {
    case QImode:
      return pattern463 (x3, QImode); /* [-1, 0] */

    case HImode:
      if (pattern463 (x3, HImode) != 0)
        return -1;
      return 1;

    case SImode:
      if (pattern464 (x3, SImode) != 0)
        return -1;
      return 2;

    case DImode:
      if (pattern464 (x3, DImode) != 0)
        return -1;
      return 3;

    default:
      return -1;
    }
}

static int
pattern466 (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) != QImode)
    return -1;
  x3 = XEXP (x2, 0);
  if (!rtx_equal_p (x3, operands[0]))
    return -1;
  x4 = XEXP (x2, 1);
  if (!rtx_equal_p (x4, operands[1]))
    return -1;
  x5 = XEXP (x1, 0);
  x6 = XEXP (x5, 0);
  if (!rtx_equal_p (x6, operands[0]))
    return -1;
  return 0;
}

static int
pattern467 (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, 1);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
    case MEM:
      x5 = XEXP (x2, 0);
      switch (GET_CODE (x5))
        {
        case REG:
        case SUBREG:
        case MEM:
          operands[0] = x5;
          x6 = XVECEXP (x1, 0, 0);
          x7 = XEXP (x6, 1);
          x8 = XEXP (x7, 0);
          x9 = XEXP (x8, 0);
          operands[1] = x9;
          x10 = XEXP (x8, 1);
          operands[2] = x10;
          return pattern465 (x1); /* [-1, 3] */

        case STRICT_LOW_PART:
          x6 = XVECEXP (x1, 0, 0);
          x7 = XEXP (x6, 1);
          x8 = XEXP (x7, 0);
          if (GET_MODE (x8) != QImode)
            return -1;
          x9 = XEXP (x8, 0);
          operands[0] = x9;
          if (!nonimmediate_operand (operands[0], QImode))
            return -1;
          x10 = XEXP (x8, 1);
          operands[1] = x10;
          if (!general_operand (operands[1], QImode)
              || pattern466 (x2) != 0)
            return -1;
          return 4;

        default:
          return -1;
        }

    case ZERO_EXTEND:
      if (GET_MODE (x4) != DImode)
        return -1;
      x6 = XVECEXP (x1, 0, 0);
      x7 = XEXP (x6, 1);
      x8 = XEXP (x7, 0);
      if (GET_MODE (x8) != SImode)
        return -1;
      x9 = XEXP (x8, 0);
      operands[1] = x9;
      if (!nonimmediate_operand (operands[1], SImode))
        return -1;
      x10 = XEXP (x8, 1);
      operands[2] = x10;
      if (!x86_64_zext_immediate_operand (operands[2], SImode))
        return -1;
      x5 = XEXP (x2, 0);
      operands[0] = x5;
      if (!register_operand (operands[0], DImode)
          || GET_MODE (x3) != DImode)
        return -1;
      x11 = XEXP (x4, 0);
      if (!rtx_equal_p (x11, operands[1]))
        return -1;
      x12 = XEXP (x3, 1);
      if (!rtx_equal_p (x12, operands[2]))
        return -1;
      return 5;

    default:
      return -1;
    }
}

static int
pattern468 (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;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != DImode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != i1
      || GET_MODE (x4) != SImode)
    return -1;
  x5 = XVECEXP (x1, 0, 0);
  x6 = XEXP (x5, 1);
  x7 = XEXP (x6, 0);
  if (GET_MODE (x7) != SImode)
    return -1;
  x8 = XEXP (x7, 0);
  operands[1] = x8;
  if (!nonimmediate_operand (operands[1], SImode))
    return -1;
  x9 = XEXP (x7, 1);
  operands[2] = x9;
  if (!x86_64_general_operand (operands[2], SImode))
    return -1;
  x10 = XEXP (x2, 0);
  operands[0] = x10;
  if (!register_operand (operands[0], DImode))
    return -1;
  x11 = XEXP (x4, 0);
  if (!rtx_equal_p (x11, operands[1]))
    return -1;
  x12 = XEXP (x4, 1);
  if (!rtx_equal_p (x12, operands[2]))
    return -1;
  return 0;
}

static int
pattern469 (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 SImode:
      if (!register_operand (operands[0], SImode)
          || GET_MODE (x1) != SImode)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case QImode:
          if (!nonimmediate_operand (operands[1], QImode))
            return -1;
          return 0;

        case HImode:
          if (!nonimmediate_operand (operands[1], HImode))
            return -1;
          return 1;

        default:
          return -1;
        }

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

    default:
      return -1;
    }
}

static int
pattern470 (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) != SImode
      || !register_operand (operands[0], DImode)
      || GET_MODE (x1) != DImode)
    return -1;
  x3 = XEXP (x2, 0);
  operands[1] = x3;
  if (!nonimmediate_operand (operands[1], SImode))
    return -1;
  x4 = XEXP (x2, 1);
  operands[2] = x4;
  if (!x86_64_general_operand (operands[2], SImode))
    return -1;
  return 0;
}

static int
pattern471 (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) != SImode
      || !register_operand (operands[0], DImode)
      || GET_MODE (x1) != DImode)
    return -1;
  x3 = XEXP (x2, 0);
  operands[1] = x3;
  if (!nonimmediate_operand (operands[1], SImode))
    return -1;
  x4 = XEXP (x2, 1);
  operands[2] = x4;
  if (!nonmemory_operand (operands[2], QImode))
    return -1;
  return 0;
}

static int
pattern472 (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 = XVECEXP (x2, 0, 0);
  operands[2] = x3;
  if (!const48_operand (operands[2], SImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case V16SImode:
      if (!register_operand (operands[0], V16SImode))
        return -1;
      x4 = XVECEXP (x1, 0, 0);
      x5 = XEXP (x4, 1);
      if (GET_MODE (x5) != V16SImode
          || !register_operand (operands[1], V16SFmode))
        return -1;
      return 0;

    case V8SImode:
      if (!register_operand (operands[0], V8SImode))
        return -1;
      x4 = XVECEXP (x1, 0, 0);
      x5 = XEXP (x4, 1);
      if (GET_MODE (x5) != V8SImode
          || !register_operand (operands[1], V8DFmode))
        return -1;
      return 1;

    case V8DImode:
      if (!register_operand (operands[0], V8DImode))
        return -1;
      x4 = XVECEXP (x1, 0, 0);
      x5 = XEXP (x4, 1);
      if (GET_MODE (x5) != V8DImode)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case V8DFmode:
          if (!register_operand (operands[1], V8DFmode))
            return -1;
          return 2;

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

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern473 (int *pnum_clobbers, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (pnum_clobbers == NULL
      || !register_operand (operands[0], i1)
      || !absneg_operator (operands[3], i1)
      || !register_operand (operands[1], i1))
    return -1;
  return 0;
}

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

static int
pattern475 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (GET_CODE (x1))
    {
    case REG:
    case SUBREG:
    case MEM:
      operands[3] = x1;
      if (!nonimmediate_operand (operands[3], V16QImode))
        return -1;
      return 0;

    case UNSPEC:
      if (XVECLEN (x1, 0) != 1
          || XINT (x1, 1) != 105
          || GET_MODE (x1) != V16QImode)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern476 (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) != SImode
      || !register_operand (operands[0], DImode)
      || GET_MODE (x1) != DImode)
    return -1;
  x3 = XEXP (x2, 0);
  operands[1] = x3;
  if (!nonimmediate_operand (operands[1], SImode))
    return -1;
  x4 = XEXP (x2, 1);
  operands[2] = x4;
  if (!register_operand (operands[2], QImode))
    return -1;
  return 0;
}

static int
pattern477 (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) != SImode
      || !register_operand (operands[0], DImode)
      || GET_MODE (x1) != DImode)
    return -1;
  x3 = XEXP (x2, 0);
  operands[1] = x3;
  if (!nonimmediate_operand (operands[1], SImode))
    return -1;
  x4 = XEXP (x2, 1);
  operands[2] = x4;
  if (!immediate_operand (operands[2], QImode))
    return -1;
  return 0;
}

static int
pattern478 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  operands[2] = x2;
  if (!immediate_operand (operands[2], QImode))
    return -1;
  return pattern96 (x1); /* [-1, 1] */
}

static int
pattern479 (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) != 17
      || GET_MODE (x2) != CCmode)
    return -1;
  return 0;
}

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

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

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

    default:
      return -1;
    }
}

static int
pattern482 (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
      || !register_operand (operands[2], i2)
      || !register_operand (operands[3], i2)
      || !nonimmediate_operand (operands[4], i1)
      || !nonimmediate_operand (operands[5], i1))
    return -1;
  return 0;
}

static int
pattern483 (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
      || !register_operand (operands[1], i2)
      || !register_operand (operands[2], i2)
      || !nonimmediate_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern484 (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
      || !register_operand (operands[1], i2)
      || !nonimmediate_operand (operands[2], i2)
      || !nonimmediate_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern485 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], QImode)
      || GET_MODE (x1) != QImode)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != QImode
      || !const_0_to_31_operand (operands[3], SImode))
    return -1;
  return 0;
}

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

static int
pattern487 (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], i2)
      || !nonimmediate_operand (operands[2], i1))
    return -1;
  return 0;
}

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

static int
pattern489 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !vector_move_operand (operands[2], i1)
      || !register_operand (operands[3], QImode))
    return -1;
  switch (GET_MODE (operands[1]))
    {
    case V8SFmode:
      return 0;

    case V8DFmode:
      return 1;

    default:
      return -1;
    }
}

static int
pattern490 (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
      || !vector_move_operand (operands[2], i1)
      || !register_operand (operands[3], QImode))
    return -1;
  switch (GET_MODE (operands[1]))
    {
    case V4SFmode:
      return 0;

    case V4DFmode:
      return 1;

    default:
      return -1;
    }
}

static int
pattern491 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !vector_move_operand (operands[2], i1)
      || !register_operand (operands[3], QImode))
    return -1;
  switch (GET_MODE (operands[1]))
    {
    case V8SFmode:
      if (!nonimmediate_operand (operands[1], V8SFmode))
        return -1;
      return 0;

    case V8DFmode:
      if (!nonimmediate_operand (operands[1], V8DFmode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern492 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !vector_move_operand (operands[2], i1)
      || !register_operand (operands[3], QImode))
    return -1;
  switch (GET_MODE (operands[1]))
    {
    case V4SFmode:
      if (!nonimmediate_operand (operands[1], V4SFmode))
        return -1;
      return 0;

    case V4DFmode:
      if (!nonimmediate_operand (operands[1], V4DFmode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern493 (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], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !register_operand (operands[1], i2)
      || !nonimmediate_operand (operands[2], i2)
      || !vector_move_operand (operands[3], i1)
      || !register_operand (operands[4], i3))
    return -1;
  return 0;
}

static int
pattern494 (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) != i2
      || !nonimmediate_operand (operands[1], i2)
      || !register_operand (operands[2], i2)
      || !vector_move_operand (operands[3], i2)
      || !register_operand (operands[4], i1))
    return -1;
  return 0;
}

static int
pattern495 (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], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !nonimmediate_operand (operands[1], i1)
      || !register_operand (operands[2], i2)
      || !vector_move_operand (operands[3], i1)
      || !register_operand (operands[4], i3))
    return -1;
  return 0;
}

static int
pattern496 (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], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !register_operand (operands[1], i1)
      || !nonimmediate_operand (operands[2], i2)
      || !vector_move_operand (operands[3], i1)
      || !register_operand (operands[4], i3))
    return -1;
  return 0;
}

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

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

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

    case V2DFmode:
      if (pattern498 (x1, V2DFmode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

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

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

static int
pattern502 (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 (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 + 1])
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
    return -1;
  x5 = XVECEXP (x1, 0, 3);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
    return -1;
  return 0;
}

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

static int
pattern504 (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 (!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) != i3)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) != i3)
    return -1;
  x5 = XEXP (x4, 0);
  if (GET_MODE (x5) != i3
      || !vector_operand (operands[1], i2))
    return -1;
  x6 = XEXP (x4, 1);
  if (GET_MODE (x6) != i3
      || !vector_operand (operands[2], i2)
      || !vector_move_operand (operands[3], i2)
      || !register_operand (operands[4], i1))
    return -1;
  return 0;
}

static int
pattern505 (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, 0);
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != i1)
    return -1;
  x6 = XEXP (x4, 0);
  x7 = XEXP (x6, 0);
  operands[1] = x7;
  x8 = XEXP (x5, 0);
  operands[2] = x8;
  switch (GET_MODE (operands[0]))
    {
    case V32HImode:
      return pattern504 (x1, SImode, V32HImode, V32SImode); /* [-1, 0] */

    case V16HImode:
      if (pattern504 (x1, HImode, V16HImode, V16SImode) != 0)
        return -1;
      return 1;

    case V8HImode:
      if (pattern504 (x1, QImode, V8HImode, V8SImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern506 (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)
      || !palignr_operand (operands[2], VOIDmode))
    return -1;
  return 0;
}

static int
pattern507 (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) != i2
      || !register_operand (operands[1], i1))
    return -1;
  x3 = XEXP (x2, 1);
  operands[2] = x3;
  if (!vector_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern508 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  switch (GET_MODE (operands[0]))
    {
    case DImode:
      if (!register_operand (operands[0], DImode)
          || GET_MODE (x1) != DImode)
        return -1;
      x2 = XEXP (x1, 0);
      if (GET_MODE (x2) != DImode
          || !register_operand (operands[1], V64QImode)
          || !nonimmediate_operand (operands[2], V64QImode)
          || !register_operand (operands[4], DImode))
        return -1;
      return 0;

    case SImode:
      if (!register_operand (operands[0], SImode)
          || GET_MODE (x1) != SImode)
        return -1;
      x2 = XEXP (x1, 0);
      if (GET_MODE (x2) != SImode
          || !register_operand (operands[4], SImode))
        return -1;
      res = pattern391 ();
      if (res >= 0)
        return res + 1; /* [1, 2] */
      return -1;

    default:
      return -1;
    }
}

static int
pattern509 (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);
  switch (GET_MODE (x2))
    {
    case SFmode:
      if (!nonimmediate_operand (operands[1], V4SFmode))
        return -1;
      return 0;

    case DFmode:
      if (!nonimmediate_operand (operands[1], V2DFmode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern510 (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);
  switch (GET_MODE (x2))
    {
    case SFmode:
      if (!vector_operand (operands[1], V4SFmode))
        return -1;
      return 0;

    case DFmode:
      if (!vector_operand (operands[1], V2DFmode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern511 ()
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], TFmode)
      || !absneg_operator (operands[3], TFmode)
      || !register_operand (operands[1], TFmode)
      || !nonimmediate_operand (operands[2], TFmode))
    return -1;
  return 0;
}

static int
pattern512 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x2) != CLOBBER)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != 17
      || GET_MODE (x3) != CCmode
      || !register_operand (operands[0], i1))
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 1);
  x6 = XVECEXP (x5, 0, 0);
  operands[1] = x6;
  if (!tls_symbolic_operand (operands[1], VOIDmode))
    return -1;
  return 0;
}

static int
pattern513 (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[5], i1)
      || !immediate_operand (operands[3], i1)
      || !register_operand (operands[4], i1)
      || !register_operand (operands[1], i1))
    return -1;
  return 0;
}

static int
pattern514 (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 = XVECEXP (x3, 0, 0);
  x5 = XEXP (x4, 0);
  operands[5] = x5;
  x6 = XVECEXP (x3, 0, 1);
  operands[2] = x6;
  if (!register_operand (operands[2], QImode))
    return -1;
  x7 = XVECEXP (x3, 0, 2);
  operands[3] = x7;
  x8 = XVECEXP (x3, 0, 3);
  operands[4] = x8;
  x9 = XVECEXP (x1, 0, 1);
  x10 = XEXP (x9, 0);
  operands[1] = x10;
  switch (GET_MODE (operands[0]))
    {
    case SImode:
      return pattern513 (x3, SImode); /* [-1, 0] */

    case DImode:
      if (pattern513 (x3, DImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern515 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (XINT (x2, 1) != 0
      || GET_MODE (x2) != QImode)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != AND
      || GET_MODE (x3) != SImode)
    return -1;
  return pattern411 (x1); /* [-1, 1] */
}

static int
pattern516 (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 = XVECEXP (x2, 0, 0);
  operands[0] = x3;
  x4 = XVECEXP (x2, 0, 1);
  operands[1] = x4;
  x5 = XVECEXP (x1, 0, 1);
  x6 = XEXP (x5, 0);
  operands[2] = x6;
  x7 = XEXP (x5, 1);
  x8 = XVECEXP (x7, 0, 0);
  if (!rtx_equal_p (x8, operands[2]))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case BND32mode:
      if (!register_operand (operands[0], BND32mode)
          || !address_no_seg_operand (operands[1], SImode))
        return -1;
      return 0;

    case BND64mode:
      if (!register_operand (operands[0], BND64mode)
          || !address_no_seg_operand (operands[1], DImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern517 (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);
  if (GET_CODE (x2) != CLOBBER)
    return -1;
  x3 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x3) != CLOBBER)
    return -1;
  x4 = XVECEXP (x1, 0, 3);
  x5 = XEXP (x4, 0);
  if (GET_CODE (x5) != REG
      || REGNO (x5) != 17
      || GET_MODE (x5) != CCmode)
    return -1;
  x6 = XVECEXP (x1, 0, 0);
  x7 = XEXP (x6, 0);
  operands[0] = x7;
  if (!register_operand (operands[0], SImode))
    return -1;
  x8 = XEXP (x6, 1);
  x9 = XVECEXP (x8, 0, 0);
  operands[1] = x9;
  if (!register_operand (operands[1], SImode))
    return -1;
  x10 = XVECEXP (x8, 0, 1);
  operands[2] = x10;
  return 0;
}

static int
pattern518 (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);
  operands[0] = x2;
  if (!nonmemory_no_elim_operand (operands[0], XFmode))
    return -1;
  x3 = XEXP (x1, 0);
  x4 = XEXP (x3, 0);
  switch (GET_MODE (x4))
    {
    case SImode:
      x5 = XEXP (x4, 0);
      if (GET_MODE (x5) != SImode)
        return -1;
      x6 = XEXP (x4, 1);
      if (GET_MODE (x6) != SImode)
        return -1;
      x7 = XEXP (x6, 0);
      if (GET_MODE (x7) != SImode)
        return -1;
      return 0;

    case DImode:
      x5 = XEXP (x4, 0);
      if (GET_MODE (x5) != DImode)
        return -1;
      x6 = XEXP (x4, 1);
      if (GET_MODE (x6) != DImode)
        return -1;
      x7 = XEXP (x6, 0);
      if (GET_MODE (x7) != DImode)
        return -1;
      return 1;

    default:
      return -1;
    }
}

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

static int
pattern520 (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
      || !ix86_comparison_operator (operands[1], VOIDmode)
      || !nonimmediate_operand (operands[2], i1)
      || !nonimmediate_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern521 (rtx x1, machine_mode i1)
{
  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) != i1
      || !nonimmediate_operand (operands[2], i1))
    return -1;
  x3 = XEXP (x1, 1);
  if (GET_MODE (x3) != i1
      || !nonimmediate_operand (operands[1], i1))
    return -1;
  x4 = XEXP (x1, 2);
  if (GET_MODE (x4) != i1)
    return -1;
  x5 = XEXP (x4, 1);
  if (GET_MODE (x5) != i1)
    return -1;
  return 0;
}

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

    case V8HImode:
      if (pattern521 (x1, V8HImode) != 0)
        return -1;
      return 1;

    case V4SImode:
      if (pattern521 (x1, V4SImode) != 0)
        return -1;
      return 2;

    case V2DImode:
      if (pattern521 (x1, V2DImode) != 0)
        return -1;
      return 3;

    default:
      return -1;
    }
}

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

static int
pattern524 (rtx x1, int i1, int i2, int i3, int i4, int i5)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 3);
  if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + i5])
    return -1;
  x3 = XVECEXP (x1, 0, 4);
  if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + i4])
    return -1;
  x4 = XVECEXP (x1, 0, 5);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + i3])
    return -1;
  x5 = XVECEXP (x1, 0, 6);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + i2])
    return -1;
  x6 = XVECEXP (x1, 0, 7);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
    return -1;
  return 0;
}

static int
pattern525 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3, machine_mode i4)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  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) != i4
      || !nonimmediate_operand (operands[1], i3)
      || !vector_move_operand (operands[2], i1)
      || !register_operand (operands[3], i2))
    return -1;
  return 0;
}

static int
pattern526 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], 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
      || !nonimmediate_operand (operands[1], i1)
      || !vector_move_operand (operands[2], i1)
      || !register_operand (operands[3], i3))
    return -1;
  return 0;
}

static int
pattern527 (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 (!nonimmediate_operand (operands[0], i2)
      || GET_MODE (x1) != i2)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i2
      || !register_operand (operands[1], i3)
      || !vector_move_operand (operands[3], i2)
      || !register_operand (operands[4], i1))
    return -1;
  return 0;
}

static int
pattern528 (machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[2], i2)
      || !nonimmediate_operand (operands[3], i2)
      || !const0_operand (operands[4], i2)
      || !register_operand (operands[5], i1))
    return -1;
  return 0;
}

static int
pattern529 (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) != i2
      || !register_operand (operands[1], i2)
      || pattern528 (i1, i2) != 0)
    return -1;
  return 0;
}

static int
pattern530 (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], 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], i2)
      || !nonimmediate_operand (operands[3], i1)
      || !const0_operand (operands[4], i1)
      || !register_operand (operands[5], i3))
    return -1;
  return 0;
}

static int
pattern531 (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) != i2
      || !register_operand (operands[1], i2)
      || !register_operand (operands[2], i2)
      || !nonimmediate_operand (operands[3], i2)
      || !register_operand (operands[4], i1))
    return -1;
  return 0;
}

static int
pattern532 (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], 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], i2)
      || !nonimmediate_operand (operands[3], i1)
      || !register_operand (operands[4], i3))
    return -1;
  return 0;
}

static int
pattern533 (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;
  if (!const_4_to_7_operand (operands[6], VOIDmode)
      || !register_operand (operands[0], i1)
      || GET_MODE (x1) != i1
      || !nonimmediate_operand (operands[1], i1))
    return -1;
  x2 = XEXP (x1, 1);
  x3 = XVECEXP (x2, 0, 1);
  operands[3] = x3;
  if (!const_0_to_3_operand (operands[3], VOIDmode))
    return -1;
  x4 = XVECEXP (x2, 0, 2);
  operands[4] = x4;
  if (!const_0_to_3_operand (operands[4], VOIDmode))
    return -1;
  x5 = XVECEXP (x2, 0, 3);
  operands[5] = x5;
  if (!const_0_to_3_operand (operands[5], VOIDmode))
    return -1;
  x6 = XVECEXP (x2, 0, 5);
  operands[7] = x6;
  if (!const_4_to_7_operand (operands[7], VOIDmode))
    return -1;
  x7 = XVECEXP (x2, 0, 6);
  operands[8] = x7;
  if (!const_4_to_7_operand (operands[8], VOIDmode))
    return -1;
  x8 = XVECEXP (x2, 0, 7);
  operands[9] = x8;
  if (!const_4_to_7_operand (operands[9], VOIDmode))
    return -1;
  return 0;
}

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

static int
pattern535 (rtx x1, machine_mode i1, machine_mode i2)
{
  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) != i2
      || !nonimmediate_operand (operands[1], i1)
      || !nonimmediate_operand (operands[2], i1))
    return -1;
  return 0;
}

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

static int
pattern537 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (GET_MODE (operands[0]))
    {
    case V2SImode:
      return pattern534 (x1, V2SImode, V4SImode); /* [-1, 0] */

    case V2DFmode:
      if (!nonimmediate_operand (operands[0], V2DFmode)
          || pattern535 (x1, V2DFmode, V4DFmode) != 0)
        return -1;
      return 1;

    case V2DImode:
      if (pattern536 (x1, V2DImode, V4DImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

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

static int
pattern539 (rtx x1, rtx_code i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != DImode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != i1
      || GET_MODE (x4) != SImode)
    return -1;
  x5 = XVECEXP (x1, 0, 0);
  x6 = XEXP (x5, 1);
  x7 = XEXP (x6, 0);
  if (GET_MODE (x7) != SImode)
    return -1;
  return 0;
}

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

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

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

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

    default:
      return -1;
    }
}

static int
pattern541 (rtx x1, rtx_code i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != DImode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != i1
      || GET_MODE (x4) != SImode)
    return -1;
  x5 = XVECEXP (x1, 0, 0);
  x6 = XEXP (x5, 1);
  x7 = XEXP (x6, 0);
  if (GET_MODE (x7) != SImode
      || !register_operand (operands[1], SImode))
    return -1;
  return 0;
}

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

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

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

    default:
      return -1;
    }
}

static int
pattern543 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (GET_MODE (x1) != SImode)
    return -1;
  x2 = XVECEXP (x1, 0, 3);
  if (GET_CODE (x2) != REG
      || REGNO (x2) != 7
      || GET_MODE (x2) != SImode)
    return -1;
  return 0;
}

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

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

static int
pattern546 (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 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  if (GET_MODE (x5) != i2
      || !nonimmediate_operand (operands[1], i1))
    return -1;
  x6 = XEXP (x4, 1);
  if (GET_MODE (x6) != i2
      || !sext_operand (operands[2], i1)
      || pattern545 (x1, i1, i2) != 0)
    return -1;
  return 0;
}

static int
pattern547 (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 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  if (GET_MODE (x5) != i2
      || !nonimmediate_operand (operands[1], i1))
    return -1;
  x6 = XEXP (x4, 1);
  if (GET_MODE (x6) != i2
      || !x86_64_sext_operand (operands[2], i1)
      || pattern545 (x1, i1, i2) != 0)
    return -1;
  return 0;
}

static int
pattern548 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  if (GET_MODE (x5) != i2
      || !nonimmediate_operand (operands[1], i1)
      || !const_int_operand (operands[3], i2))
    return -1;
  x6 = XEXP (x3, 1);
  if (GET_MODE (x6) != i2)
    return -1;
  x7 = XEXP (x6, 0);
  if (GET_MODE (x7) != i1
      || !x86_64_immediate_operand (operands[2], i1)
      || !nonimmediate_operand (operands[0], i1))
    return -1;
  x8 = XVECEXP (x1, 0, 1);
  x9 = XEXP (x8, 1);
  if (GET_MODE (x9) != i1)
    return -1;
  return 0;
}

static int
pattern549 (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, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  if (GET_CODE (x5) != SIGN_EXTEND)
    return -1;
  x6 = XEXP (x3, 1);
  if (GET_CODE (x6) != SIGN_EXTEND)
    return -1;
  x7 = XEXP (x6, 0);
  if (GET_CODE (x7) != i1)
    return -1;
  x8 = XVECEXP (x1, 0, 1);
  x9 = XEXP (x8, 1);
  if (GET_CODE (x9) != i1)
    return -1;
  x10 = XEXP (x5, 0);
  operands[1] = x10;
  x11 = XEXP (x7, 0);
  if (!rtx_equal_p (x11, operands[1]))
    return -1;
  x12 = XEXP (x9, 0);
  if (!rtx_equal_p (x12, operands[1]))
    return -1;
  x13 = XEXP (x4, 1);
  switch (GET_CODE (x13))
    {
    case SIGN_EXTEND:
      x14 = XEXP (x13, 0);
      operands[2] = x14;
      x15 = XEXP (x7, 1);
      if (!rtx_equal_p (x15, operands[2]))
        return -1;
      x16 = XEXP (x9, 1);
      if (!rtx_equal_p (x16, operands[2]))
        return -1;
      switch (GET_MODE (x4))
        {
        case HImode:
          return pattern546 (x1, QImode, HImode); /* [-1, 0] */

        case SImode:
          if (pattern546 (x1, HImode, SImode) != 0)
            return -1;
          return 1;

        case DImode:
          if (pattern547 (x1, SImode, DImode) != 0)
            return -1;
          return 2;

        case TImode:
          if (pattern547 (x1, DImode, TImode) != 0)
            return -1;
          return 3;

        default:
          return -1;
        }

    case CONST_INT:
      operands[3] = x13;
      x15 = XEXP (x7, 1);
      operands[2] = x15;
      x16 = XEXP (x9, 1);
      if (!rtx_equal_p (x16, operands[2]))
        return -1;
      switch (GET_MODE (x4))
        {
        case HImode:
          if (pattern548 (x1, QImode, HImode) != 0)
            return -1;
          return 4;

        case SImode:
          if (pattern548 (x1, HImode, SImode) != 0)
            return -1;
          return 5;

        case DImode:
          if (pattern548 (x1, SImode, DImode) != 0)
            return -1;
          return 6;

        case TImode:
          if (pattern548 (x1, DImode, TImode) != 0)
            return -1;
          return 7;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern550 (rtx x1, int *pnum_clobbers)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 2);
  switch (GET_CODE (x2))
    {
    case UNSPEC:
      if (pnum_clobbers == NULL)
        return -1;
      return pattern160 (x1); /* [-1, 1] */

    case CLOBBER:
      x3 = XEXP (x2, 0);
      if (GET_CODE (x3) != REG
          || REGNO (x3) != 17
          || GET_MODE (x3) != CCmode)
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case HImode:
          if (pattern159 (x1, HImode) != 0)
            return -1;
          return 2;

        case SImode:
          if (pattern159 (x1, SImode) != 0)
            return -1;
          return 3;

        case DImode:
          if (pattern159 (x1, DImode) != 0)
            return -1;
          return 4;

        default:
          return -1;
        }

    case USE:
      if (pnum_clobbers == NULL)
        return -1;
      res = pattern162 (x1);
      if (res >= 0)
        return res + 5; /* [5, 7] */
      return -1;

    default:
      return -1;
    }
}

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

static int
pattern552 (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], i2)
      || GET_MODE (x1) != i2
      || !bnd_mem_operator (operands[3], i1))
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i1
      || !register_operand (operands[1], i1)
      || !address_mpx_no_base_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern553 ()
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (GET_MODE (operands[0]))
    {
    case CCFPmode:
      if (!ix86_fp_comparison_operator (operands[0], CCFPmode))
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case XFmode:
          if (!register_operand (operands[1], XFmode)
              || !register_operand (operands[2], XFmode))
            return -1;
          return 0;

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

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

        default:
          return -1;
        }

    case CCFPUmode:
      if (!ix86_fp_comparison_operator (operands[0], CCFPUmode))
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case SFmode:
          if (!register_operand (operands[1], SFmode)
              || !register_operand (operands[2], SFmode))
            return -1;
          return 3;

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

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

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern554 (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
      || !nonimmediate_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
      || !nonimmediate_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern555 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, 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, 1);
  x5 = XVECEXP (x4, 0, 0);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x6 = XVECEXP (x4, 0, 1);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
    return -1;
  x7 = XVECEXP (x4, 0, 2);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
    return -1;
  x8 = XVECEXP (x4, 0, 3);
  if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
    return -1;
  x9 = XVECEXP (x4, 0, 4);
  if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x10 = XVECEXP (x4, 0, 5);
  if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
    return -1;
  x11 = XVECEXP (x4, 0, 6);
  if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
    return -1;
  x12 = XVECEXP (x4, 0, 7);
  if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 14])
    return -1;
  x13 = XEXP (x1, 1);
  x14 = XEXP (x13, 0);
  x15 = XEXP (x14, 1);
  if (XVECLEN (x15, 0) != 8)
    return -1;
  x16 = XVECEXP (x15, 0, 0);
  if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x17 = XVECEXP (x15, 0, 1);
  if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
    return -1;
  x18 = XVECEXP (x15, 0, 2);
  if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
    return -1;
  x19 = XVECEXP (x15, 0, 3);
  if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
    return -1;
  x20 = XVECEXP (x15, 0, 4);
  if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x21 = XVECEXP (x15, 0, 5);
  if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
    return -1;
  x22 = XVECEXP (x15, 0, 6);
  if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
    return -1;
  x23 = XVECEXP (x15, 0, 7);
  if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 14]
      || pattern554 (x1, V16SImode, V8SImode, V8DImode) != 0)
    return -1;
  return 0;
}

static int
pattern556 (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);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 1);
  x5 = XVECEXP (x4, 0, 0);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x6 = XVECEXP (x4, 0, 1);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
    return -1;
  x7 = XVECEXP (x4, 0, 2);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
    return -1;
  x8 = XVECEXP (x4, 0, 3);
  if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
    return -1;
  x9 = XEXP (x1, 1);
  x10 = XEXP (x9, 0);
  x11 = XEXP (x10, 1);
  if (XVECLEN (x11, 0) != 4)
    return -1;
  x12 = XVECEXP (x11, 0, 0);
  if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x13 = XVECEXP (x11, 0, 1);
  if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
    return -1;
  x14 = XVECEXP (x11, 0, 2);
  if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
    return -1;
  x15 = XVECEXP (x11, 0, 3);
  if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 6]
      || pattern554 (x1, V8SImode, V4SImode, V4DImode) != 0)
    return -1;
  return 0;
}

static int
pattern557 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 1);
  x5 = XVECEXP (x4, 0, 0);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x6 = XVECEXP (x4, 0, 1);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
    return -1;
  x7 = XEXP (x1, 1);
  x8 = XEXP (x7, 0);
  x9 = XEXP (x8, 1);
  if (XVECLEN (x9, 0) != 2)
    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 + 2]
      || !register_operand (operands[0], V2DImode)
      || GET_MODE (x1) != V2DImode
      || GET_MODE (x2) != V2DImode
      || GET_MODE (x3) != V2SImode
      || !vector_operand (operands[1], V4SImode)
      || GET_MODE (x7) != V2DImode
      || GET_MODE (x8) != V2SImode
      || !vector_operand (operands[2], V4SImode))
    return -1;
  return 0;
}

static int
pattern558 (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[2], i1)
      || !register_operand (operands[1], i1))
    return -1;
  return 0;
}

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

static int
pattern560 (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
      || !register_operand (operands[1], i1)
      || !nonimmediate_operand (operands[2], i1))
    return -1;
  x3 = XVECEXP (x2, 0, 2);
  if (GET_MODE (x3) != i1
      || !register_operand (operands[4], i2))
    return -1;
  return 0;
}

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

static int
pattern562 (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], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !register_operand (operands[1], i2)
      || pattern528 (i3, i1) != 0)
    return -1;
  return 0;
}

static int
pattern563 (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], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !register_operand (operands[1], i2)
      || !register_operand (operands[2], i1)
      || !nonimmediate_operand (operands[3], i1)
      || !register_operand (operands[4], i3))
    return -1;
  return 0;
}

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

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

static int
pattern566 (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
      || !register_operand (operands[1], i1)
      || !nonimmediate_operand (operands[2], i1))
    return -1;
  x3 = XEXP (x2, 2);
  if (GET_MODE (x3) != i1
      || !register_operand (operands[4], i2))
    return -1;
  return 0;
}

static int
pattern567 (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) != i1
      || !register_operand (operands[1], i1)
      || !nonimmediate_operand (operands[2], i1)
      || !register_operand (operands[4], i2))
    return -1;
  return 0;
}

static int
pattern568 (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 (!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
      || !register_operand (operands[1], i1)
      || !nonimmediate_operand (operands[2], i1))
    return -1;
  x4 = XEXP (x2, 2);
  if (GET_MODE (x4) != i1
      || !register_operand (operands[4], i2))
    return -1;
  return 0;
}

static int
pattern569 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  if (!const_4_to_7_operand (operands[6], VOIDmode)
      || !register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !nonimmediate_operand (operands[1], i1))
    return -1;
  x3 = XEXP (x2, 1);
  x4 = XVECEXP (x3, 0, 1);
  operands[3] = x4;
  if (!const_0_to_3_operand (operands[3], VOIDmode))
    return -1;
  x5 = XVECEXP (x3, 0, 2);
  operands[4] = x5;
  if (!const_0_to_3_operand (operands[4], VOIDmode))
    return -1;
  x6 = XVECEXP (x3, 0, 3);
  operands[5] = x6;
  if (!const_0_to_3_operand (operands[5], VOIDmode))
    return -1;
  x7 = XVECEXP (x3, 0, 5);
  operands[7] = x7;
  if (!const_4_to_7_operand (operands[7], VOIDmode))
    return -1;
  x8 = XVECEXP (x3, 0, 6);
  operands[8] = x8;
  if (!const_4_to_7_operand (operands[8], VOIDmode))
    return -1;
  x9 = XVECEXP (x3, 0, 7);
  operands[9] = x9;
  if (!const_4_to_7_operand (operands[9], VOIDmode))
    return -1;
  return 0;
}

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

static int
pattern571 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 8);
  if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x3 = XVECEXP (x1, 0, 9);
  if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
    return -1;
  x4 = XVECEXP (x1, 0, 10);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
    return -1;
  x5 = XVECEXP (x1, 0, 11);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 11])
    return -1;
  return 0;
}

static int
pattern572 (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], 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 (x2, 1);
  if (GET_MODE (x3) != i1
      || !nonimmediate_operand (operands[2], i2)
      || !vector_move_operand (operands[4], i1)
      || !register_operand (operands[5], i3))
    return -1;
  return 0;
}

static int
pattern573 ()
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!const_0_to_3_operand (operands[2], VOIDmode)
      || !const_0_to_3_operand (operands[3], VOIDmode)
      || !const_0_to_3_operand (operands[4], VOIDmode)
      || !const_0_to_3_operand (operands[5], VOIDmode))
    return -1;
  return 0;
}

static int
pattern574 (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
      || !nonimmediate_operand (operands[1], i1)
      || pattern573 () != 0)
    return -1;
  return 0;
}

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

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

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

static int
pattern578 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (!x86_64_general_operand (operands[2], SImode)
      || !register_operand (operands[0], DImode))
    return -1;
  x2 = XEXP (x1, 0);
  if (!rtx_equal_p (x2, operands[1]))
    return -1;
  x3 = XEXP (x1, 1);
  if (!rtx_equal_p (x3, operands[2]))
    return -1;
  return 0;
}

static int
pattern579 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 0);
  operands[0] = x3;
  x4 = XEXP (x2, 1);
  switch (GET_CODE (x4))
    {
    case PLUS:
      return pattern465 (x1); /* [-1, 3] */

    case ZERO_EXTEND:
      if (GET_MODE (x4) != DImode)
        return -1;
      x5 = XEXP (x4, 0);
      if (GET_CODE (x5) != PLUS
          || GET_MODE (x5) != SImode)
        return -1;
      x6 = XVECEXP (x1, 0, 0);
      x7 = XEXP (x6, 1);
      x8 = XEXP (x7, 0);
      if (GET_MODE (x8) != SImode
          || !nonimmediate_operand (operands[1], SImode)
          || pattern578 (x5) != 0)
        return -1;
      return 4;

    default:
      return -1;
    }
}

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

static int
pattern581 (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 = XEXP (x3, 0);
  if (!rtx_equal_p (x4, operands[1]))
    return -1;
  x5 = XEXP (x3, 1);
  if (!rtx_equal_p (x5, operands[2]))
    return -1;
  x6 = XVECEXP (x1, 0, 0);
  x7 = XEXP (x6, 1);
  x8 = XEXP (x7, 0);
  switch (GET_MODE (x8))
    {
    case QImode:
      return pattern580 (x3, QImode); /* [-1, 0] */

    case HImode:
      if (pattern580 (x3, HImode) != 0)
        return -1;
      return 1;

    case SImode:
      if (pattern580 (x3, SImode) != 0)
        return -1;
      return 2;

    case DImode:
      if (!nonimmediate_operand (operands[1], DImode)
          || !const_1_to_63_operand (operands[2], QImode)
          || !nonimmediate_operand (operands[0], DImode)
          || GET_MODE (x3) != DImode)
        return -1;
      return 3;

    default:
      return -1;
    }
}

static int
pattern582 (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 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != DImode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != i1
      || GET_MODE (x4) != SImode)
    return -1;
  x5 = XVECEXP (x1, 0, 0);
  x6 = XEXP (x5, 1);
  x7 = XEXP (x6, 0);
  if (GET_MODE (x7) != SImode
      || !register_operand (operands[1], SImode)
      || !const_1_to_31_operand (operands[2], QImode)
      || !register_operand (operands[0], DImode))
    return -1;
  x8 = XEXP (x4, 0);
  if (!rtx_equal_p (x8, operands[1]))
    return -1;
  x9 = XEXP (x4, 1);
  if (!rtx_equal_p (x9, operands[2]))
    return -1;
  return 0;
}

static int
pattern583 (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, 1);
  if (GET_MODE (x2) != i1
      || !nonimmediate_operand (operands[1], i1))
    return -1;
  return 0;
}

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

static int
pattern585 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  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
      || !nonimmediate_operand (operands[1], i1))
    return -1;
  return 0;
}

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

static int
pattern587 (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 REG:
    case SUBREG:
    case MEM:
      if (!rtx_equal_p (x2, operands[1]))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case SImode:
          return pattern585 (x1, SImode); /* [-1, 0] */

        case DImode:
          if (pattern585 (x1, DImode) != 0)
            return -1;
          return 1;

        default:
          return -1;
        }

    case NOT:
      x3 = XEXP (x2, 0);
      if (!rtx_equal_p (x3, operands[1]))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case SImode:
          if (pattern586 (x1, SImode) != 0)
            return -1;
          return 2;

        case DImode:
          if (pattern586 (x1, DImode) != 0)
            return -1;
          return 3;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

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

static int
pattern589 (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)
      || !nonimmediate_operand (operands[2], i1))
    return -1;
  return 0;
}

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

static int
pattern591 (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);
  switch (GET_MODE (x2))
    {
    case SFmode:
      if (!register_operand (operands[1], V4SFmode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern592 (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);
  if (GET_CODE (x3) != PARALLEL
      || XVECLEN (x3, 0) != 1)
    return -1;
  x4 = XVECEXP (x3, 0, 0);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x5 = XEXP (x2, 0);
  operands[1] = x5;
  switch (GET_MODE (operands[0]))
    {
    case SImode:
      return pattern591 (x1, SImode); /* [-1, 1] */

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

    default:
      return -1;
    }
}

static int
pattern593 (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 = XVECEXP (x2, 0, 0);
  operands[3] = x3;
  if (!const48_operand (operands[3], SImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case V16SFmode:
      if (!register_operand (operands[0], V16SFmode))
        return -1;
      x4 = XVECEXP (x1, 0, 0);
      x5 = XEXP (x4, 1);
      if (GET_MODE (x5) != V16SFmode
          || !nonimmediate_operand (operands[1], V16SFmode))
        return -1;
      return 0;

    case V8SFmode:
      if (!register_operand (operands[0], V8SFmode))
        return -1;
      x4 = XVECEXP (x1, 0, 0);
      x5 = XEXP (x4, 1);
      if (GET_MODE (x5) != V8SFmode
          || !nonimmediate_operand (operands[1], V8SFmode))
        return -1;
      return 1;

    case V4SFmode:
      if (!register_operand (operands[0], V4SFmode))
        return -1;
      x4 = XVECEXP (x1, 0, 0);
      x5 = XEXP (x4, 1);
      if (GET_MODE (x5) != V4SFmode
          || !nonimmediate_operand (operands[1], V4SFmode))
        return -1;
      return 2;

    case V8DFmode:
      if (!register_operand (operands[0], V8DFmode))
        return -1;
      x4 = XVECEXP (x1, 0, 0);
      x5 = XEXP (x4, 1);
      if (GET_MODE (x5) != V8DFmode
          || !nonimmediate_operand (operands[1], V8DFmode))
        return -1;
      return 3;

    case V4DFmode:
      if (!register_operand (operands[0], V4DFmode))
        return -1;
      x4 = XVECEXP (x1, 0, 0);
      x5 = XEXP (x4, 1);
      if (GET_MODE (x5) != V4DFmode
          || !nonimmediate_operand (operands[1], V4DFmode))
        return -1;
      return 4;

    case V2DFmode:
      if (!register_operand (operands[0], V2DFmode))
        return -1;
      x4 = XVECEXP (x1, 0, 0);
      x5 = XEXP (x4, 1);
      if (GET_MODE (x5) != V2DFmode
          || !nonimmediate_operand (operands[1], V2DFmode))
        return -1;
      return 5;

    default:
      return -1;
    }
}

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

static int
pattern595 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  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)
      || !vector_move_operand (operands[3], i1)
      || !register_operand (operands[4], i2))
    return -1;
  return 0;
}

static int
pattern596 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 1);
  operands[3] = x4;
  x5 = XEXP (x3, 2);
  operands[4] = x5;
  x6 = XVECEXP (x1, 0, 1);
  x7 = XVECEXP (x6, 0, 0);
  operands[5] = x7;
  if (!const48_operand (operands[5], SImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case V16SFmode:
      return pattern595 (x3, V16SFmode, HImode); /* [-1, 0] */

    case V8DFmode:
      if (pattern595 (x3, V8DFmode, QImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern597 (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) != i2
      || !register_operand (operands[1], i2)
      || !vector_move_operand (operands[2], i2)
      || !register_operand (operands[3], i1))
    return -1;
  return 0;
}

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

static int
pattern599 (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 = XVECEXP (x2, 0, 0);
  if (!const48_operand (x3, SImode))
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 1);
  x6 = XEXP (x5, 2);
  switch (GET_CODE (x6))
    {
    case REG:
    case SUBREG:
      operands[3] = x6;
      operands[4] = x3;
      switch (GET_MODE (operands[0]))
        {
        case V16SFmode:
          return pattern597 (x5, HImode, V16SFmode); /* [-1, 0] */

        case V8DFmode:
          if (pattern597 (x5, QImode, V8DFmode) != 0)
            return -1;
          return 1;

        default:
          return -1;
        }

    case CONST_INT:
      if (XWINT (x6, 0) != 1LL)
        return -1;
      operands[3] = x3;
      switch (GET_MODE (operands[0]))
        {
        case V4SFmode:
          if (pattern598 (x5, V4SFmode) != 0)
            return -1;
          return 2;

        case V2DFmode:
          if (pattern598 (x5, V2DFmode) != 0)
            return -1;
          return 3;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern600 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 1);
  switch (GET_CODE (x4))
    {
    case CONST_INT:
    case CONST_WIDE_INT:
    case CONST_DOUBLE:
    case CONST_VECTOR:
      operands[4] = x4;
      x5 = XEXP (x3, 0);
      x6 = XEXP (x5, 0);
      x7 = XEXP (x6, 0);
      operands[1] = x7;
      x8 = XEXP (x5, 1);
      operands[2] = x8;
      return 0;

    case REG:
    case SUBREG:
      x9 = XEXP (x3, 2);
      switch (GET_CODE (x9))
        {
        case REG:
        case SUBREG:
          operands[4] = x9;
          x5 = XEXP (x3, 0);
          x6 = XEXP (x5, 0);
          x7 = XEXP (x6, 0);
          operands[1] = x7;
          x8 = XEXP (x5, 1);
          operands[2] = x8;
          return 1;

        case CONST_INT:
          if (XWINT (x9, 0) != 1LL)
            return -1;
          x5 = XEXP (x3, 0);
          x6 = XEXP (x5, 0);
          x7 = XEXP (x6, 0);
          operands[2] = x7;
          x8 = XEXP (x5, 1);
          operands[1] = x8;
          x10 = XVECEXP (x1, 0, 1);
          x11 = XVECEXP (x10, 0, 0);
          operands[4] = x11;
          if (!rtx_equal_p (x4, operands[1]))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case V4SFmode:
              return 2;

            case V2DFmode:
              return 3;

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern601 (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
      || !nonimmediate_operand (operands[2], i1))
    return -1;
  return 0;
}

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

static int
pattern603 (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) != CCFPmode)
    return -1;
  x3 = XEXP (x1, 1);
  if (GET_MODE (x3) != CCFPmode)
    return -1;
  switch (GET_MODE (operands[1]))
    {
    case SFmode:
      if (!register_operand (operands[1], SFmode)
          || !const0_operand (operands[2], SFmode))
        return -1;
      return 0;

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

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

    default:
      return -1;
    }
}

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

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

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

        default:
          return -1;
        }

    case CCFPUmode:
      x3 = XEXP (x1, 1);
      if (GET_MODE (x3) != CCFPUmode)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case SFmode:
          if (!register_operand (operands[1], SFmode)
              || !register_operand (operands[2], SFmode))
            return -1;
          return 3;

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

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

        default:
          return -1;
        }

    default:
      return -1;
    }
}

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

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

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

static int
pattern608 (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)
      || !addsub_vm_operator (operands[6], i1))
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !vector_operand (operands[1], i1)
      || !vector_operand (operands[2], i1))
    return -1;
  x3 = XEXP (x1, 1);
  if (GET_MODE (x3) != i1
      || !register_operand (operands[3], i1)
      || !vector_operand (operands[4], i1))
    return -1;
  return 0;
}

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

static int
pattern610 (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 (!rtx_equal_p (x1, operands[0]))
    return -1;
  x2 = PATTERN (peep2_next_insn (1));
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XEXP (x2, 1);
  if (!rtx_equal_p (x3, operands[0]))
    return -1;
  x4 = XEXP (x2, 0);
  if (!rtx_equal_p (x4, operands[1]))
    return -1;
  x5 = PATTERN (peep2_next_insn (2));
  if (GET_CODE (x5) != SET)
    return -1;
  x6 = XEXP (x5, 1);
  if (GET_CODE (x6) != COMPARE)
    return -1;
  x7 = XEXP (x6, 1);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x8 = XEXP (x5, 0);
  if (GET_CODE (x8) != REG
      || REGNO (x8) != 17)
    return -1;
  x9 = XEXP (x6, 0);
  if (!rtx_equal_p (x9, operands[0]))
    return -1;
  return 0;
}

static int
pattern611 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[1], i1)
      || !float_operator (operands[3], i1))
    return -1;
  switch (GET_MODE (operands[2]))
    {
    case HImode:
      if (!memory_operand (operands[2], HImode))
        return -1;
      return 0;

    case SImode:
      if (!memory_operand (operands[2], SImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern612 ()
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (GET_MODE (operands[1]))
    {
    case SFmode:
      if (!register_operand (operands[1], SFmode)
          || !const0_operand (operands[2], SFmode))
        return -1;
      return 0;

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

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

    default:
      return -1;
    }
}

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

static int
pattern614 (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, 1);
  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 = XEXP (x1, 1);
  x8 = XEXP (x7, 0);
  x9 = XEXP (x8, 1);
  if (XVECLEN (x9, 0) != 2)
    return -1;
  x10 = XVECEXP (x9, 0, 0);
  if (GET_CODE (x10) != CONST_INT)
    return -1;
  x11 = XVECEXP (x9, 0, 1);
  if (GET_CODE (x11) != CONST_INT)
    return -1;
  return 0;
}

static int
pattern615 (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 (XVECLEN (x1, 0) != 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 + 2])
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
    return -1;
  x5 = XVECEXP (x1, 0, 3);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
    return -1;
  x6 = XVECEXP (x1, 0, 4);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x7 = XVECEXP (x1, 0, 5);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
    return -1;
  x8 = XVECEXP (x1, 0, 6);
  if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
    return -1;
  x9 = XVECEXP (x1, 0, 7);
  if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 14])
    return -1;
  return 0;
}

static int
pattern616 (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);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 1);
  x5 = XVECEXP (x4, 0, 0);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x6 = XVECEXP (x4, 0, 1);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
    return -1;
  x7 = XVECEXP (x4, 0, 2);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
    return -1;
  x8 = XVECEXP (x4, 0, 3);
  if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
    return -1;
  x9 = XVECEXP (x4, 0, 4);
  if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x10 = XVECEXP (x4, 0, 5);
  if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
    return -1;
  x11 = XVECEXP (x4, 0, 6);
  if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
    return -1;
  x12 = XVECEXP (x4, 0, 7);
  if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 14])
    return -1;
  x13 = XEXP (x1, 1);
  x14 = XEXP (x13, 0);
  x15 = XEXP (x14, 1);
  return pattern615 (x15, 8); /* [-1, 0] */
}

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

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

static int
pattern619 (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
      || !vector_operand (operands[1], i1)
      || !vector_operand (operands[2], i1))
    return -1;
  x3 = XVECEXP (x2, 0, 2);
  if (GET_MODE (x3) != i1
      || !vector_operand (operands[3], i1)
      || !const0_operand (operands[4], i1)
      || !register_operand (operands[5], i2))
    return -1;
  return 0;
}

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

static int
pattern621 (machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vector_operand (operands[2], i1)
      || !vector_operand (operands[3], i1)
      || !const0_operand (operands[4], i1)
      || !register_operand (operands[5], i2))
    return -1;
  return 0;
}

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

static int
pattern623 (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
      || !nonimmediate_operand (operands[1], i1)
      || !nonimmediate_operand (operands[2], i1)
      || !nonimmediate_operand (operands[3], i1)
      || !const0_operand (operands[4], i1))
    return -1;
  return 0;
}

static int
pattern624 (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
      || !vector_operand (operands[1], i1)
      || !vector_operand (operands[2], i1)
      || !vector_operand (operands[3], i1))
    return -1;
  return 0;
}

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

static int
pattern626 (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
      || !vector_operand (operands[1], i1))
    return -1;
  x3 = XEXP (x2, 2);
  return pattern625 (x3, i2, i1); /* [-1, 0] */
}

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

static int
pattern628 (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
      || !nonimmediate_operand (operands[1], i1))
    return -1;
  x3 = XEXP (x2, 2);
  return pattern627 (x3, i1); /* [-1, 0] */
}

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

static int
pattern630 (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) != i1
      || !vector_operand (operands[1], i1)
      || pattern621 (i1, i2) != 0)
    return -1;
  return 0;
}

static int
pattern631 (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)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i1
      || !nonimmediate_operand (operands[1], i1)
      || !nonimmediate_operand (operands[2], i1)
      || !nonimmediate_operand (operands[3], i1)
      || !const0_operand (operands[4], i1))
    return -1;
  return 0;
}

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

static int
pattern633 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  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) != i1)
    return -1;
  x4 = XEXP (x2, 2);
  if (GET_MODE (x4) != i1
      || !const0_operand (operands[4], i1)
      || !register_operand (operands[5], QImode))
    return -1;
  return 0;
}

static int
pattern634 (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 (!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) != i2
      || !vector_operand (operands[1], i2))
    return -1;
  x4 = XEXP (x2, 2);
  return pattern625 (x4, i1, i2); /* [-1, 0] */
}

static int
pattern635 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  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) != i1
      || !nonimmediate_operand (operands[1], i1))
    return -1;
  x4 = XEXP (x2, 2);
  return pattern627 (x4, i1); /* [-1, 0] */
}

static int
pattern636 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  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) != i1
      || !vector_operand (operands[2], i1)
      || !vector_operand (operands[1], i1))
    return -1;
  x4 = XEXP (x2, 2);
  if (GET_MODE (x4) != i1
      || !vector_operand (operands[3], i1))
    return -1;
  return 0;
}

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

static int
pattern638 ()
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!const_0_to_3_operand (operands[3], VOIDmode)
      || !const_0_to_3_operand (operands[4], VOIDmode)
      || !const_4_to_7_operand (operands[5], VOIDmode)
      || !const_4_to_7_operand (operands[6], VOIDmode))
    return -1;
  return 0;
}

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

static int
pattern640 (rtx x1, int i1, int i2, int i3, int i4)
{
  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, 0);
  x4 = XEXP (x3, 1);
  x5 = XVECEXP (x4, 0, 0);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + i4])
    return -1;
  x6 = XVECEXP (x4, 0, 1);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + i3])
    return -1;
  x7 = XVECEXP (x4, 0, 2);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + i2])
    return -1;
  x8 = XVECEXP (x4, 0, 3);
  if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
    return -1;
  x9 = XEXP (x1, 1);
  x10 = XEXP (x9, 0);
  x11 = XEXP (x10, 1);
  if (XVECLEN (x11, 0) != 4)
    return -1;
  x12 = XVECEXP (x11, 0, 0);
  if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + i4])
    return -1;
  x13 = XVECEXP (x11, 0, 1);
  if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + i3])
    return -1;
  x14 = XVECEXP (x11, 0, 2);
  if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + i2])
    return -1;
  x15 = XVECEXP (x11, 0, 3);
  if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
    return -1;
  return 0;
}

static int
pattern641 (rtx x1, machine_mode 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) != i1)
    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 + 1])
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x5 = XVECEXP (x1, 0, 3);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x6 = XVECEXP (x1, 0, 4);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x7 = XVECEXP (x1, 0, 5);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x8 = XVECEXP (x1, 0, 6);
  if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x9 = XVECEXP (x1, 0, 7);
  if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  return 0;
}

static int
pattern642 (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
      || !vector_operand (operands[1], i1))
    return -1;
  x6 = XEXP (x4, 1);
  if (GET_MODE (x6) != i2
      || !vector_operand (operands[2], i1)
      || !const1_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern643 (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[1], i1)
      || !nonimmediate_operand (operands[2], i1)
      || !scratch_operand (operands[0], i1))
    return -1;
  return 0;
}

static int
pattern644 (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
      || !register_operand (operands[2], i2)
      || !register_operand (operands[3], i2)
      || !nonimmediate_operand (operands[4], i1)
      || !nonimmediate_operand (operands[5], i1)
      || !scratch_operand (operands[1], i1))
    return -1;
  return 0;
}

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

static int
pattern646 (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
      || !nonimmediate_operand (operands[1], i1)
      || !register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern647 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[2] = x4;
  if (!register_operand (operands[2], XFmode))
    return -1;
  x5 = XVECEXP (x3, 0, 1);
  operands[3] = x5;
  if (!register_operand (operands[3], XFmode))
    return -1;
  x6 = XVECEXP (x1, 0, 1);
  x7 = XEXP (x6, 0);
  operands[1] = x7;
  if (!register_operand (operands[1], XFmode))
    return -1;
  x8 = XEXP (x6, 1);
  x9 = XVECEXP (x8, 0, 0);
  if (!rtx_equal_p (x9, operands[2]))
    return -1;
  x10 = XVECEXP (x8, 0, 1);
  if (!rtx_equal_p (x10, operands[3]))
    return -1;
  return 0;
}

static int
pattern648 (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)
      || !const_int_operand (operands[2], i1))
    return -1;
  return 0;
}

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

static int
pattern650 (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 QImode:
      return pattern649 (x1, QImode); /* [-1, 0] */

    case HImode:
      if (pattern649 (x1, HImode) != 0)
        return -1;
      return 1;

    case SImode:
      if (pattern649 (x1, SImode) != 0)
        return -1;
      return 2;

    case DImode:
      if (pattern649 (x1, DImode) != 0)
        return -1;
      return 3;

    default:
      return -1;
    }
}

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

static int
pattern652 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 1);
  operands[3] = x4;
  x5 = XEXP (x3, 2);
  operands[4] = x5;
  x6 = XVECEXP (x1, 0, 1);
  x7 = XVECEXP (x6, 0, 0);
  operands[5] = x7;
  if (!const48_operand (operands[5], SImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case V16SFmode:
      return pattern651 (x3, V16SFmode, HImode); /* [-1, 0] */

    case V8SFmode:
      if (pattern651 (x3, V8SFmode, QImode) != 0)
        return -1;
      return 1;

    case V4SFmode:
      if (pattern651 (x3, V4SFmode, QImode) != 0)
        return -1;
      return 2;

    case V8DFmode:
      if (pattern651 (x3, V8DFmode, QImode) != 0)
        return -1;
      return 3;

    case V4DFmode:
      if (pattern651 (x3, V4DFmode, QImode) != 0)
        return -1;
      return 4;

    case V2DFmode:
      if (pattern651 (x3, V2DFmode, QImode) != 0)
        return -1;
      return 5;

    default:
      return -1;
    }
}

static int
pattern653 (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);
  x4 = XEXP (x3, 0);
  operands[2] = x4;
  switch (GET_MODE (operands[0]))
    {
    case V4SFmode:
      if (!register_operand (operands[0], V4SFmode)
          || GET_MODE (x1) != V4SFmode
          || GET_MODE (x2) != V4SFmode
          || GET_MODE (x3) != SFmode
          || !register_operand (operands[1], V4SFmode))
        return -1;
      switch (GET_MODE (operands[2]))
        {
        case SImode:
          if (!register_operand (operands[2], SImode))
            return -1;
          return 0;

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

        default:
          return -1;
        }

    case V2DFmode:
      if (!register_operand (operands[0], V2DFmode)
          || GET_MODE (x1) != V2DFmode
          || GET_MODE (x2) != V2DFmode
          || GET_MODE (x3) != DFmode
          || !register_operand (operands[2], DImode)
          || !register_operand (operands[1], V2DFmode))
        return -1;
      return 2;

    default:
      return -1;
    }
}

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

static int
pattern655 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (GET_CODE (x1))
    {
    case REG:
    case SUBREG:
    case MEM:
      operands[4] = x1;
      if (!nonimmediate_operand (operands[4], V16QImode))
        return -1;
      return 0;

    case UNSPEC:
      if (XVECLEN (x1, 0) != 1
          || XINT (x1, 1) != 105
          || GET_MODE (x1) != V16QImode)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern656 (rtx x1, int i1, int i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != UNSPEC
      || XVECLEN (x3, 0) != i2
      || XINT (x3, 1) != i1
      || GET_MODE (x3) != V16QImode)
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x4) != SET)
    return -1;
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != UNSPEC
      || XVECLEN (x5, 0) != i2
      || XINT (x5, 1) != i1
      || GET_MODE (x5) != CCmode)
    return -1;
  x6 = XEXP (x4, 0);
  if (GET_CODE (x6) != REG
      || REGNO (x6) != 17
      || GET_MODE (x6) != CCmode)
    return -1;
  x7 = XVECEXP (x1, 0, 0);
  x8 = XEXP (x7, 0);
  operands[0] = x8;
  if (!register_operand (operands[0], SImode))
    return -1;
  x9 = XEXP (x7, 1);
  if (GET_MODE (x9) != SImode)
    return -1;
  x10 = XEXP (x2, 0);
  operands[1] = x10;
  if (!register_operand (operands[1], V16QImode))
    return -1;
  x11 = XVECEXP (x3, 0, 0);
  if (!rtx_equal_p (x11, operands[2]))
    return -1;
  x12 = XVECEXP (x3, 0, 1);
  if (!rtx_equal_p (x12, operands[3]))
    return -1;
  x13 = XVECEXP (x3, 0, 2);
  if (!rtx_equal_p (x13, operands[4]))
    return -1;
  return 0;
}

static int
pattern657 (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 (REGNO (x3) != 17
      || GET_MODE (x3) != CCmode)
    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 = XEXP (x2, 1);
  if (GET_MODE (x6) != CCmode)
    return -1;
  x7 = XEXP (x4, 0);
  operands[0] = x7;
  if (!scratch_operand (operands[0], V16QImode))
    return -1;
  x8 = XEXP (x5, 0);
  operands[1] = x8;
  if (!scratch_operand (operands[1], SImode))
    return -1;
  return 0;
}

static int
pattern658 (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;
  if (!register_operand (operands[2], i1)
      || !register_operand (operands[0], i1))
    return -1;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != i1)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) != i1
      || !register_operand (operands[5], i1)
      || !register_operand (operands[3], i1)
      || !register_operand (operands[1], i1))
    return -1;
  x5 = XVECEXP (x1, 0, 2);
  x6 = XEXP (x5, 1);
  if (GET_MODE (x6) != i1)
    return -1;
  x7 = XEXP (x6, 0);
  if (GET_MODE (x7) != i1
      || !register_operand (operands[4], i1))
    return -1;
  return 0;
}

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

static int
pattern660 (rtx x1, int i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 2);
  x3 = XEXP (x2, 1);
  switch (GET_CODE (x3))
    {
    case PLUS:
      x4 = XEXP (x3, 0);
      if (GET_CODE (x4) != ASHIFT)
        return -1;
      x5 = XEXP (x4, 1);
      if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
        return -1;
      x6 = XVECEXP (x1, 0, 3);
      if (GET_CODE (x6) != SET)
        return -1;
      x7 = XEXP (x6, 1);
      if (GET_CODE (x7) != MEM
          || GET_MODE (x7) != BLKmode)
        return -1;
      x8 = XEXP (x6, 0);
      if (GET_CODE (x8) != MEM
          || GET_MODE (x8) != BLKmode)
        return -1;
      x9 = XVECEXP (x1, 0, 0);
      x10 = XEXP (x9, 0);
      operands[2] = x10;
      x11 = XVECEXP (x1, 0, 1);
      x12 = XEXP (x11, 1);
      x13 = XEXP (x12, 0);
      x14 = XEXP (x13, 0);
      operands[5] = x14;
      x15 = XEXP (x2, 0);
      operands[1] = x15;
      x16 = XEXP (x3, 1);
      operands[4] = x16;
      x17 = XEXP (x4, 0);
      if (!rtx_equal_p (x17, operands[5]))
        return -1;
      x18 = XEXP (x7, 0);
      if (!rtx_equal_p (x18, operands[4]))
        return -1;
      x19 = XEXP (x8, 0);
      if (!rtx_equal_p (x19, operands[3]))
        return -1;
      x20 = XVECEXP (x1, 0, 4);
      x21 = XEXP (x20, 0);
      if (!rtx_equal_p (x21, operands[5]))
        return -1;
      switch (GET_MODE (operands[2]))
        {
        case SImode:
          return pattern658 (x1, SImode); /* [-1, 0] */

        case DImode:
          if (pattern658 (x1, DImode) != 0)
            return -1;
          return 1;

        default:
          return -1;
        }

    case CONST_INT:
      if (XWINT (x3, 0) != 0LL)
        return -1;
      x15 = XEXP (x2, 0);
      if (GET_CODE (x15) != MEM
          || GET_MODE (x15) != BLKmode)
        return -1;
      x6 = XVECEXP (x1, 0, 3);
      if (GET_CODE (x6) != USE)
        return -1;
      x9 = XVECEXP (x1, 0, 0);
      x10 = XEXP (x9, 0);
      operands[1] = x10;
      x11 = XVECEXP (x1, 0, 1);
      x12 = XEXP (x11, 1);
      x13 = XEXP (x12, 0);
      x14 = XEXP (x13, 0);
      operands[4] = x14;
      x8 = XEXP (x6, 0);
      operands[2] = x8;
      if (!register_operand (operands[2], i2))
        return -1;
      x22 = XEXP (x15, 0);
      if (!rtx_equal_p (x22, operands[3]))
        return -1;
      x20 = XVECEXP (x1, 0, 4);
      x21 = XEXP (x20, 0);
      if (!rtx_equal_p (x21, operands[4]))
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case SImode:
          if (pattern659 (x12, SImode) != 0)
            return -1;
          return 2;

        case DImode:
          if (pattern659 (x12, DImode) != 0)
            return -1;
          return 3;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern661 (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
      || !register_operand (operands[2], i2)
      || !register_operand (operands[3], i2)
      || !scratch_operand (operands[1], i1))
    return -1;
  return 0;
}

static int
pattern662 (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)
      || !x86_64_nonmemory_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern663 (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)
      || !nonmemory_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern664 (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_CODE (x2) != CALL)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != MEM
      || GET_MODE (x3) != QImode)
    return -1;
  x4 = XEXP (x1, 0);
  operands[2] = x4;
  x5 = XEXP (x2, 1);
  operands[3] = x5;
  x6 = XEXP (x3, 0);
  if (!rtx_equal_p (x6, operands[0]))
    return -1;
  return 0;
}

static int
pattern665 (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, 2);
  if (GET_CODE (x2) != CLOBBER)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != 17
      || GET_MODE (x3) != CCmode)
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 1);
  x6 = XVECEXP (x5, 0, 0);
  operands[1] = x6;
  return 0;
}

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

    case DFmode:
      if (!register_operand (operands[0], V2DFmode))
        return -1;
      x3 = XEXP (x1, 1);
      if (GET_MODE (x3) != DFmode
          || !nonimmediate_operand (operands[1], V2DFmode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern667 ()
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (GET_MODE (operands[1]))
    {
    case V4SFmode:
      if (!register_operand (operands[1], V4SFmode)
          || !vector_operand (operands[2], V4SFmode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern668 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!float_operator (operands[1], i1)
      || !register_operand (operands[3], i1))
    return -1;
  switch (GET_MODE (operands[2]))
    {
    case HImode:
      if (!nonimmediate_operand (operands[2], HImode))
        return -1;
      return 0;

    case SImode:
      if (!nonimmediate_operand (operands[2], SImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

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

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

static int
pattern671 (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], 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)
      || !nonimmediate_operand (operands[3], i2)
      || !const0_operand (operands[5], i1)
      || !register_operand (operands[6], i3))
    return -1;
  return 0;
}

static int
pattern672 (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)
      || !nonimmediate_operand (operands[2], i2)
      || !vector_move_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern673 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[1], i1)
      || !const_0_to_15_operand (operands[2], VOIDmode)
      || !const_0_to_15_operand (operands[3], VOIDmode)
      || !const_0_to_15_operand (operands[4], VOIDmode)
      || !const_0_to_15_operand (operands[5], VOIDmode))
    return -1;
  return 0;
}

static int
pattern674 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 4);
  operands[2] = x2;
  if (!const_4_to_7_operand (operands[2], VOIDmode))
    return -1;
  x3 = XVECEXP (x1, 0, 5);
  operands[3] = x3;
  if (!const_4_to_7_operand (operands[3], VOIDmode))
    return -1;
  x4 = XVECEXP (x1, 0, 6);
  operands[4] = x4;
  if (!const_4_to_7_operand (operands[4], VOIDmode))
    return -1;
  x5 = XVECEXP (x1, 0, 7);
  operands[5] = x5;
  if (!const_4_to_7_operand (operands[5], VOIDmode))
    return -1;
  return 0;
}

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

static int
pattern676 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], V4SFmode)
      || GET_MODE (x1) != V4SFmode)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != V8SFmode
      || !vector_operand (operands[1], V4SFmode))
    return -1;
  x3 = XEXP (x2, 1);
  if (!rtx_equal_p (x3, operands[1]))
    return -1;
  return 0;
}

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

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

static int
pattern679 (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)
    return -1;
  switch (GET_MODE (operands[1]))
    {
    case V8SFmode:
      if (!nonimmediate_operand (operands[1], V8SFmode))
        return -1;
      return 0;

    case V8DFmode:
      if (!nonimmediate_operand (operands[1], V8DFmode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern680 (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)
      || !nonimmediate_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern681 (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
      || !memory_operand (operands[1], i1)
      || !register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern682 (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], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !nonimmediate_operand (operands[1], i2)
      || !vector_move_operand (operands[2], i1)
      || !register_operand (operands[3], i3))
    return -1;
  return 0;
}

static int
pattern683 (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
      || !vector_move_operand (operands[2], i1)
      || !register_operand (operands[3], QImode))
    return -1;
  return 0;
}

static int
pattern684 (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
      || !nonimmediate_operand (operands[1], i1))
    return -1;
  x5 = XEXP (x3, 1);
  if (GET_MODE (x5) != i2
      || !nonimmediate_operand (operands[2], i1)
      || !scratch_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern685 (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 64LL:
      return pattern684 (x1, DImode, TImode); /* [-1, 0] */

    case 32LL:
      if (pattern684 (x1, SImode, DImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern686 (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, 1);
  switch (GET_CODE (x3))
    {
    case COMPARE:
      x4 = XEXP (x3, 0);
      if (GET_CODE (x4) != MEM
          || GET_MODE (x4) != BLKmode)
        return -1;
      x5 = XEXP (x3, 1);
      if (GET_CODE (x5) != MEM
          || GET_MODE (x5) != BLKmode)
        return -1;
      x6 = XEXP (x4, 0);
      operands[4] = x6;
      return 0;

    case IF_THEN_ELSE:
      x4 = XEXP (x3, 0);
      if (GET_CODE (x4) != NE)
        return -1;
      x7 = XEXP (x4, 1);
      if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x5 = XEXP (x3, 1);
      if (GET_CODE (x5) != COMPARE
          || GET_MODE (x5) != CCmode)
        return -1;
      x8 = XEXP (x5, 0);
      if (GET_CODE (x8) != MEM
          || GET_MODE (x8) != BLKmode)
        return -1;
      x9 = XEXP (x5, 1);
      if (GET_CODE (x9) != MEM
          || GET_MODE (x9) != BLKmode)
        return -1;
      x10 = XEXP (x3, 2);
      if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x11 = XVECEXP (x1, 0, 2);
      x12 = XEXP (x11, 0);
      if (GET_CODE (x12) != REG
          || REGNO (x12) != 17
          || GET_MODE (x12) != CCmode)
        return -1;
      x6 = XEXP (x4, 0);
      operands[6] = x6;
      return 1;

    default:
      return -1;
    }
}

static int
pattern687 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_mem_operator (operands[5], i2)
      || !register_operand (operands[1], i1))
    return -1;
  switch (GET_MODE (x1))
    {
    case SImode:
      if (!vsib_address_operand (operands[2], SImode))
        return -1;
      return 0;

    case DImode:
      if (!vsib_address_operand (operands[2], DImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern688 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[2], i1))
    return -1;
  switch (GET_MODE (operands[1]))
    {
    case V8SImode:
      if (!register_operand (operands[1], V8SImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern689 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (GET_MODE (operands[0]))
    {
    case HImode:
      if (!register_operand (operands[0], HImode))
        return -1;
      return pattern687 (x1, V16SImode, V16SFmode); /* [-1, 1] */

    case QImode:
      if (!register_operand (operands[0], QImode))
        return -1;
      switch (GET_MODE (operands[5]))
        {
        case V8SFmode:
          res = pattern687 (x1, V8DImode, V8SFmode);
          if (res >= 0)
            return res + 2; /* [2, 3] */
          return -1;

        case V8DFmode:
          if (!vsib_mem_operator (operands[5], V8DFmode))
            return -1;
          switch (GET_MODE (x1))
            {
            case SImode:
              res = pattern688 (SImode);
              if (res >= 0)
                return res + 4; /* [4, 5] */
              return -1;

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

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

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

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

    case V8SImode:
      if (!nonimmediate_operand (operands[0], V8SImode)
          || GET_MODE (x1) != V8SImode
          || !nonimmediate_operand (operands[1], V16SImode))
        return -1;
      return 1;

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

    default:
      return -1;
    }
}

static int
pattern692 (rtx x1, rtx_code i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  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 (GET_CODE (x3) != i1
      || GET_MODE (x3) != SImode)
    return -1;
  return 0;
}

static int
pattern693 (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], i2)
      || GET_MODE (x1) != i2)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i2
      || !register_operand (operands[1], i2)
      || !register_operand (operands[2], i2)
      || !nonimmediate_operand (operands[3], i1)
      || !register_operand (operands[5], i3))
    return -1;
  return 0;
}

static int
pattern694 (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) != i2
      || !register_operand (operands[1], i2)
      || !register_operand (operands[2], i2)
      || !vector_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern695 (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
      || !nonimmediate_operand (operands[2], i2))
    return -1;
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != i2
      || !register_operand (operands[1], i1)
      || !vector_move_operand (operands[3], i1))
    return -1;
  return 0;
}

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

static int
pattern697 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 12);
  if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
    return -1;
  x3 = XVECEXP (x1, 0, 13);
  if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 13])
    return -1;
  x4 = XVECEXP (x1, 0, 14);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 14])
    return -1;
  x5 = XVECEXP (x1, 0, 15);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 15])
    return -1;
  return 0;
}

static int
pattern698 (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;
  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)
    return -1;
  x6 = XEXP (x5, 0);
  if (GET_MODE (x6) != i2
      || !vector_operand (operands[1], i1))
    return -1;
  x7 = XEXP (x5, 1);
  if (GET_MODE (x7) != i2
      || !vector_operand (operands[2], i1)
      || !const1_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern699 (rtx x1, machine_mode i1)
{
  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) != i1)
    return -1;
  switch (GET_MODE (operands[1]))
    {
    case SImode:
      if (!nonimmediate_operand (operands[1], SImode)
          || !register_operand (operands[0], SImode))
        return -1;
      x4 = XVECEXP (x1, 0, 1);
      x5 = XEXP (x4, 1);
      if (GET_MODE (x5) != SImode)
        return -1;
      return 0;

    case DImode:
      if (!nonimmediate_operand (operands[1], DImode)
          || !register_operand (operands[0], DImode))
        return -1;
      x4 = XVECEXP (x1, 0, 1);
      x5 = XEXP (x4, 1);
      if (GET_MODE (x5) != DImode)
        return -1;
      return 1;

    default:
      return -1;
    }
}

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

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

static int
pattern702 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != CONST
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != UNSPEC
      || XVECLEN (x2, 0) != 1
      || XINT (x2, 1) != 6
      || GET_MODE (x2) != i1)
    return -1;
  return 0;
}

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

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

static int
pattern705 (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) != i2
      || !register_operand (operands[1], i2)
      || !vector_move_operand (operands[2], i2)
      || !register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern706 (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
      || !vector_operand (operands[1], i1)
      || !register_operand (operands[2], i1))
    return -1;
  return 0;
}

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

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

    case V2DFmode:
      if (pattern707 (x1, V2DFmode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern709 (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 = XVECEXP (x2, 0, 0);
  operands[4] = x3;
  if (!const48_operand (operands[4], SImode))
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 1);
  return pattern708 (x5); /* [-1, 1] */
}

static int
pattern710 (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
pattern711 (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
pattern712 (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
pattern713 (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
      || !nonimmediate_operand (operands[1], i1)
      || !nonimmediate_operand (operands[2], i1))
    return -1;
  x3 = XEXP (x1, 2);
  if (GET_MODE (x3) != i1
      || !nonimmediate_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern714 (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
pattern715 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!nonimmediate_operand (operands[1], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !const_int_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern716 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[0], i1))
    return -1;
  switch (GET_MODE (operands[2]))
    {
    case V8SImode:
      if (!register_operand (operands[2], V8SImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern717 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  if (!vsib_mem_operator (operands[5], i1))
    return -1;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i1
      || !register_operand (operands[6], QImode)
      || !register_operand (operands[3], i1))
    return -1;
  x3 = XEXP (x1, 0);
  x4 = XEXP (x3, 0);
  switch (GET_MODE (x4))
    {
    case SImode:
      return pattern716 (SImode); /* [-1, 1] */

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

    default:
      return -1;
    }
}

static int
pattern718 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  if (!vsib_mem_operator (operands[5], i1))
    return -1;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i1
      || !register_operand (operands[6], QImode))
    return -1;
  x3 = XEXP (x1, 0);
  x4 = XEXP (x3, 0);
  switch (GET_MODE (x4))
    {
    case SImode:
      return 0;

    case DImode:
      return 1;

    default:
      return -1;
    }
}

static int
pattern719 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[0], i1))
    return -1;
  switch (GET_MODE (operands[2]))
    {
    case V4SImode:
      if (!register_operand (operands[2], V4SImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern720 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  if (!vsib_mem_operator (operands[5], i1))
    return -1;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i1
      || !register_operand (operands[6], QImode)
      || !register_operand (operands[3], i1))
    return -1;
  x3 = XEXP (x1, 0);
  x4 = XEXP (x3, 0);
  switch (GET_MODE (x4))
    {
    case SImode:
      return pattern719 (SImode); /* [-1, 1] */

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

    default:
      return -1;
    }
}

static int
pattern721 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[0], i1))
    return -1;
  switch (GET_MODE (operands[2]))
    {
    case V4SImode:
      if (!register_operand (operands[2], V4SImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern722 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  if (!vsib_mem_operator (operands[5], i1))
    return -1;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i1
      || !register_operand (operands[6], QImode)
      || !register_operand (operands[3], i1))
    return -1;
  x3 = XEXP (x1, 0);
  x4 = XEXP (x3, 0);
  switch (GET_MODE (x4))
    {
    case SImode:
      return pattern721 (SImode); /* [-1, 1] */

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

    default:
      return -1;
    }
}

static int
pattern723 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], V4SFmode)
      || GET_MODE (x1) != V4SFmode)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != V4SFmode)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != V8SFmode
      || !vector_operand (operands[1], V4SFmode))
    return -1;
  x4 = XEXP (x1, 1);
  operands[2] = x4;
  if (!vector_move_operand (operands[2], V4SFmode))
    return -1;
  x5 = XEXP (x1, 2);
  operands[3] = x5;
  x6 = XEXP (x3, 1);
  if (!rtx_equal_p (x6, operands[1]))
    return -1;
  return 0;
}

static int
pattern724 (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)
      || !nonimmediate_operand (operands[2], i1)
      || !vector_move_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern725 (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)
      || !vector_operand (operands[2], i1)
      || !vector_move_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern726 (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
      || !nonimmediate_operand (operands[1], i1)
      || !const_0_to_3_operand (operands[2], VOIDmode)
      || !const_0_to_3_operand (operands[3], VOIDmode)
      || !const_0_to_3_operand (operands[4], VOIDmode)
      || !const_0_to_3_operand (operands[5], VOIDmode)
      || !vector_move_operand (operands[6], i1))
    return -1;
  return 0;
}

static int
pattern727 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 4);
  operands[2] = x2;
  if (!const_4_to_7_operand (operands[2], VOIDmode))
    return -1;
  x3 = XVECEXP (x1, 0, 5);
  operands[3] = x3;
  if (!const_4_to_7_operand (operands[3], VOIDmode))
    return -1;
  x4 = XVECEXP (x1, 0, 6);
  operands[4] = x4;
  if (!const_4_to_7_operand (operands[4], VOIDmode))
    return -1;
  x5 = XVECEXP (x1, 0, 7);
  operands[5] = x5;
  if (!const_4_to_7_operand (operands[5], VOIDmode))
    return -1;
  return 0;
}

static int
pattern728 (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, x7;
  int res ATTRIBUTE_UNUSED;
  if (!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) != i3)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) != i3)
    return -1;
  x5 = XEXP (x4, 0);
  if (GET_MODE (x5) != i3)
    return -1;
  x6 = XEXP (x5, 0);
  if (GET_MODE (x6) != i3
      || !vector_operand (operands[1], i2))
    return -1;
  x7 = XEXP (x5, 1);
  if (GET_MODE (x7) != i3
      || !vector_operand (operands[2], i2)
      || !const1_operand (operands[5], i2)
      || !vector_move_operand (operands[3], i2)
      || !register_operand (operands[4], i1))
    return -1;
  return 0;
}

static int
pattern729 (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);
  if (XWINT (x2, 0) != 2LL)
    return -1;
  x3 = XVECEXP (x1, 0, 3);
  if (XWINT (x3, 0) != 2LL)
    return -1;
  x4 = XVECEXP (x1, 0, 4);
  if (XWINT (x4, 0) != 4LL)
    return -1;
  x5 = XVECEXP (x1, 0, 5);
  if (XWINT (x5, 0) != 4LL)
    return -1;
  x6 = XVECEXP (x1, 0, 6);
  if (XWINT (x6, 0) != 6LL)
    return -1;
  x7 = XVECEXP (x1, 0, 7);
  if (XWINT (x7, 0) != 6LL)
    return -1;
  return 0;
}

static int
pattern730 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[1], i1)
      || !float_operator (operands[3], i1))
    return -1;
  switch (GET_MODE (operands[2]))
    {
    case HImode:
      if (!memory_operand (operands[2], HImode))
        return -1;
      return 0;

    case SImode:
      if (!memory_operand (operands[2], SImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern731 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], QImode)
      || GET_MODE (x1) != QImode)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != QImode
      || !const_0_to_31_operand (operands[3], SImode))
    return -1;
  return 0;
}

static int
pattern732 (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
pattern733 (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 = XVECEXP (x1, 0, 2);
  if (GET_MODE (x2) != i1
      || !register_operand (operands[3], i1))
    return -1;
  return 0;
}

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

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

static int
pattern736 (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], i2)
      || GET_MODE (x1) != i2)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i2
      || !register_operand (operands[1], i3)
      || !vector_move_operand (operands[2], i2)
      || !register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern737 (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
      || !vector_move_operand (operands[2], i1)
      || !register_operand (operands[3], QImode))
    return -1;
  switch (GET_MODE (operands[1]))
    {
    case V8SFmode:
      if (!nonimmediate_operand (operands[1], V8SFmode))
        return -1;
      return 0;

    case V8DFmode:
      if (!nonimmediate_operand (operands[1], V8DFmode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern738 (rtx x1, machine_mode i1)
{
  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_MODE (x3) != i1
      || !register_operand (operands[2], i1))
    return -1;
  switch (GET_MODE (operands[1]))
    {
    case SImode:
      if (!register_operand (operands[1], SImode)
          || !register_operand (operands[0], SImode))
        return -1;
      x4 = XVECEXP (x1, 0, 1);
      x5 = XEXP (x4, 1);
      if (GET_MODE (x5) != SImode)
        return -1;
      return 0;

    case DImode:
      if (!register_operand (operands[1], DImode)
          || !register_operand (operands[0], DImode))
        return -1;
      x4 = XVECEXP (x1, 0, 1);
      x5 = XEXP (x4, 1);
      if (GET_MODE (x5) != DImode)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern739 (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[6], i2)
      || !register_operand (operands[2], i1))
    return -1;
  switch (GET_MODE (x1))
    {
    case SImode:
      if (!vsib_address_operand (operands[3], SImode))
        return -1;
      return 0;

    case DImode:
      if (!vsib_address_operand (operands[3], DImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern740 (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], i2)
      || GET_MODE (x1) != i2
      || !vsib_mem_operator (operands[5], i1))
    return -1;
  switch (GET_MODE (operands[6]))
    {
    case HImode:
      x2 = XVECEXP (x1, 0, 2);
      x3 = XEXP (x2, 0);
      return pattern739 (x3, V16SImode, HImode); /* [-1, 1] */

    case QImode:
      x2 = XVECEXP (x1, 0, 2);
      x3 = XEXP (x2, 0);
      res = pattern739 (x3, V8DImode, QImode);
      if (res >= 0)
        return res + 2; /* [2, 3] */
      return -1;

    default:
      return -1;
    }
}

static int
pattern741 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[3], i1))
    return -1;
  switch (GET_MODE (operands[2]))
    {
    case V8SImode:
      if (!register_operand (operands[2], V8SImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern742 (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], i2)
      || GET_MODE (x1) != i2
      || !register_operand (operands[6], QImode)
      || !vsib_mem_operator (operands[5], i1))
    return -1;
  x2 = XVECEXP (x1, 0, 2);
  x3 = XEXP (x2, 0);
  switch (GET_MODE (x3))
    {
    case SImode:
      return pattern741 (SImode); /* [-1, 1] */

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

    default:
      return -1;
    }
}

static int
pattern743 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[3], i1))
    return -1;
  switch (GET_MODE (operands[2]))
    {
    case V8SImode:
      if (!register_operand (operands[2], V8SImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern744 (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], i2)
      || GET_MODE (x1) != i2
      || !register_operand (operands[6], QImode)
      || !vsib_mem_operator (operands[5], i1))
    return -1;
  x2 = XVECEXP (x1, 0, 2);
  x3 = XEXP (x2, 0);
  switch (GET_MODE (x3))
    {
    case SImode:
      return pattern743 (SImode); /* [-1, 1] */

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

    default:
      return -1;
    }
}

static int
pattern745 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[3], i1))
    return -1;
  switch (GET_MODE (operands[2]))
    {
    case V4SImode:
      if (!register_operand (operands[2], V4SImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern746 (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], i2)
      || GET_MODE (x1) != i2
      || !register_operand (operands[6], QImode)
      || !vsib_mem_operator (operands[5], i1))
    return -1;
  x2 = XVECEXP (x1, 0, 2);
  x3 = XEXP (x2, 0);
  switch (GET_MODE (x3))
    {
    case SImode:
      return pattern745 (SImode); /* [-1, 1] */

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

    default:
      return -1;
    }
}

static int
pattern747 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[3], i1))
    return -1;
  switch (GET_MODE (operands[2]))
    {
    case V4SImode:
      if (!register_operand (operands[2], V4SImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern748 (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], i2)
      || GET_MODE (x1) != i2
      || !register_operand (operands[6], QImode)
      || !vsib_mem_operator (operands[5], i1))
    return -1;
  x2 = XVECEXP (x1, 0, 2);
  x3 = XEXP (x2, 0);
  switch (GET_MODE (x3))
    {
    case SImode:
      return pattern747 (SImode); /* [-1, 1] */

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

    default:
      return -1;
    }
}

static int
pattern749 (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)
      || !nonimmediate_operand (operands[2], i1)
      || !const_0_to_3_operand (operands[3], VOIDmode)
      || !const_0_to_3_operand (operands[4], VOIDmode)
      || !const_4_to_7_operand (operands[5], VOIDmode)
      || !const_4_to_7_operand (operands[6], VOIDmode)
      || !vector_move_operand (operands[7], i1))
    return -1;
  return 0;
}

static int
pattern750 (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)
      || !nonimmediate_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern751 ()
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!const_0_to_7_operand (operands[4], VOIDmode)
      || !const_0_to_7_operand (operands[5], VOIDmode)
      || !const_0_to_7_operand (operands[6], VOIDmode)
      || !const_8_to_15_operand (operands[7], VOIDmode)
      || !const_8_to_15_operand (operands[8], VOIDmode)
      || !const_8_to_15_operand (operands[9], VOIDmode)
      || !const_8_to_15_operand (operands[10], VOIDmode))
    return -1;
  return 0;
}

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

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

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

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

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

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

static int
pattern758 (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, 1);
  x4 = XEXP (x3, 1);
  if (!rtx_equal_p (x4, operands[2]))
    return -1;
  x5 = XEXP (x3, 0);
  switch (XWINT (x5, 0))
    {
    case 64LL:
      return pattern757 (x1, DImode); /* [-1, 0] */

    case 32LL:
      if (pattern757 (x1, SImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern759 (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
      || !register_operand (operands[1], i2)
      || !register_operand (operands[2], i2)
      || !nonimmediate_operand (operands[3], i1))
    return -1;
  return 0;
}

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

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

static int
pattern762 (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)
      || !addsub_vs_operator (operands[7], i1)
      || GET_MODE (x1) != i2)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !register_operand (operands[1], i1)
      || !vector_operand (operands[2], i1))
    return -1;
  x3 = XEXP (x1, 1);
  if (GET_MODE (x3) != i1
      || !vector_operand (operands[3], i1)
      || !vector_operand (operands[4], i1))
    return -1;
  return 0;
}

static int
pattern763 (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)
      || !addsub_vs_operator (operands[7], i1)
      || GET_MODE (x1) != i2)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !vector_operand (operands[1], i1)
      || !vector_operand (operands[2], i1))
    return -1;
  x3 = XEXP (x1, 1);
  if (GET_MODE (x3) != i1
      || !register_operand (operands[3], i1)
      || !vector_operand (operands[4], i1))
    return -1;
  return 0;
}

static int
pattern764 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[4], i1))
    return -1;
  switch (GET_MODE (operands[3]))
    {
    case V8SImode:
      if (!register_operand (operands[3], V8SImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern765 (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], i2)
      || GET_MODE (x1) != i2
      || !register_operand (operands[1], i2)
      || !register_operand (operands[7], QImode)
      || !vsib_mem_operator (operands[6], i1))
    return -1;
  x2 = XVECEXP (x1, 0, 2);
  x3 = XEXP (x2, 0);
  switch (GET_MODE (x3))
    {
    case SImode:
      return pattern764 (SImode); /* [-1, 1] */

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

    default:
      return -1;
    }
}

static int
pattern766 (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
      || !register_operand (operands[7], QImode)
      || !vsib_mem_operator (operands[6], i1))
    return -1;
  return 0;
}

static int
pattern767 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[4], i1))
    return -1;
  switch (GET_MODE (operands[3]))
    {
    case V4SImode:
      if (!register_operand (operands[3], V4SImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern768 (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], i2)
      || GET_MODE (x1) != i2
      || !register_operand (operands[1], i2)
      || !register_operand (operands[7], QImode)
      || !vsib_mem_operator (operands[6], i1))
    return -1;
  x2 = XVECEXP (x1, 0, 2);
  x3 = XEXP (x2, 0);
  switch (GET_MODE (x3))
    {
    case SImode:
      return pattern767 (SImode); /* [-1, 1] */

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

    default:
      return -1;
    }
}

static int
pattern769 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[4], i1))
    return -1;
  switch (GET_MODE (operands[3]))
    {
    case V4SImode:
      if (!register_operand (operands[3], V4SImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern770 (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], i2)
      || GET_MODE (x1) != i2
      || !register_operand (operands[1], i2)
      || !register_operand (operands[7], QImode)
      || !vsib_mem_operator (operands[6], i1))
    return -1;
  x2 = XVECEXP (x1, 0, 2);
  x3 = XEXP (x2, 0);
  switch (GET_MODE (x3))
    {
    case SImode:
      return pattern769 (SImode); /* [-1, 1] */

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

    default:
      return -1;
    }
}

static int
pattern771 (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, 1);
  x5 = XVECEXP (x4, 0, 0);
  switch (XWINT (x5, 0))
    {
    case 0LL:
      x6 = XVECEXP (x4, 0, 1);
      if (XWINT (x6, 0) != 2LL)
        return -1;
      x7 = XEXP (x1, 1);
      x8 = XEXP (x7, 0);
      x9 = XEXP (x8, 1);
      x10 = XVECEXP (x9, 0, 0);
      if (XWINT (x10, 0) != 0LL)
        return -1;
      x11 = XVECEXP (x9, 0, 1);
      if (XWINT (x11, 0) != 2LL)
        return -1;
      return 0;

    case 1LL:
      x6 = XVECEXP (x4, 0, 1);
      if (XWINT (x6, 0) != 3LL)
        return -1;
      x7 = XEXP (x1, 1);
      x8 = XEXP (x7, 0);
      x9 = XEXP (x8, 1);
      x10 = XVECEXP (x9, 0, 0);
      if (XWINT (x10, 0) != 1LL)
        return -1;
      x11 = XVECEXP (x9, 0, 1);
      if (XWINT (x11, 0) != 3LL)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern772 (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);
  if (XWINT (x2, 0) != 2LL)
    return -1;
  x3 = XVECEXP (x1, 0, 3);
  if (XWINT (x3, 0) != 2LL)
    return -1;
  x4 = XVECEXP (x1, 0, 4);
  if (XWINT (x4, 0) != 4LL)
    return -1;
  x5 = XVECEXP (x1, 0, 5);
  if (XWINT (x5, 0) != 4LL)
    return -1;
  x6 = XVECEXP (x1, 0, 6);
  if (XWINT (x6, 0) != 6LL)
    return -1;
  x7 = XVECEXP (x1, 0, 7);
  if (XWINT (x7, 0) != 6LL)
    return -1;
  return 0;
}

static int
pattern773 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[1], i1)
      || !const_0_to_15_operand (operands[2], VOIDmode)
      || !const_0_to_15_operand (operands[3], VOIDmode)
      || !const_0_to_15_operand (operands[4], VOIDmode)
      || !const_0_to_15_operand (operands[5], VOIDmode))
    return -1;
  return 0;
}

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

static int
pattern775 (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) != i1
      || !register_operand (operands[1], i1)
      || !register_operand (operands[2], i1)
      || !vector_operand (operands[3], i2)
      || !const0_operand (operands[5], i1))
    return -1;
  return 0;
}

static int
pattern776 (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], 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) != i2
      || !register_operand (operands[1], i2)
      || !register_operand (operands[2], i2)
      || !vector_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern777 (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, x7, x8;
  int res ATTRIBUTE_UNUSED;
  if (!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) != i3)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) != i3)
    return -1;
  x5 = XEXP (x4, 0);
  if (GET_MODE (x5) != i3)
    return -1;
  x6 = XEXP (x5, 0);
  if (GET_MODE (x6) != i3)
    return -1;
  x7 = XEXP (x6, 0);
  if (GET_MODE (x7) != i3
      || !vector_operand (operands[1], i2))
    return -1;
  x8 = XEXP (x6, 1);
  if (GET_MODE (x8) != i3
      || !vector_operand (operands[2], i2)
      || !const1_operand (operands[3], i2)
      || !vector_move_operand (operands[4], i2)
      || !register_operand (operands[5], i1))
    return -1;
  return 0;
}

static int
pattern778 (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, 4);
  if (XWINT (x3, 0) != 6LL)
    return -1;
  x4 = XVECEXP (x2, 0, 5);
  if (XWINT (x4, 0) != 14LL)
    return -1;
  x5 = XVECEXP (x2, 0, 6);
  if (XWINT (x5, 0) != 7LL)
    return -1;
  x6 = XVECEXP (x2, 0, 7);
  if (XWINT (x6, 0) != 15LL)
    return -1;
  x7 = XEXP (x1, 0);
  x8 = XEXP (x7, 1);
  operands[2] = x8;
  return 0;
}

static int
pattern779 (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 (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i1)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) != i3
      || !nonimmediate_operand (operands[1], i2))
    return -1;
  x5 = XEXP (x2, 1);
  if (GET_MODE (x5) != i1)
    return -1;
  x6 = XEXP (x5, 0);
  if (GET_MODE (x6) != i3
      || !nonimmediate_operand (operands[2], i2)
      || !register_operand (operands[3], i1))
    return -1;
  return 0;
}

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

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

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

static int
pattern783 (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], i2)
      || GET_MODE (x1) != i2
      || !bnd_mem_operator (operands[3], i1))
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i1
      || !address_mpx_no_index_operand (operands[1], i1)
      || !register_operand (operands[2], i1))
    return -1;
  return 0;
}

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

static int
pattern785 (rtx x1)
{
  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) != 105
      || GET_MODE (x1) != V16QImode)
    return -1;
  return 0;
}

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

static int
pattern787 (rtx x1, machine_mode i1)
{
  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_MODE (x3) != i1)
    return -1;
  x4 = XEXP (x2, 1);
  if (GET_MODE (x4) != i1)
    return -1;
  switch (GET_MODE (operands[2]))
    {
    case SImode:
      return pattern786 (x1, SImode); /* [-1, 0] */

    case DImode:
      if (pattern786 (x1, DImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern788 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != SET)
    return -1;
  x2 = XEXP (x1, 1);
  if (!rtx_equal_p (x2, operands[0]))
    return -1;
  x3 = XEXP (x1, 0);
  if (!rtx_equal_p (x3, operands[1]))
    return -1;
  x4 = PATTERN (peep2_next_insn (3));
  if (GET_CODE (x4) != SET)
    return -1;
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != COMPARE)
    return -1;
  x6 = XEXP (x5, 1);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x7 = XEXP (x4, 0);
  if (GET_CODE (x7) != REG
      || REGNO (x7) != 17)
    return -1;
  x8 = XEXP (x5, 0);
  if (!rtx_equal_p (x8, operands[0]))
    return -1;
  return 0;
}

static int
pattern789 (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);
  if (!rtx_equal_p (x3, operands[0]))
    return -1;
  x4 = XEXP (x1, 0);
  if (!rtx_equal_p (x4, operands[0]))
    return -1;
  x5 = PATTERN (peep2_next_insn (2));
  return pattern788 (x5); /* [-1, 0] */
}

static int
pattern790 (rtx x1, machine_mode i1)
{
  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;
  if (!x86_64_nonmemory_operand (operands[2], i1)
      || pattern789 (x1) != 0)
    return -1;
  return 0;
}

static int
pattern791 (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, 0);
  x3 = XEXP (x2, 1);
  x4 = XVECEXP (x3, 0, 1);
  operands[4] = x4;
  if (!const_int_operand (operands[4], SImode))
    return -1;
  x5 = XEXP (x2, 0);
  if (!rtx_equal_p (x5, operands[0]))
    return -1;
  x6 = XVECEXP (x1, 0, 1);
  x7 = XEXP (x6, 1);
  x8 = XEXP (x7, 0);
  if (!rtx_equal_p (x8, operands[1]))
    return -1;
  x9 = XEXP (x7, 1);
  if (!rtx_equal_p (x9, operands[0]))
    return -1;
  x10 = XEXP (x6, 0);
  if (!rtx_equal_p (x10, operands[1]))
    return -1;
  x11 = PATTERN (peep2_next_insn (2));
  if (GET_CODE (x11) != SET)
    return -1;
  x12 = XEXP (x11, 1);
  if (GET_CODE (x12) != COMPARE
      || GET_MODE (x12) != CCZmode)
    return -1;
  x13 = XEXP (x11, 0);
  if (GET_CODE (x13) != REG
      || REGNO (x13) != 17
      || GET_MODE (x13) != CCZmode)
    return -1;
  x14 = XEXP (x12, 1);
  operands[3] = x14;
  return 0;
}

static int
pattern792 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[0], i1))
    return -1;
  switch (GET_MODE (operands[2]))
    {
    case V16SImode:
      if (!register_operand (operands[2], V16SImode)
          || !register_operand (operands[6], HImode)
          || !register_operand (operands[3], V16SImode))
        return -1;
      return 0;

    case V8DImode:
      if (!register_operand (operands[2], V8DImode)
          || !register_operand (operands[6], QImode)
          || !register_operand (operands[3], V8SImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern793 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[0], i1))
    return -1;
  switch (GET_MODE (operands[2]))
    {
    case V16SImode:
      if (!register_operand (operands[2], V16SImode)
          || !register_operand (operands[6], HImode)
          || !register_operand (operands[3], V16SFmode))
        return -1;
      return 0;

    case V8DImode:
      if (!register_operand (operands[2], V8DImode)
          || !register_operand (operands[6], QImode)
          || !register_operand (operands[3], V8SFmode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

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

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

static int
pattern796 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[0], i1))
    return -1;
  switch (GET_MODE (operands[2]))
    {
    case V8SImode:
      if (!register_operand (operands[2], V8SImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern797 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  if (!vsib_mem_operator (operands[5], i1))
    return -1;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i1
      || !register_operand (operands[6], QImode)
      || !register_operand (operands[3], i1)
      || !scratch_operand (operands[1], QImode))
    return -1;
  x3 = XEXP (x1, 0);
  x4 = XEXP (x3, 0);
  switch (GET_MODE (x4))
    {
    case SImode:
      return pattern796 (SImode); /* [-1, 1] */

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

    default:
      return -1;
    }
}

static int
pattern798 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  if (!vsib_mem_operator (operands[5], i1))
    return -1;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i1
      || !register_operand (operands[6], QImode)
      || !scratch_operand (operands[1], QImode))
    return -1;
  x3 = XEXP (x1, 0);
  x4 = XEXP (x3, 0);
  switch (GET_MODE (x4))
    {
    case SImode:
      return 0;

    case DImode:
      return 1;

    default:
      return -1;
    }
}

static int
pattern799 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[0], i1))
    return -1;
  switch (GET_MODE (operands[2]))
    {
    case V4SImode:
      if (!register_operand (operands[2], V4SImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern800 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  if (!vsib_mem_operator (operands[5], i1))
    return -1;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i1
      || !register_operand (operands[6], QImode)
      || !register_operand (operands[3], i1)
      || !scratch_operand (operands[1], QImode))
    return -1;
  x3 = XEXP (x1, 0);
  x4 = XEXP (x3, 0);
  switch (GET_MODE (x4))
    {
    case SImode:
      return pattern799 (SImode); /* [-1, 1] */

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

    default:
      return -1;
    }
}

static int
pattern801 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[0], i1))
    return -1;
  switch (GET_MODE (operands[2]))
    {
    case V4SImode:
      if (!register_operand (operands[2], V4SImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern802 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  if (!vsib_mem_operator (operands[5], i1))
    return -1;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i1
      || !register_operand (operands[6], QImode)
      || !register_operand (operands[3], i1)
      || !scratch_operand (operands[1], QImode))
    return -1;
  x3 = XEXP (x1, 0);
  x4 = XEXP (x3, 0);
  switch (GET_MODE (x4))
    {
    case SImode:
      return pattern801 (SImode); /* [-1, 1] */

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

    default:
      return -1;
    }
}

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

static int
pattern804 (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
      || !register_operand (operands[1], i1)
      || !nonimmediate_operand (operands[2], i1))
    return -1;
  x3 = XVECEXP (x2, 0, 2);
  if (GET_MODE (x3) != i1
      || !register_operand (operands[4], i2))
    return -1;
  return 0;
}

static int
pattern805 (machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[2], i2)
      || !register_operand (operands[3], i2)
      || !const0_operand (operands[4], i2)
      || !register_operand (operands[5], i1))
    return -1;
  return 0;
}

static int
pattern806 (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) != i2
      || !register_operand (operands[1], i2)
      || pattern805 (i1, i2) != 0)
    return -1;
  return 0;
}

static int
pattern807 (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) != i2
      || !register_operand (operands[1], i2)
      || !nonimmediate_operand (operands[2], i2)
      || !register_operand (operands[4], i1))
    return -1;
  return 0;
}

static int
pattern808 (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)
      || !nonimmediate_operand (operands[2], i1)
      || !register_operand (operands[3], i1)
      || !register_operand (operands[4], QImode))
    return -1;
  x3 = XEXP (x1, 1);
  if (!rtx_equal_p (x3, operands[3]))
    return -1;
  return 0;
}

static int
pattern809 (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[2], i2)
      || GET_MODE (x1) != i2
      || !register_operand (operands[3], i2)
      || !const0_operand (operands[4], i2)
      || !register_operand (operands[5], i1))
    return -1;
  return 0;
}

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

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

static int
pattern812 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  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)
      || !nonimmediate_operand (operands[2], i1))
    return -1;
  x3 = XEXP (x2, 2);
  if (GET_MODE (x3) != i1
      || !nonimmediate_operand (operands[3], i1)
      || !register_operand (operands[4], QImode))
    return -1;
  x4 = XEXP (x1, 1);
  if (!rtx_equal_p (x4, operands[1]))
    return -1;
  return 0;
}

static int
pattern813 (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], 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) != i2
      || !register_operand (operands[1], i2)
      || pattern805 (i1, i2) != 0)
    return -1;
  return 0;
}

static int
pattern814 (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], 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) != i2
      || !register_operand (operands[1], i2)
      || !nonimmediate_operand (operands[2], i2)
      || !register_operand (operands[4], i1))
    return -1;
  return 0;
}

static int
pattern815 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  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) != i1
      || !nonimmediate_operand (operands[1], i1)
      || !nonimmediate_operand (operands[2], i1))
    return -1;
  x4 = XEXP (x2, 2);
  if (GET_MODE (x4) != i1
      || !nonimmediate_operand (operands[3], i1)
      || !const0_operand (operands[4], i1)
      || !register_operand (operands[5], QImode))
    return -1;
  return 0;
}

static int
pattern816 (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 (!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) != i2
      || !register_operand (operands[1], i2))
    return -1;
  x4 = XEXP (x2, 2);
  return pattern809 (x4, i1, i2); /* [-1, 0] */
}

static int
pattern817 (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 (!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) != i2
      || !register_operand (operands[1], i2)
      || !nonimmediate_operand (operands[2], i2))
    return -1;
  x4 = XEXP (x2, 2);
  if (GET_MODE (x4) != i2
      || !register_operand (operands[4], i1))
    return -1;
  return 0;
}

static int
pattern818 (rtx x1, machine_mode i1)
{
  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) != i1)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i1
      || !register_operand (operands[1], i1)
      || !nonimmediate_operand (operands[2], i1))
    return -1;
  x4 = XEXP (x2, 2);
  if (GET_MODE (x4) != i1
      || !register_operand (operands[3], i1)
      || !register_operand (operands[4], QImode))
    return -1;
  x5 = XEXP (x1, 1);
  if (!rtx_equal_p (x5, operands[3]))
    return -1;
  return 0;
}

static int
pattern819 (rtx x1, machine_mode 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, 0);
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i1)
    return -1;
  x4 = XEXP (x2, 1);
  if (GET_MODE (x4) != i1)
    return -1;
  x5 = XEXP (x4, 0);
  if (GET_MODE (x5) != i1)
    return -1;
  x6 = XVECEXP (x1, 0, 1);
  x7 = XEXP (x6, 0);
  if (GET_MODE (x7) != i1)
    return -1;
  x8 = XEXP (x6, 1);
  if (GET_MODE (x8) != i1)
    return -1;
  x9 = XEXP (x8, 0);
  if (GET_MODE (x9) != i1)
    return -1;
  return 0;
}

static int
pattern820 (rtx x1, unsigned int i1, unsigned int i2, unsigned int i3, unsigned int i4, unsigned int i5)
{
  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, 4);
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != XFmode)
    return -1;
  x4 = XVECEXP (x1, 0, 5);
  if (GET_CODE (x4) != CLOBBER)
    return -1;
  x5 = XEXP (x4, 0);
  if (GET_CODE (x5) != REG
      || REGNO (x5) != i5
      || GET_MODE (x5) != XFmode)
    return -1;
  x6 = XVECEXP (x1, 0, 6);
  if (GET_CODE (x6) != CLOBBER)
    return -1;
  x7 = XEXP (x6, 0);
  if (GET_CODE (x7) != REG
      || REGNO (x7) != i4
      || GET_MODE (x7) != XFmode)
    return -1;
  x8 = XVECEXP (x1, 0, 7);
  if (GET_CODE (x8) != CLOBBER)
    return -1;
  x9 = XEXP (x8, 0);
  if (GET_CODE (x9) != REG
      || REGNO (x9) != i3
      || GET_MODE (x9) != XFmode)
    return -1;
  x10 = XVECEXP (x1, 0, 8);
  if (GET_CODE (x10) != CLOBBER)
    return -1;
  x11 = XEXP (x10, 0);
  if (GET_CODE (x11) != REG
      || REGNO (x11) != i2
      || GET_MODE (x11) != XFmode)
    return -1;
  x12 = XVECEXP (x1, 0, 9);
  if (GET_CODE (x12) != CLOBBER)
    return -1;
  x13 = XEXP (x12, 0);
  if (GET_CODE (x13) != REG
      || REGNO (x13) != i1
      || GET_MODE (x13) != XFmode)
    return -1;
  return 0;
}

static int
pattern821 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[2], i1))
    return -1;
  switch (GET_MODE (operands[3]))
    {
    case V4SImode:
      if (!register_operand (operands[3], V4SImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern822 (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
      || !vsib_mem_operator (operands[6], i2)
      || !register_operand (operands[4], i1))
    return -1;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 0);
  switch (GET_MODE (x3))
    {
    case SImode:
      return pattern821 (SImode); /* [-1, 1] */

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

    default:
      return -1;
    }
}

static int
pattern823 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[2], i1))
    return -1;
  switch (GET_MODE (operands[3]))
    {
    case V4SImode:
      if (!register_operand (operands[3], V4SImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern824 (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
      || !vsib_mem_operator (operands[6], i2)
      || !register_operand (operands[4], i1))
    return -1;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 0);
  switch (GET_MODE (x3))
    {
    case SImode:
      return pattern823 (SImode); /* [-1, 1] */

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

    default:
      return -1;
    }
}

static int
pattern825 (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], i2)
      || GET_MODE (x1) != i2
      || !vsib_mem_operator (operands[6], i1))
    return -1;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 0);
  switch (GET_MODE (x3))
    {
    case SImode:
      return 0;

    case DImode:
      return 1;

    default:
      return -1;
    }
}

static int
pattern826 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[0], i1))
    return -1;
  switch (GET_MODE (operands[2]))
    {
    case V8SImode:
      if (!register_operand (operands[2], V8SImode)
          || !register_operand (operands[3], V8SImode))
        return -1;
      return 0;

    case V4DImode:
      if (!register_operand (operands[2], V4DImode)
          || !register_operand (operands[3], V4SImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern827 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[0], i1))
    return -1;
  switch (GET_MODE (operands[2]))
    {
    case V8SImode:
      if (!register_operand (operands[2], V8SImode)
          || !register_operand (operands[3], V8SFmode))
        return -1;
      return 0;

    case V4DImode:
      if (!register_operand (operands[2], V4DImode)
          || !register_operand (operands[3], V4SFmode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern828 (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
      || !nonimmediate_operand (operands[1], i1)
      || !nonimmediate_operand (operands[2], i1)
      || !vector_move_operand (operands[3], i1))
    return -1;
  return 0;
}

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

static int
pattern830 (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[6], i1)
      || !register_operand (operands[2], i2)
      || !scratch_operand (operands[1], i1))
    return -1;
  switch (GET_MODE (x1))
    {
    case SImode:
      if (!vsib_address_operand (operands[3], SImode))
        return -1;
      return 0;

    case DImode:
      if (!vsib_address_operand (operands[3], DImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern831 (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], i2)
      || GET_MODE (x1) != i2
      || !vsib_mem_operator (operands[5], i1))
    return -1;
  switch (GET_MODE (operands[6]))
    {
    case HImode:
      x2 = XVECEXP (x1, 0, 2);
      x3 = XEXP (x2, 0);
      return pattern830 (x3, HImode, V16SImode); /* [-1, 1] */

    case QImode:
      x2 = XVECEXP (x1, 0, 2);
      x3 = XEXP (x2, 0);
      res = pattern830 (x3, QImode, V8DImode);
      if (res >= 0)
        return res + 2; /* [2, 3] */
      return -1;

    default:
      return -1;
    }
}

static int
pattern832 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[3], i1))
    return -1;
  switch (GET_MODE (operands[2]))
    {
    case V8SImode:
      if (!register_operand (operands[2], V8SImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern833 (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], i2)
      || GET_MODE (x1) != i2
      || !register_operand (operands[6], QImode)
      || !vsib_mem_operator (operands[5], i1)
      || !scratch_operand (operands[1], QImode))
    return -1;
  x2 = XVECEXP (x1, 0, 2);
  x3 = XEXP (x2, 0);
  switch (GET_MODE (x3))
    {
    case SImode:
      return pattern832 (SImode); /* [-1, 1] */

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

    default:
      return -1;
    }
}

static int
pattern834 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[3], i1))
    return -1;
  switch (GET_MODE (operands[2]))
    {
    case V8SImode:
      if (!register_operand (operands[2], V8SImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern835 (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], i2)
      || GET_MODE (x1) != i2
      || !register_operand (operands[6], QImode)
      || !vsib_mem_operator (operands[5], i1)
      || !scratch_operand (operands[1], QImode))
    return -1;
  x2 = XVECEXP (x1, 0, 2);
  x3 = XEXP (x2, 0);
  switch (GET_MODE (x3))
    {
    case SImode:
      return pattern834 (SImode); /* [-1, 1] */

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

    default:
      return -1;
    }
}

static int
pattern836 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[3], i1))
    return -1;
  switch (GET_MODE (operands[2]))
    {
    case V4SImode:
      if (!register_operand (operands[2], V4SImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern837 (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], i2)
      || GET_MODE (x1) != i2
      || !register_operand (operands[6], QImode)
      || !vsib_mem_operator (operands[5], i1)
      || !scratch_operand (operands[1], QImode))
    return -1;
  x2 = XVECEXP (x1, 0, 2);
  x3 = XEXP (x2, 0);
  switch (GET_MODE (x3))
    {
    case SImode:
      return pattern836 (SImode); /* [-1, 1] */

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

    default:
      return -1;
    }
}

static int
pattern838 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[3], i1))
    return -1;
  switch (GET_MODE (operands[2]))
    {
    case V4SImode:
      if (!register_operand (operands[2], V4SImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern839 (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], i2)
      || GET_MODE (x1) != i2
      || !register_operand (operands[6], QImode)
      || !vsib_mem_operator (operands[5], i1)
      || !scratch_operand (operands[1], QImode))
    return -1;
  x2 = XVECEXP (x1, 0, 2);
  x3 = XEXP (x2, 0);
  switch (GET_MODE (x3))
    {
    case SImode:
      return pattern838 (SImode); /* [-1, 1] */

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

    default:
      return -1;
    }
}

static int
pattern840 (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) != i2
      || !register_operand (operands[1], i2)
      || !register_operand (operands[2], i2)
      || !register_operand (operands[3], i2)
      || !const0_operand (operands[4], i2)
      || !register_operand (operands[5], i1))
    return -1;
  return 0;
}

static int
pattern841 (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], i2)
      || GET_MODE (x1) != i2)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i2
      || !register_operand (operands[1], i2)
      || !register_operand (operands[2], i2))
    return -1;
  x3 = XVECEXP (x2, 0, 2);
  if (GET_MODE (x3) != i2
      || !register_operand (operands[3], i2)
      || !const0_operand (operands[4], i2)
      || !register_operand (operands[5], i1))
    return -1;
  return 0;
}

static int
pattern842 (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) != i2
      || !register_operand (operands[1], i2)
      || !register_operand (operands[2], i2)
      || !vector_move_operand (operands[4], i2)
      || !register_operand (operands[5], i1))
    return -1;
  return 0;
}

static int
pattern843 (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
pattern844 (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 (x2, 2);
  if (GET_MODE (x3) != i1
      || !register_operand (operands[3], i1))
    return -1;
  return 0;
}

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

static int
pattern846 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  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) != i1
      || !register_operand (operands[2], i1)
      || !register_operand (operands[1], i1))
    return -1;
  x4 = XEXP (x2, 2);
  if (GET_MODE (x4) != i1
      || !register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern847 (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[4] = x2;
  if (!register_operand (operands[4], SImode)
      || !plusminuslogic_operator (operands[3], SImode))
    return -1;
  x3 = XEXP (x1, 1);
  x4 = XEXP (x3, 0);
  if (!rtx_equal_p (x4, operands[4]))
    return -1;
  x5 = PATTERN (peep2_next_insn (2));
  return pattern788 (x5); /* [-1, 0] */
}

static int
pattern848 (rtx x1, machine_mode i1)
{
  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) != 17
      || GET_MODE (x3) != CCmode)
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 0);
  operands[3] = x5;
  if (!any_QIreg_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern849 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[3], i1))
    return -1;
  switch (GET_MODE (operands[4]))
    {
    case V4SImode:
      if (!register_operand (operands[4], V4SImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern850 (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
      || !register_operand (operands[2], i1)
      || !vsib_mem_operator (operands[7], i2)
      || !register_operand (operands[5], i1))
    return -1;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 0);
  switch (GET_MODE (x3))
    {
    case SImode:
      return pattern849 (SImode); /* [-1, 1] */

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

    default:
      return -1;
    }
}

static int
pattern851 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[3], i1))
    return -1;
  switch (GET_MODE (operands[4]))
    {
    case V4SImode:
      if (!register_operand (operands[4], V4SImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern852 (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
      || !register_operand (operands[2], i1)
      || !vsib_mem_operator (operands[7], i2)
      || !register_operand (operands[5], i1))
    return -1;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 0);
  switch (GET_MODE (x3))
    {
    case SImode:
      return pattern851 (SImode); /* [-1, 1] */

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

    default:
      return -1;
    }
}

static int
pattern853 (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)
      || !nonimmediate_operand (operands[2], i1)
      || !vector_move_operand (operands[11], i1))
    return -1;
  return 0;
}

static int
pattern854 (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)
      || !nonimmediate_operand (operands[2], i1)
      || !const_0_to_7_operand (operands[3], VOIDmode)
      || !const_0_to_7_operand (operands[4], VOIDmode)
      || !const_0_to_7_operand (operands[5], VOIDmode)
      || !const_0_to_7_operand (operands[6], VOIDmode)
      || !const_8_to_15_operand (operands[7], VOIDmode)
      || !const_8_to_15_operand (operands[8], VOIDmode)
      || !const_8_to_15_operand (operands[9], VOIDmode)
      || !const_8_to_15_operand (operands[10], VOIDmode)
      || !vector_move_operand (operands[11], i1))
    return -1;
  return 0;
}

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

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

    default:
      return -1;
    }
}

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

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

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

    default:
      return -1;
    }
}

static int
pattern858 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[4], i1))
    return -1;
  switch (GET_MODE (operands[3]))
    {
    case V8SImode:
      if (!register_operand (operands[3], V8SImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern859 (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], i2)
      || GET_MODE (x1) != i2
      || !register_operand (operands[1], i2)
      || !register_operand (operands[7], QImode)
      || !vsib_mem_operator (operands[6], i1)
      || !scratch_operand (operands[2], QImode))
    return -1;
  x2 = XVECEXP (x1, 0, 2);
  x3 = XEXP (x2, 0);
  switch (GET_MODE (x3))
    {
    case SImode:
      return pattern858 (SImode); /* [-1, 1] */

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

    default:
      return -1;
    }
}

static int
pattern860 (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
      || !register_operand (operands[7], QImode)
      || !vsib_mem_operator (operands[6], i1)
      || !scratch_operand (operands[2], QImode))
    return -1;
  return 0;
}

static int
pattern861 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[4], i1))
    return -1;
  switch (GET_MODE (operands[3]))
    {
    case V4SImode:
      if (!register_operand (operands[3], V4SImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern862 (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], i2)
      || GET_MODE (x1) != i2
      || !register_operand (operands[1], i2)
      || !register_operand (operands[7], QImode)
      || !vsib_mem_operator (operands[6], i1)
      || !scratch_operand (operands[2], QImode))
    return -1;
  x2 = XVECEXP (x1, 0, 2);
  x3 = XEXP (x2, 0);
  switch (GET_MODE (x3))
    {
    case SImode:
      return pattern861 (SImode); /* [-1, 1] */

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

    default:
      return -1;
    }
}

static int
pattern863 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[4], i1))
    return -1;
  switch (GET_MODE (operands[3]))
    {
    case V4SImode:
      if (!register_operand (operands[3], V4SImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern864 (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], i2)
      || GET_MODE (x1) != i2
      || !register_operand (operands[1], i2)
      || !register_operand (operands[7], QImode)
      || !vsib_mem_operator (operands[6], i1)
      || !scratch_operand (operands[2], QImode))
    return -1;
  x2 = XVECEXP (x1, 0, 2);
  x3 = XEXP (x2, 0);
  switch (GET_MODE (x3))
    {
    case SImode:
      return pattern863 (SImode); /* [-1, 1] */

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

    default:
      return -1;
    }
}

static int
pattern865 (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], 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)
      || !nonimmediate_operand (operands[3], i2)
      || !const0_operand (operands[5], i1)
      || !register_operand (operands[6], i3))
    return -1;
  return 0;
}

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

static int
pattern867 (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)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i1)
    return -1;
  return 0;
}

static int
pattern868 (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) != i2
      || !nonimmediate_operand (operands[1], i1))
    return -1;
  x3 = XEXP (x2, 1);
  if (!rtx_equal_p (x3, operands[1]))
    return -1;
  return 0;
}

static int
pattern869 (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[2], i3)
      || !register_operand (operands[6], i1)
      || !register_operand (operands[3], i2)
      || !scratch_operand (operands[1], i1))
    return -1;
  return 0;
}

static int
pattern870 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[0], i1))
    return -1;
  switch (GET_MODE (operands[2]))
    {
    case V16SImode:
      if (!register_operand (operands[2], V16SImode)
          || !register_operand (operands[6], HImode)
          || !register_operand (operands[3], V16SImode)
          || !scratch_operand (operands[1], HImode))
        return -1;
      return 0;

    case V8DImode:
      if (pattern869 (QImode, V8SImode, V8DImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern871 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[0], i1))
    return -1;
  switch (GET_MODE (operands[2]))
    {
    case V16SImode:
      return pattern869 (HImode, V16SFmode, V16SImode); /* [-1, 0] */

    case V8DImode:
      if (pattern869 (QImode, V8SFmode, V8DImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern872 (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], i2)
      || GET_MODE (x1) != i2)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i2
      || !register_operand (operands[1], i2)
      || !register_operand (operands[2], i2)
      || !nonimmediate_operand (operands[3], i1)
      || !register_operand (operands[5], i3))
    return -1;
  return 0;
}

static int
pattern873 (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) != i2
      || !register_operand (operands[1], i2)
      || !register_operand (operands[2], i2)
      || !register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern874 (rtx x1)
{
  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) != 105
      || GET_MODE (x1) != V16QImode)
    return -1;
  return 0;
}

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

    case V16QImode:
      if (!nonimmediate_operand (operands[0], V16QImode)
          || GET_MODE (x1) != V16QImode
          || !nonimmediate_operand (operands[1], V32QImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern876 (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 (GET_MODE (x1) != i2)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != SIGN_EXTEND
      || GET_MODE (x2) != i2)
    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)
    return -1;
  return 0;
}

static int
pattern877 (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;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (XWINT (x2, 0) != 1LL)
    return -1;
  x3 = XVECEXP (x1, 0, 2);
  if (XWINT (x3, 0) != 2LL)
    return -1;
  x4 = XVECEXP (x1, 0, 3);
  if (XWINT (x4, 0) != 3LL)
    return -1;
  x5 = XVECEXP (x1, 0, 4);
  if (XWINT (x5, 0) != 4LL)
    return -1;
  x6 = XVECEXP (x1, 0, 5);
  if (XWINT (x6, 0) != 5LL)
    return -1;
  x7 = XVECEXP (x1, 0, 6);
  if (XWINT (x7, 0) != 6LL)
    return -1;
  x8 = XVECEXP (x1, 0, 7);
  if (XWINT (x8, 0) != 7LL)
    return -1;
  x9 = XVECEXP (x1, 0, 8);
  if (XWINT (x9, 0) != 8LL)
    return -1;
  x10 = XVECEXP (x1, 0, 9);
  if (XWINT (x10, 0) != 9LL)
    return -1;
  x11 = XVECEXP (x1, 0, 10);
  if (XWINT (x11, 0) != 10LL)
    return -1;
  x12 = XVECEXP (x1, 0, 11);
  if (XWINT (x12, 0) != 11LL)
    return -1;
  x13 = XVECEXP (x1, 0, 12);
  if (XWINT (x13, 0) != 12LL)
    return -1;
  x14 = XVECEXP (x1, 0, 13);
  if (XWINT (x14, 0) != 13LL)
    return -1;
  x15 = XVECEXP (x1, 0, 14);
  if (XWINT (x15, 0) != 14LL)
    return -1;
  x16 = XVECEXP (x1, 0, 15);
  if (XWINT (x16, 0) != 15LL)
    return -1;
  return 0;
}

static int
pattern878 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[2], i1))
    return -1;
  switch (GET_MODE (operands[3]))
    {
    case V4SImode:
      if (!register_operand (operands[3], V4SImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern879 (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
      || !vsib_mem_operator (operands[6], i2)
      || !register_operand (operands[4], i1)
      || !scratch_operand (operands[1], i1))
    return -1;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 0);
  switch (GET_MODE (x3))
    {
    case SImode:
      return pattern878 (SImode); /* [-1, 1] */

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

    default:
      return -1;
    }
}

static int
pattern880 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[2], i1))
    return -1;
  switch (GET_MODE (operands[3]))
    {
    case V4SImode:
      if (!register_operand (operands[3], V4SImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern881 (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
      || !vsib_mem_operator (operands[6], i2)
      || !register_operand (operands[4], i1)
      || !scratch_operand (operands[1], i1))
    return -1;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 0);
  switch (GET_MODE (x3))
    {
    case SImode:
      return pattern880 (SImode); /* [-1, 1] */

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

    default:
      return -1;
    }
}

static int
pattern882 (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
      || !vsib_mem_operator (operands[6], i2)
      || !scratch_operand (operands[1], i1))
    return -1;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 0);
  switch (GET_MODE (x3))
    {
    case SImode:
      return 0;

    case DImode:
      return 1;

    default:
      return -1;
    }
}

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

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

    default:
      return -1;
    }
}

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

static int
pattern885 (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 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  if (GET_MODE (x5) != i2
      || !nonimmediate_operand (operands[1], i1))
    return -1;
  x6 = XEXP (x4, 1);
  if (GET_MODE (x6) != i2
      || !x86_64_sext_operand (operands[2], i1)
      || pattern884 (x1, i1, i2) != 0)
    return -1;
  return 0;
}

static int
pattern886 (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 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  if (GET_MODE (x5) != i2
      || !nonimmediate_operand (operands[1], i1))
    return -1;
  x6 = XEXP (x4, 1);
  if (GET_MODE (x6) != i2
      || !nonimmediate_operand (operands[2], i1)
      || pattern884 (x1, i1, i2) != 0)
    return -1;
  return 0;
}

static int
pattern887 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  if (GET_MODE (x5) != i2
      || !nonimmediate_operand (operands[1], i1)
      || !const_int_operand (operands[3], i2))
    return -1;
  x6 = XEXP (x3, 1);
  if (GET_MODE (x6) != i2)
    return -1;
  x7 = XEXP (x6, 0);
  if (GET_MODE (x7) != i1
      || !x86_64_immediate_operand (operands[2], i1)
      || !register_operand (operands[0], i1))
    return -1;
  x8 = XVECEXP (x1, 0, 1);
  x9 = XEXP (x8, 1);
  if (GET_MODE (x9) != i1)
    return -1;
  return 0;
}

static int
pattern888 (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;
  if (!register_operand (operands[0], i1))
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != i1
      || !register_operand (operands[1], i1))
    return -1;
  x4 = XVECEXP (x1, 0, 1);
  x5 = XEXP (x4, 0);
  if (GET_MODE (x5) != i1)
    return -1;
  x6 = XEXP (x4, 1);
  if (GET_MODE (x6) != i1)
    return -1;
  x7 = XEXP (x6, 0);
  if (GET_MODE (x7) != i1
      || !const_int_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern889 (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[0], i1)
      || GET_MODE (x1) != i1
      || !register_operand (operands[3], i1)
      || !register_operand (operands[4], i1))
    return -1;
  return 0;
}

static int
pattern890 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[3], i1))
    return -1;
  switch (GET_MODE (x1))
    {
    case SImode:
      if (!vsib_address_operand (operands[4], SImode))
        return -1;
      return 0;

    case DImode:
      if (!vsib_address_operand (operands[4], DImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern891 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[2], i1))
    return -1;
  switch (GET_MODE (operands[3]))
    {
    case V8SImode:
      if (!register_operand (operands[3], V8SImode)
          || !register_operand (operands[4], V8SImode))
        return -1;
      return 0;

    case V4DImode:
      if (!register_operand (operands[3], V4DImode)
          || !register_operand (operands[4], V4SImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern892 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[2], i1))
    return -1;
  switch (GET_MODE (operands[3]))
    {
    case V8SImode:
      if (!register_operand (operands[3], V8SImode)
          || !register_operand (operands[4], V8SFmode))
        return -1;
      return 0;

    case V4DImode:
      if (!register_operand (operands[3], V4DImode)
          || !register_operand (operands[4], V4SFmode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern893 (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) != i1)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i2
      || !nonimmediate_operand (operands[1], i1))
    return -1;
  x4 = XEXP (x1, 1);
  operands[2] = x4;
  if (!vector_move_operand (operands[2], i1))
    return -1;
  x5 = XEXP (x1, 2);
  operands[3] = x5;
  x6 = XEXP (x3, 1);
  if (!rtx_equal_p (x6, operands[1]))
    return -1;
  return 0;
}

static int
pattern894 (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) != i1)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i2
      || !register_operand (operands[1], i1))
    return -1;
  x4 = XEXP (x3, 1);
  operands[2] = x4;
  if (!vector_operand (operands[2], i1))
    return -1;
  x5 = XEXP (x1, 1);
  operands[3] = x5;
  if (!vector_move_operand (operands[3], i1))
    return -1;
  x6 = XEXP (x1, 2);
  operands[4] = x6;
  return 0;
}

static int
pattern895 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[3], i1))
    return -1;
  switch (GET_MODE (operands[4]))
    {
    case V4SImode:
      if (!register_operand (operands[4], V4SImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern896 (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
      || !register_operand (operands[2], i1)
      || !vsib_mem_operator (operands[7], i2)
      || !register_operand (operands[5], i1)
      || !scratch_operand (operands[1], i1))
    return -1;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 0);
  switch (GET_MODE (x3))
    {
    case SImode:
      return pattern895 (SImode); /* [-1, 1] */

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

    default:
      return -1;
    }
}

static int
pattern897 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[3], i1))
    return -1;
  switch (GET_MODE (operands[4]))
    {
    case V4SImode:
      if (!register_operand (operands[4], V4SImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern898 (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
      || !register_operand (operands[2], i1)
      || !vsib_mem_operator (operands[7], i2)
      || !register_operand (operands[5], i1)
      || !scratch_operand (operands[1], i1))
    return -1;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 0);
  switch (GET_MODE (x3))
    {
    case SImode:
      return pattern897 (SImode); /* [-1, 1] */

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

    default:
      return -1;
    }
}

static int
pattern899 (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], i1)
      || GET_MODE (x1) != i1
      || !vsib_mem_operator (operands[7], i2)
      || !scratch_operand (operands[1], i1))
    return -1;
  return 0;
}

static int
pattern900 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[0], i1))
    return -1;
  switch (GET_MODE (operands[2]))
    {
    case V8SImode:
      if (!register_operand (operands[2], V8SImode)
          || !register_operand (operands[3], V8SImode))
        return -1;
      return 0;

    case V4DImode:
      if (!register_operand (operands[2], V4DImode)
          || !register_operand (operands[3], V4SImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern901 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[0], i1))
    return -1;
  switch (GET_MODE (operands[2]))
    {
    case V8SImode:
      if (!register_operand (operands[2], V8SImode)
          || !register_operand (operands[3], V8SFmode))
        return -1;
      return 0;

    case V4DImode:
      if (!register_operand (operands[2], V4DImode)
          || !register_operand (operands[3], V4SFmode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern902 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  if (GET_MODE (x5) != i2
      || !nonimmediate_operand (operands[1], i1))
    return -1;
  x6 = XEXP (x4, 1);
  if (GET_MODE (x6) != i2
      || !nonimmediate_operand (operands[2], i1))
    return -1;
  x7 = XEXP (x3, 1);
  if (GET_MODE (x7) != i2)
    return -1;
  x8 = XEXP (x7, 0);
  if (GET_MODE (x8) != i1
      || !register_operand (operands[0], i1))
    return -1;
  x9 = XVECEXP (x1, 0, 1);
  x10 = XEXP (x9, 1);
  if (GET_MODE (x10) != i1
      || !scratch_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern903 ()
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (GET_MODE (operands[0]))
    {
    case CCFPmode:
      if (!ix86_fp_comparison_operator (operands[0], CCFPmode))
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case XFmode:
          if (!register_operand (operands[1], XFmode)
              || !register_operand (operands[2], XFmode))
            return -1;
          return 0;

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

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

        default:
          return -1;
        }

    case CCFPUmode:
      if (!ix86_fp_comparison_operator (operands[0], CCFPUmode))
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case SFmode:
          if (!register_operand (operands[1], SFmode)
              || !register_operand (operands[2], SFmode))
            return -1;
          return 3;

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

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

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern904 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[5], i1))
    return -1;
  switch (GET_MODE (x1))
    {
    case SImode:
      if (!vsib_address_operand (operands[3], SImode))
        return -1;
      return 0;

    case DImode:
      if (!vsib_address_operand (operands[3], DImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern905 (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[2], i1)
      || !register_operand (operands[4], i2))
    return -1;
  return pattern904 (x1, i1); /* [-1, 1] */
}

static int
pattern906 (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;
  if (!register_operand (operands[0], i2)
      || GET_MODE (x1) != i2)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i1
      || !register_operand (operands[1], i2))
    return -1;
  x4 = XEXP (x2, 1);
  if (GET_MODE (x4) != i1)
    return -1;
  x5 = XEXP (x1, 1);
  if (GET_MODE (x5) != i1)
    return -1;
  x6 = XEXP (x5, 0);
  if (GET_MODE (x6) != i1
      || !nonimmediate_operand (operands[2], i2))
    return -1;
  x7 = XEXP (x5, 1);
  if (GET_MODE (x7) != i1)
    return -1;
  return 0;
}

static int
pattern907 (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;
  if (!nonimmediate_operand (operands[1], i1))
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 1);
  if (GET_MODE (x4) != i1
      || !ix86_carry_flag_operator (operands[4], i1)
      || !nonimmediate_operand (operands[2], i1)
      || !register_operand (operands[0], i1))
    return -1;
  x5 = XVECEXP (x1, 0, 1);
  x6 = XEXP (x5, 1);
  if (GET_MODE (x6) != i1)
    return -1;
  x7 = XEXP (x6, 0);
  if (GET_MODE (x7) != i1)
    return -1;
  return 0;
}

static int
pattern908 (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) != i1
      || !register_operand (operands[1], i1)
      || !register_operand (operands[2], i1)
      || !register_operand (operands[3], i2)
      || !const0_operand (operands[5], i1))
    return -1;
  return 0;
}

static int
pattern909 (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], 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) != i2
      || !register_operand (operands[1], i2)
      || !register_operand (operands[2], i2)
      || !register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern910 ()
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (GET_MODE (operands[1]))
    {
    case SFmode:
      if (!register_operand (operands[1], SFmode)
          || !const0_operand (operands[2], SFmode))
        return -1;
      return 0;

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

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

    default:
      return -1;
    }
}

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

static int
pattern912 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!float_operator (operands[1], i1)
      || !register_operand (operands[3], i1))
    return -1;
  switch (GET_MODE (operands[2]))
    {
    case HImode:
      if (!memory_operand (operands[2], HImode))
        return -1;
      return 0;

    case SImode:
      if (!memory_operand (operands[2], SImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern913 (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, 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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  if (GET_CODE (x5) != VEC_SELECT
      || GET_MODE (x5) != V2QImode)
    return -1;
  x6 = XEXP (x5, 1);
  if (GET_CODE (x6) != PARALLEL
      || XVECLEN (x6, 0) != 2)
    return -1;
  x7 = XVECEXP (x6, 0, 0);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x8 = XVECEXP (x6, 0, 1);
  if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x9 = XEXP (x3, 1);
  if (GET_CODE (x9) != i1)
    return -1;
  x10 = XEXP (x9, 0);
  if (GET_CODE (x10) != VEC_SELECT
      || GET_MODE (x10) != V2QImode)
    return -1;
  x11 = XEXP (x10, 1);
  if (GET_CODE (x11) != PARALLEL
      || XVECLEN (x11, 0) != 2)
    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 + 9])
    return -1;
  x14 = XEXP (x2, 1);
  x15 = XEXP (x14, 0);
  if (GET_CODE (x15) != i1)
    return -1;
  x16 = XEXP (x15, 0);
  if (GET_CODE (x16) != VEC_SELECT
      || GET_MODE (x16) != V2QImode)
    return -1;
  x17 = XEXP (x16, 1);
  if (GET_CODE (x17) != PARALLEL
      || XVECLEN (x17, 0) != 2)
    return -1;
  x18 = XVECEXP (x17, 0, 0);
  if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
    return -1;
  x19 = XVECEXP (x17, 0, 1);
  if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
    return -1;
  x20 = XEXP (x14, 1);
  if (GET_CODE (x20) != i1)
    return -1;
  x21 = XEXP (x20, 0);
  if (GET_CODE (x21) != VEC_SELECT
      || GET_MODE (x21) != V2QImode)
    return -1;
  x22 = XEXP (x21, 1);
  if (GET_CODE (x22) != PARALLEL
      || XVECLEN (x22, 0) != 2)
    return -1;
  x23 = XVECEXP (x22, 0, 0);
  if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
    return -1;
  x24 = XVECEXP (x22, 0, 1);
  if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 11])
    return -1;
  x25 = XEXP (x1, 1);
  x26 = XEXP (x25, 0);
  x27 = XEXP (x26, 0);
  if (GET_CODE (x27) != i1)
    return -1;
  x28 = XEXP (x27, 0);
  if (GET_CODE (x28) != VEC_SELECT
      || GET_MODE (x28) != V2QImode)
    return -1;
  x29 = XEXP (x28, 1);
  if (GET_CODE (x29) != PARALLEL
      || XVECLEN (x29, 0) != 2)
    return -1;
  x30 = XVECEXP (x29, 0, 0);
  if (x30 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
    return -1;
  x31 = XVECEXP (x29, 0, 1);
  if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
    return -1;
  x32 = XEXP (x26, 1);
  if (GET_CODE (x32) != i1)
    return -1;
  x33 = XEXP (x32, 0);
  if (GET_CODE (x33) != VEC_SELECT
      || GET_MODE (x33) != V2QImode)
    return -1;
  x34 = XEXP (x33, 1);
  if (GET_CODE (x34) != PARALLEL
      || XVECLEN (x34, 0) != 2)
    return -1;
  x35 = XVECEXP (x34, 0, 0);
  if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
    return -1;
  x36 = XVECEXP (x34, 0, 1);
  if (x36 != const_int_rtx[MAX_SAVED_CONST_INT + 13])
    return -1;
  x37 = XEXP (x25, 1);
  x38 = XEXP (x37, 0);
  if (GET_CODE (x38) != i1)
    return -1;
  x39 = XEXP (x38, 0);
  if (GET_CODE (x39) != VEC_SELECT
      || GET_MODE (x39) != V2QImode)
    return -1;
  x40 = XEXP (x39, 1);
  if (GET_CODE (x40) != PARALLEL
      || XVECLEN (x40, 0) != 2)
    return -1;
  x41 = XVECEXP (x40, 0, 0);
  if (x41 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
    return -1;
  x42 = XVECEXP (x40, 0, 1);
  if (x42 != const_int_rtx[MAX_SAVED_CONST_INT + 14])
    return -1;
  x43 = XEXP (x37, 1);
  if (GET_CODE (x43) != i1)
    return -1;
  x44 = XEXP (x43, 0);
  if (GET_CODE (x44) != VEC_SELECT
      || GET_MODE (x44) != V2QImode)
    return -1;
  x45 = XEXP (x44, 1);
  if (GET_CODE (x45) != PARALLEL
      || XVECLEN (x45, 0) != 2)
    return -1;
  x46 = XVECEXP (x45, 0, 0);
  if (x46 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
    return -1;
  x47 = XVECEXP (x45, 0, 1);
  if (x47 != const_int_rtx[MAX_SAVED_CONST_INT + 15])
    return -1;
  x48 = XEXP (x5, 0);
  operands[1] = x48;
  if (!nonimmediate_operand (operands[1], V16QImode))
    return -1;
  x49 = XEXP (x10, 0);
  if (!rtx_equal_p (x49, operands[1]))
    return -1;
  x50 = XEXP (x16, 0);
  if (!rtx_equal_p (x50, operands[1]))
    return -1;
  x51 = XEXP (x21, 0);
  if (!rtx_equal_p (x51, operands[1]))
    return -1;
  x52 = XEXP (x28, 0);
  if (!rtx_equal_p (x52, operands[1]))
    return -1;
  x53 = XEXP (x33, 0);
  if (!rtx_equal_p (x53, operands[1]))
    return -1;
  x54 = XEXP (x39, 0);
  if (!rtx_equal_p (x54, operands[1]))
    return -1;
  x55 = XEXP (x44, 0);
  if (!rtx_equal_p (x55, operands[1]))
    return -1;
  return 0;
}

static int
pattern914 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 4);
  if (XWINT (x2, 0) != 6LL)
    return -1;
  x3 = XVECEXP (x1, 0, 5);
  if (XWINT (x3, 0) != 22LL)
    return -1;
  x4 = XVECEXP (x1, 0, 6);
  if (XWINT (x4, 0) != 7LL)
    return -1;
  x5 = XVECEXP (x1, 0, 7);
  if (XWINT (x5, 0) != 23LL)
    return -1;
  return 0;
}

static int
pattern915 (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, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  if (GET_MODE (x5) != i1
      || !ix86_carry_flag_operator (operands[4], i1)
      || !nonimmediate_operand (operands[1], i1)
      || !nonimmediate_operand (operands[2], i1)
      || !register_operand (operands[0], i1))
    return -1;
  x6 = XVECEXP (x1, 0, 1);
  x7 = XEXP (x6, 1);
  if (GET_MODE (x7) != i1)
    return -1;
  x8 = XEXP (x7, 0);
  if (GET_MODE (x8) != i1)
    return -1;
  return 0;
}

static int
pattern916 (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[7], i1)
      || !register_operand (operands[3], i2)
      || !scratch_operand (operands[2], i1))
    return -1;
  switch (GET_MODE (x1))
    {
    case SImode:
      if (!vsib_address_operand (operands[4], SImode))
        return -1;
      return 0;

    case DImode:
      if (!vsib_address_operand (operands[4], DImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern917 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!float_operator (operands[1], i1)
      || !register_operand (operands[3], i1))
    return -1;
  switch (GET_MODE (operands[2]))
    {
    case HImode:
      if (!nonimmediate_operand (operands[2], HImode))
        return -1;
      return 0;

    case SImode:
      if (!nonimmediate_operand (operands[2], SImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

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

static int
pattern919 (rtx x1)
{
  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) != 105
      || GET_MODE (x1) != V16QImode)
    return -1;
  return 0;
}

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

static int
pattern921 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 4);
  if (XWINT (x2, 0) != 6LL)
    return -1;
  x3 = XVECEXP (x1, 0, 5);
  if (XWINT (x3, 0) != 22LL)
    return -1;
  x4 = XVECEXP (x1, 0, 6);
  if (XWINT (x4, 0) != 7LL)
    return -1;
  x5 = XVECEXP (x1, 0, 7);
  if (XWINT (x5, 0) != 23LL)
    return -1;
  return 0;
}

static int
pattern922 (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 (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i3
      || !vsib_mem_operator (operands[6], i2)
      || !register_operand (operands[4], i1))
    return -1;
  x3 = XVECEXP (x2, 0, 1);
  x4 = XEXP (x3, 0);
  switch (GET_MODE (x4))
    {
    case SImode:
      if (!vsib_address_operand (operands[2], SImode))
        return -1;
      return 0;

    case DImode:
      if (!vsib_address_operand (operands[2], DImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern923 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[2], i1))
    return -1;
  switch (GET_MODE (operands[3]))
    {
    case V8SImode:
      if (!register_operand (operands[3], V8SImode)
          || !register_operand (operands[4], V8SImode))
        return -1;
      return 0;

    case V4DImode:
      if (!register_operand (operands[3], V4DImode)
          || !register_operand (operands[4], V4SImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern924 (machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vsib_address_operand (operands[2], i1))
    return -1;
  switch (GET_MODE (operands[3]))
    {
    case V8SImode:
      if (!register_operand (operands[3], V8SImode)
          || !register_operand (operands[4], V8SFmode))
        return -1;
      return 0;

    case V4DImode:
      if (!register_operand (operands[3], V4DImode)
          || !register_operand (operands[4], V4SFmode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern925 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[3], i1))
    return -1;
  switch (GET_MODE (x1))
    {
    case SImode:
      if (!vsib_address_operand (operands[4], SImode))
        return -1;
      return 0;

    case DImode:
      if (!vsib_address_operand (operands[4], DImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern926 (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))
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != i1
      || !memory_operand (operands[1], i1)
      || !register_operand (operands[2], i1)
      || !register_operand (operands[3], i2)
      || !register_operand (operands[4], i2))
    return -1;
  x4 = XVECEXP (x1, 0, 1);
  x5 = XEXP (x4, 1);
  if (GET_MODE (x5) != i1)
    return -1;
  return 0;
}

static int
pattern927 ()
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!const_0_to_7_operand (operands[4], VOIDmode)
      || !const_0_to_7_operand (operands[5], VOIDmode)
      || !const_0_to_7_operand (operands[6], VOIDmode)
      || !const_8_to_15_operand (operands[7], VOIDmode)
      || !const_8_to_15_operand (operands[8], VOIDmode)
      || !const_8_to_15_operand (operands[9], VOIDmode)
      || !const_8_to_15_operand (operands[10], VOIDmode))
    return -1;
  return 0;
}

static int
pattern928 (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 (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i3
      || !register_operand (operands[2], i1)
      || !vsib_mem_operator (operands[7], i2)
      || !register_operand (operands[5], i1))
    return -1;
  x3 = XVECEXP (x2, 0, 1);
  x4 = XEXP (x3, 0);
  switch (GET_MODE (x4))
    {
    case SImode:
      if (!vsib_address_operand (operands[3], SImode))
        return -1;
      return 0;

    case DImode:
      if (!vsib_address_operand (operands[3], DImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern929 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[5], i1))
    return -1;
  switch (GET_MODE (x1))
    {
    case SImode:
      if (!vsib_address_operand (operands[3], SImode))
        return -1;
      return 0;

    case DImode:
      if (!vsib_address_operand (operands[3], DImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern930 (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[2], i1)
      || !register_operand (operands[4], i2))
    return -1;
  return pattern929 (x1, i1); /* [-1, 1] */
}

static int
pattern931 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 12);
  if (XWINT (x2, 0) != 14LL)
    return -1;
  x3 = XVECEXP (x1, 0, 13);
  if (XWINT (x3, 0) != 30LL)
    return -1;
  x4 = XVECEXP (x1, 0, 14);
  if (XWINT (x4, 0) != 15LL)
    return -1;
  x5 = XVECEXP (x1, 0, 15);
  if (XWINT (x5, 0) != 31LL)
    return -1;
  return 0;
}

static int
pattern932 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 8);
  if (XWINT (x2, 0) != 12LL)
    return -1;
  x3 = XVECEXP (x1, 0, 9);
  if (XWINT (x3, 0) != 28LL)
    return -1;
  x4 = XVECEXP (x1, 0, 10);
  if (XWINT (x4, 0) != 13LL)
    return -1;
  x5 = XVECEXP (x1, 0, 11);
  if (XWINT (x5, 0) != 29LL
      || pattern931 (x1) != 0)
    return -1;
  return 0;
}

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

static int
pattern934 ()
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!const_0_to_15_operand (operands[4], VOIDmode)
      || !const_0_to_15_operand (operands[5], VOIDmode)
      || !const_0_to_15_operand (operands[6], VOIDmode)
      || !const_0_to_15_operand (operands[7], VOIDmode)
      || !const_0_to_15_operand (operands[8], VOIDmode)
      || !const_0_to_15_operand (operands[9], VOIDmode)
      || !const_0_to_15_operand (operands[10], VOIDmode)
      || !const_16_to_31_operand (operands[11], VOIDmode)
      || !const_16_to_31_operand (operands[12], VOIDmode)
      || !const_16_to_31_operand (operands[13], VOIDmode)
      || !const_16_to_31_operand (operands[14], VOIDmode)
      || !const_16_to_31_operand (operands[15], VOIDmode)
      || !const_16_to_31_operand (operands[16], VOIDmode)
      || !const_16_to_31_operand (operands[17], VOIDmode)
      || !const_16_to_31_operand (operands[18], VOIDmode))
    return -1;
  return 0;
}

static int
pattern935 (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 (!register_operand (operands[0], i2)
      || GET_MODE (x1) != i2)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !vsib_mem_operator (operands[6], i3)
      || !register_operand (operands[4], i2)
      || !scratch_operand (operands[1], i1))
    return -1;
  x3 = XVECEXP (x2, 0, 1);
  x4 = XEXP (x3, 0);
  switch (GET_MODE (x4))
    {
    case SImode:
      if (!vsib_address_operand (operands[2], SImode))
        return -1;
      return 0;

    case DImode:
      if (!vsib_address_operand (operands[2], DImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern936 (rtx x1)
{
  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) != 105
      || GET_MODE (x1) != V16QImode)
    return -1;
  return 0;
}

static int
pattern937 (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 (GET_CODE (x1) != SIGN_EXTEND
      || GET_MODE (x1) != i2)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != VEC_SELECT
      || GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != PARALLEL)
    return -1;
  return 0;
}

static int
pattern938 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 12);
  if (XWINT (x2, 0) != 14LL)
    return -1;
  x3 = XVECEXP (x1, 0, 13);
  if (XWINT (x3, 0) != 30LL)
    return -1;
  x4 = XVECEXP (x1, 0, 14);
  if (XWINT (x4, 0) != 15LL)
    return -1;
  x5 = XVECEXP (x1, 0, 15);
  if (XWINT (x5, 0) != 31LL)
    return -1;
  return 0;
}

static int
pattern939 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 8);
  if (XWINT (x2, 0) != 12LL)
    return -1;
  x3 = XVECEXP (x1, 0, 9);
  if (XWINT (x3, 0) != 28LL)
    return -1;
  x4 = XVECEXP (x1, 0, 10);
  if (XWINT (x4, 0) != 13LL)
    return -1;
  x5 = XVECEXP (x1, 0, 11);
  if (XWINT (x5, 0) != 29LL
      || pattern938 (x1) != 0)
    return -1;
  return 0;
}

static int
pattern940 (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 (!register_operand (operands[0], i2)
      || GET_MODE (x1) != i2)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !register_operand (operands[2], i2)
      || !vsib_mem_operator (operands[7], i3)
      || !register_operand (operands[5], i2)
      || !scratch_operand (operands[1], i1))
    return -1;
  x3 = XVECEXP (x2, 0, 1);
  x4 = XEXP (x3, 0);
  switch (GET_MODE (x4))
    {
    case SImode:
      if (!vsib_address_operand (operands[3], SImode))
        return -1;
      return 0;

    case DImode:
      if (!vsib_address_operand (operands[3], DImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

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

static int
pattern942 (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, 3);
  if (!rtx_equal_p (x4, operands[5]))
    return -1;
  x5 = XVECEXP (x3, 0, 4);
  if (!rtx_equal_p (x5, operands[6]))
    return -1;
  x6 = XVECEXP (x1, 0, 2);
  x7 = XEXP (x6, 1);
  x8 = XVECEXP (x7, 0, 0);
  if (!rtx_equal_p (x8, operands[2]))
    return -1;
  x9 = XVECEXP (x7, 0, 1);
  if (!rtx_equal_p (x9, operands[3]))
    return -1;
  return 0;
}

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

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

static int
pattern945 ()
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!const_0_to_15_operand (operands[4], VOIDmode)
      || !const_0_to_15_operand (operands[5], VOIDmode)
      || !const_0_to_15_operand (operands[6], VOIDmode)
      || !const_0_to_15_operand (operands[7], VOIDmode)
      || !const_0_to_15_operand (operands[8], VOIDmode)
      || !const_0_to_15_operand (operands[9], VOIDmode)
      || !const_0_to_15_operand (operands[10], VOIDmode)
      || !const_16_to_31_operand (operands[11], VOIDmode)
      || !const_16_to_31_operand (operands[12], VOIDmode)
      || !const_16_to_31_operand (operands[13], VOIDmode)
      || !const_16_to_31_operand (operands[14], VOIDmode)
      || !const_16_to_31_operand (operands[15], VOIDmode)
      || !const_16_to_31_operand (operands[16], VOIDmode)
      || !const_16_to_31_operand (operands[17], VOIDmode)
      || !const_16_to_31_operand (operands[18], VOIDmode))
    return -1;
  return 0;
}

static int
pattern946 (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 (XVECLEN (x1, 0) != i1)
    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 + 3])
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
    return -1;
  x5 = XVECEXP (x1, 0, 3);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
    return -1;
  x6 = XVECEXP (x1, 0, 4);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
    return -1;
  x7 = XVECEXP (x1, 0, 5);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 11])
    return -1;
  x8 = XVECEXP (x1, 0, 6);
  if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 13])
    return -1;
  x9 = XVECEXP (x1, 0, 7);
  if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 15])
    return -1;
  return 0;
}

static int
pattern947 (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) != i2
      || !register_operand (operands[1], i1))
    return -1;
  x3 = XEXP (x2, 1);
  operands[2] = x3;
  if (!nonimmediate_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern948 (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, x7, x8, x9;
  rtx x10, x11, x12, x13;
  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) != i3)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) != i2
      || !nonimmediate_operand (operands[1], i1))
    return -1;
  x5 = XEXP (x2, 1);
  if (GET_MODE (x5) != i3)
    return -1;
  x6 = XEXP (x5, 0);
  if (GET_MODE (x6) != i2
      || !nonimmediate_operand (operands[2], i1))
    return -1;
  x7 = XEXP (x1, 1);
  x8 = XEXP (x7, 0);
  x9 = XEXP (x8, 0);
  x10 = XEXP (x9, 0);
  if (!rtx_equal_p (x10, operands[1]))
    return -1;
  x11 = XEXP (x7, 1);
  x12 = XEXP (x11, 0);
  x13 = XEXP (x12, 0);
  if (!rtx_equal_p (x13, operands[2]))
    return -1;
  return 0;
}

static int
pattern949 (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, x7;
  int res ATTRIBUTE_UNUSED;
  if (!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) != i2)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) != i1
      || !register_operand (operands[1], i3))
    return -1;
  x5 = XEXP (x2, 1);
  if (GET_MODE (x5) != i2)
    return -1;
  x6 = XEXP (x5, 0);
  if (GET_MODE (x6) != i1
      || !nonimmediate_operand (operands[2], i3))
    return -1;
  x7 = XEXP (x1, 1);
  return pattern182 (x7, i1, i2); /* [-1, 0] */
}

static int
pattern950 (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, 8);
  if (XWINT (x2, 0) != 12LL)
    return -1;
  x3 = XVECEXP (x1, 0, 9);
  if (XWINT (x3, 0) != 44LL)
    return -1;
  x4 = XVECEXP (x1, 0, 10);
  if (XWINT (x4, 0) != 13LL)
    return -1;
  x5 = XVECEXP (x1, 0, 11);
  if (XWINT (x5, 0) != 45LL)
    return -1;
  x6 = XVECEXP (x1, 0, 12);
  if (XWINT (x6, 0) != 14LL)
    return -1;
  x7 = XVECEXP (x1, 0, 13);
  if (XWINT (x7, 0) != 46LL)
    return -1;
  x8 = XVECEXP (x1, 0, 14);
  if (XWINT (x8, 0) != 15LL)
    return -1;
  x9 = XVECEXP (x1, 0, 15);
  if (XWINT (x9, 0) != 47LL)
    return -1;
  return 0;
}

static int
pattern951 (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 (XVECLEN (x1, 0) != i1)
    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 + 3])
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
    return -1;
  x5 = XVECEXP (x1, 0, 3);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
    return -1;
  x6 = XVECEXP (x1, 0, 4);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
    return -1;
  x7 = XVECEXP (x1, 0, 5);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 11])
    return -1;
  x8 = XVECEXP (x1, 0, 6);
  if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 13])
    return -1;
  x9 = XVECEXP (x1, 0, 7);
  if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 15])
    return -1;
  return 0;
}

static int
pattern952 (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, 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, x67, x68, x69, x70, x71, x72, x73;
  rtx x74, x75, x76, x77, x78, x79, x80, x81;
  rtx x82, x83, x84, x85, x86, x87, x88, x89;
  rtx x90, x91, x92, x93, x94, x95, x96, x97;
  rtx x98, x99, x100, x101, x102, x103, x104, x105;
  rtx x106, x107, x108, x109, x110, x111, x112, x113;
  rtx x114, x115, x116, x117, x118, x119, x120, x121;
  rtx x122, x123, x124, x125, x126, x127, x128, x129;
  rtx x130, x131, x132, x133, x134, x135, x136, x137;
  rtx x138, x139, x140, x141, x142, x143, x144, x145;
  rtx x146, x147, x148, x149, x150, x151, x152, x153;
  rtx x154, x155, x156, x157, x158, x159;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  x6 = XEXP (x5, 0);
  if (GET_CODE (x6) != VEC_SELECT
      || GET_MODE (x6) != HImode)
    return -1;
  x7 = XEXP (x6, 1);
  if (GET_CODE (x7) != PARALLEL
      || XVECLEN (x7, 0) != 1)
    return -1;
  x8 = XVECEXP (x7, 0, 0);
  if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x9 = XEXP (x5, 1);
  if (GET_CODE (x9) != VEC_SELECT
      || GET_MODE (x9) != HImode)
    return -1;
  x10 = XEXP (x9, 1);
  if (GET_CODE (x10) != PARALLEL
      || XVECLEN (x10, 0) != 1)
    return -1;
  x11 = XVECEXP (x10, 0, 0);
  if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x12 = XEXP (x4, 1);
  if (GET_CODE (x12) != i1)
    return -1;
  x13 = XEXP (x12, 0);
  if (GET_CODE (x13) != VEC_SELECT
      || GET_MODE (x13) != HImode)
    return -1;
  x14 = XEXP (x13, 1);
  if (GET_CODE (x14) != PARALLEL
      || XVECLEN (x14, 0) != 1)
    return -1;
  x15 = XVECEXP (x14, 0, 0);
  if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
    return -1;
  x16 = XEXP (x12, 1);
  if (GET_CODE (x16) != VEC_SELECT
      || GET_MODE (x16) != HImode)
    return -1;
  x17 = XEXP (x16, 1);
  if (GET_CODE (x17) != PARALLEL
      || XVECLEN (x17, 0) != 1)
    return -1;
  x18 = XVECEXP (x17, 0, 0);
  if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
    return -1;
  x19 = XEXP (x3, 1);
  x20 = XEXP (x19, 0);
  if (GET_CODE (x20) != i1)
    return -1;
  x21 = XEXP (x20, 0);
  if (GET_CODE (x21) != VEC_SELECT
      || GET_MODE (x21) != HImode)
    return -1;
  x22 = XEXP (x21, 1);
  if (GET_CODE (x22) != PARALLEL
      || XVECLEN (x22, 0) != 1)
    return -1;
  x23 = XVECEXP (x22, 0, 0);
  if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
    return -1;
  x24 = XEXP (x20, 1);
  if (GET_CODE (x24) != VEC_SELECT
      || GET_MODE (x24) != HImode)
    return -1;
  x25 = XEXP (x24, 1);
  if (GET_CODE (x25) != PARALLEL
      || XVECLEN (x25, 0) != 1)
    return -1;
  x26 = XVECEXP (x25, 0, 0);
  if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
    return -1;
  x27 = XEXP (x19, 1);
  if (GET_CODE (x27) != i1)
    return -1;
  x28 = XEXP (x27, 0);
  if (GET_CODE (x28) != VEC_SELECT
      || GET_MODE (x28) != HImode)
    return -1;
  x29 = XEXP (x28, 1);
  if (GET_CODE (x29) != PARALLEL
      || XVECLEN (x29, 0) != 1)
    return -1;
  x30 = XVECEXP (x29, 0, 0);
  if (x30 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
    return -1;
  x31 = XEXP (x27, 1);
  if (GET_CODE (x31) != VEC_SELECT
      || GET_MODE (x31) != HImode)
    return -1;
  x32 = XEXP (x31, 1);
  if (GET_CODE (x32) != PARALLEL
      || XVECLEN (x32, 0) != 1)
    return -1;
  x33 = XVECEXP (x32, 0, 0);
  if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
    return -1;
  x34 = XEXP (x2, 1);
  x35 = XEXP (x34, 0);
  x36 = XEXP (x35, 0);
  if (GET_CODE (x36) != i1)
    return -1;
  x37 = XEXP (x36, 0);
  if (GET_CODE (x37) != VEC_SELECT
      || GET_MODE (x37) != HImode)
    return -1;
  x38 = XEXP (x37, 1);
  if (GET_CODE (x38) != PARALLEL
      || XVECLEN (x38, 0) != 1)
    return -1;
  x39 = XVECEXP (x38, 0, 0);
  if (x39 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x40 = XEXP (x36, 1);
  if (GET_CODE (x40) != VEC_SELECT
      || GET_MODE (x40) != HImode)
    return -1;
  x41 = XEXP (x40, 1);
  if (GET_CODE (x41) != PARALLEL
      || XVECLEN (x41, 0) != 1)
    return -1;
  x42 = XVECEXP (x41, 0, 0);
  if (x42 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
    return -1;
  x43 = XEXP (x35, 1);
  if (GET_CODE (x43) != i1)
    return -1;
  x44 = XEXP (x43, 0);
  if (GET_CODE (x44) != VEC_SELECT
      || GET_MODE (x44) != HImode)
    return -1;
  x45 = XEXP (x44, 1);
  if (GET_CODE (x45) != PARALLEL
      || XVECLEN (x45, 0) != 1)
    return -1;
  x46 = XVECEXP (x45, 0, 0);
  if (x46 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
    return -1;
  x47 = XEXP (x43, 1);
  if (GET_CODE (x47) != VEC_SELECT
      || GET_MODE (x47) != HImode)
    return -1;
  x48 = XEXP (x47, 1);
  if (GET_CODE (x48) != PARALLEL
      || XVECLEN (x48, 0) != 1)
    return -1;
  x49 = XVECEXP (x48, 0, 0);
  if (x49 != const_int_rtx[MAX_SAVED_CONST_INT + 11])
    return -1;
  x50 = XEXP (x34, 1);
  x51 = XEXP (x50, 0);
  if (GET_CODE (x51) != i1)
    return -1;
  x52 = XEXP (x51, 0);
  if (GET_CODE (x52) != VEC_SELECT
      || GET_MODE (x52) != HImode)
    return -1;
  x53 = XEXP (x52, 1);
  if (GET_CODE (x53) != PARALLEL
      || XVECLEN (x53, 0) != 1)
    return -1;
  x54 = XVECEXP (x53, 0, 0);
  if (x54 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
    return -1;
  x55 = XEXP (x51, 1);
  if (GET_CODE (x55) != VEC_SELECT
      || GET_MODE (x55) != HImode)
    return -1;
  x56 = XEXP (x55, 1);
  if (GET_CODE (x56) != PARALLEL
      || XVECLEN (x56, 0) != 1)
    return -1;
  x57 = XVECEXP (x56, 0, 0);
  if (x57 != const_int_rtx[MAX_SAVED_CONST_INT + 13])
    return -1;
  x58 = XEXP (x50, 1);
  if (GET_CODE (x58) != i1)
    return -1;
  x59 = XEXP (x58, 0);
  if (GET_CODE (x59) != VEC_SELECT
      || GET_MODE (x59) != HImode)
    return -1;
  x60 = XEXP (x59, 1);
  if (GET_CODE (x60) != PARALLEL
      || XVECLEN (x60, 0) != 1)
    return -1;
  x61 = XVECEXP (x60, 0, 0);
  if (x61 != const_int_rtx[MAX_SAVED_CONST_INT + 14])
    return -1;
  x62 = XEXP (x58, 1);
  if (GET_CODE (x62) != VEC_SELECT
      || GET_MODE (x62) != HImode)
    return -1;
  x63 = XEXP (x62, 1);
  if (GET_CODE (x63) != PARALLEL
      || XVECLEN (x63, 0) != 1)
    return -1;
  x64 = XVECEXP (x63, 0, 0);
  if (x64 != const_int_rtx[MAX_SAVED_CONST_INT + 15])
    return -1;
  x65 = XEXP (x1, 1);
  x66 = XEXP (x65, 0);
  x67 = XEXP (x66, 0);
  x68 = XEXP (x67, 0);
  if (GET_CODE (x68) != i1)
    return -1;
  x69 = XEXP (x68, 0);
  if (GET_CODE (x69) != VEC_SELECT
      || GET_MODE (x69) != HImode)
    return -1;
  x70 = XEXP (x69, 1);
  if (GET_CODE (x70) != PARALLEL
      || XVECLEN (x70, 0) != 1)
    return -1;
  x71 = XVECEXP (x70, 0, 0);
  if (x71 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x72 = XEXP (x68, 1);
  if (GET_CODE (x72) != VEC_SELECT
      || GET_MODE (x72) != HImode)
    return -1;
  x73 = XEXP (x72, 1);
  if (GET_CODE (x73) != PARALLEL
      || XVECLEN (x73, 0) != 1)
    return -1;
  x74 = XVECEXP (x73, 0, 0);
  if (x74 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x75 = XEXP (x67, 1);
  if (GET_CODE (x75) != i1)
    return -1;
  x76 = XEXP (x75, 0);
  if (GET_CODE (x76) != VEC_SELECT
      || GET_MODE (x76) != HImode)
    return -1;
  x77 = XEXP (x76, 1);
  if (GET_CODE (x77) != PARALLEL
      || XVECLEN (x77, 0) != 1)
    return -1;
  x78 = XVECEXP (x77, 0, 0);
  if (x78 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
    return -1;
  x79 = XEXP (x75, 1);
  if (GET_CODE (x79) != VEC_SELECT
      || GET_MODE (x79) != HImode)
    return -1;
  x80 = XEXP (x79, 1);
  if (GET_CODE (x80) != PARALLEL
      || XVECLEN (x80, 0) != 1)
    return -1;
  x81 = XVECEXP (x80, 0, 0);
  if (x81 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
    return -1;
  x82 = XEXP (x66, 1);
  x83 = XEXP (x82, 0);
  if (GET_CODE (x83) != i1)
    return -1;
  x84 = XEXP (x83, 0);
  if (GET_CODE (x84) != VEC_SELECT
      || GET_MODE (x84) != HImode)
    return -1;
  x85 = XEXP (x84, 1);
  if (GET_CODE (x85) != PARALLEL
      || XVECLEN (x85, 0) != 1)
    return -1;
  x86 = XVECEXP (x85, 0, 0);
  if (x86 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
    return -1;
  x87 = XEXP (x83, 1);
  if (GET_CODE (x87) != VEC_SELECT
      || GET_MODE (x87) != HImode)
    return -1;
  x88 = XEXP (x87, 1);
  if (GET_CODE (x88) != PARALLEL
      || XVECLEN (x88, 0) != 1)
    return -1;
  x89 = XVECEXP (x88, 0, 0);
  if (x89 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
    return -1;
  x90 = XEXP (x82, 1);
  if (GET_CODE (x90) != i1)
    return -1;
  x91 = XEXP (x90, 0);
  if (GET_CODE (x91) != VEC_SELECT
      || GET_MODE (x91) != HImode)
    return -1;
  x92 = XEXP (x91, 1);
  if (GET_CODE (x92) != PARALLEL
      || XVECLEN (x92, 0) != 1)
    return -1;
  x93 = XVECEXP (x92, 0, 0);
  if (x93 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
    return -1;
  x94 = XEXP (x90, 1);
  if (GET_CODE (x94) != VEC_SELECT
      || GET_MODE (x94) != HImode)
    return -1;
  x95 = XEXP (x94, 1);
  if (GET_CODE (x95) != PARALLEL
      || XVECLEN (x95, 0) != 1)
    return -1;
  x96 = XVECEXP (x95, 0, 0);
  if (x96 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
    return -1;
  x97 = XEXP (x65, 1);
  x98 = XEXP (x97, 0);
  x99 = XEXP (x98, 0);
  if (GET_CODE (x99) != i1)
    return -1;
  x100 = XEXP (x99, 0);
  if (GET_CODE (x100) != VEC_SELECT
      || GET_MODE (x100) != HImode)
    return -1;
  x101 = XEXP (x100, 1);
  if (GET_CODE (x101) != PARALLEL
      || XVECLEN (x101, 0) != 1)
    return -1;
  x102 = XVECEXP (x101, 0, 0);
  if (x102 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x103 = XEXP (x99, 1);
  if (GET_CODE (x103) != VEC_SELECT
      || GET_MODE (x103) != HImode)
    return -1;
  x104 = XEXP (x103, 1);
  if (GET_CODE (x104) != PARALLEL
      || XVECLEN (x104, 0) != 1)
    return -1;
  x105 = XVECEXP (x104, 0, 0);
  if (x105 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
    return -1;
  x106 = XEXP (x98, 1);
  if (GET_CODE (x106) != i1)
    return -1;
  x107 = XEXP (x106, 0);
  if (GET_CODE (x107) != VEC_SELECT
      || GET_MODE (x107) != HImode)
    return -1;
  x108 = XEXP (x107, 1);
  if (GET_CODE (x108) != PARALLEL
      || XVECLEN (x108, 0) != 1)
    return -1;
  x109 = XVECEXP (x108, 0, 0);
  if (x109 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
    return -1;
  x110 = XEXP (x106, 1);
  if (GET_CODE (x110) != VEC_SELECT
      || GET_MODE (x110) != HImode)
    return -1;
  x111 = XEXP (x110, 1);
  if (GET_CODE (x111) != PARALLEL
      || XVECLEN (x111, 0) != 1)
    return -1;
  x112 = XVECEXP (x111, 0, 0);
  if (x112 != const_int_rtx[MAX_SAVED_CONST_INT + 11])
    return -1;
  x113 = XEXP (x97, 1);
  x114 = XEXP (x113, 0);
  if (GET_CODE (x114) != i1)
    return -1;
  x115 = XEXP (x114, 0);
  if (GET_CODE (x115) != VEC_SELECT
      || GET_MODE (x115) != HImode)
    return -1;
  x116 = XEXP (x115, 1);
  if (GET_CODE (x116) != PARALLEL
      || XVECLEN (x116, 0) != 1)
    return -1;
  x117 = XVECEXP (x116, 0, 0);
  if (x117 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
    return -1;
  x118 = XEXP (x114, 1);
  if (GET_CODE (x118) != VEC_SELECT
      || GET_MODE (x118) != HImode)
    return -1;
  x119 = XEXP (x118, 1);
  if (GET_CODE (x119) != PARALLEL
      || XVECLEN (x119, 0) != 1)
    return -1;
  x120 = XVECEXP (x119, 0, 0);
  if (x120 != const_int_rtx[MAX_SAVED_CONST_INT + 13])
    return -1;
  x121 = XEXP (x113, 1);
  if (GET_CODE (x121) != i1)
    return -1;
  x122 = XEXP (x121, 0);
  if (GET_CODE (x122) != VEC_SELECT
      || GET_MODE (x122) != HImode)
    return -1;
  x123 = XEXP (x122, 1);
  if (GET_CODE (x123) != PARALLEL
      || XVECLEN (x123, 0) != 1)
    return -1;
  x124 = XVECEXP (x123, 0, 0);
  if (x124 != const_int_rtx[MAX_SAVED_CONST_INT + 14])
    return -1;
  x125 = XEXP (x121, 1);
  if (GET_CODE (x125) != VEC_SELECT
      || GET_MODE (x125) != HImode)
    return -1;
  x126 = XEXP (x125, 1);
  if (GET_CODE (x126) != PARALLEL
      || XVECLEN (x126, 0) != 1)
    return -1;
  x127 = XVECEXP (x126, 0, 0);
  if (x127 != const_int_rtx[MAX_SAVED_CONST_INT + 15])
    return -1;
  x128 = XEXP (x6, 0);
  operands[1] = x128;
  if (!register_operand (operands[1], V16HImode))
    return -1;
  x129 = XEXP (x69, 0);
  operands[2] = x129;
  if (!nonimmediate_operand (operands[2], V16HImode))
    return -1;
  x130 = XEXP (x9, 0);
  if (!rtx_equal_p (x130, operands[1]))
    return -1;
  x131 = XEXP (x13, 0);
  if (!rtx_equal_p (x131, operands[1]))
    return -1;
  x132 = XEXP (x16, 0);
  if (!rtx_equal_p (x132, operands[1]))
    return -1;
  x133 = XEXP (x21, 0);
  if (!rtx_equal_p (x133, operands[1]))
    return -1;
  x134 = XEXP (x24, 0);
  if (!rtx_equal_p (x134, operands[1]))
    return -1;
  x135 = XEXP (x28, 0);
  if (!rtx_equal_p (x135, operands[1]))
    return -1;
  x136 = XEXP (x31, 0);
  if (!rtx_equal_p (x136, operands[1]))
    return -1;
  x137 = XEXP (x37, 0);
  if (!rtx_equal_p (x137, operands[1]))
    return -1;
  x138 = XEXP (x40, 0);
  if (!rtx_equal_p (x138, operands[1]))
    return -1;
  x139 = XEXP (x44, 0);
  if (!rtx_equal_p (x139, operands[1]))
    return -1;
  x140 = XEXP (x47, 0);
  if (!rtx_equal_p (x140, operands[1]))
    return -1;
  x141 = XEXP (x52, 0);
  if (!rtx_equal_p (x141, operands[1]))
    return -1;
  x142 = XEXP (x55, 0);
  if (!rtx_equal_p (x142, operands[1]))
    return -1;
  x143 = XEXP (x59, 0);
  if (!rtx_equal_p (x143, operands[1]))
    return -1;
  x144 = XEXP (x62, 0);
  if (!rtx_equal_p (x144, operands[1]))
    return -1;
  x145 = XEXP (x72, 0);
  if (!rtx_equal_p (x145, operands[2]))
    return -1;
  x146 = XEXP (x76, 0);
  if (!rtx_equal_p (x146, operands[2]))
    return -1;
  x147 = XEXP (x79, 0);
  if (!rtx_equal_p (x147, operands[2]))
    return -1;
  x148 = XEXP (x84, 0);
  if (!rtx_equal_p (x148, operands[2]))
    return -1;
  x149 = XEXP (x87, 0);
  if (!rtx_equal_p (x149, operands[2]))
    return -1;
  x150 = XEXP (x91, 0);
  if (!rtx_equal_p (x150, operands[2]))
    return -1;
  x151 = XEXP (x94, 0);
  if (!rtx_equal_p (x151, operands[2]))
    return -1;
  x152 = XEXP (x100, 0);
  if (!rtx_equal_p (x152, operands[2]))
    return -1;
  x153 = XEXP (x103, 0);
  if (!rtx_equal_p (x153, operands[2]))
    return -1;
  x154 = XEXP (x107, 0);
  if (!rtx_equal_p (x154, operands[2]))
    return -1;
  x155 = XEXP (x110, 0);
  if (!rtx_equal_p (x155, operands[2]))
    return -1;
  x156 = XEXP (x115, 0);
  if (!rtx_equal_p (x156, operands[2]))
    return -1;
  x157 = XEXP (x118, 0);
  if (!rtx_equal_p (x157, operands[2]))
    return -1;
  x158 = XEXP (x122, 0);
  if (!rtx_equal_p (x158, operands[2]))
    return -1;
  x159 = XEXP (x125, 0);
  if (!rtx_equal_p (x159, operands[2]))
    return -1;
  return 0;
}

static int
pattern953 (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 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  x6 = XEXP (x5, 0);
  operands[1] = x6;
  if (!nonimmediate_operand (operands[1], V8HImode))
    return -1;
  x7 = XEXP (x3, 1);
  x8 = XEXP (x7, 0);
  x9 = XEXP (x8, 0);
  operands[2] = x9;
  if (!nonimmediate_operand (operands[2], V8HImode))
    return -1;
  x10 = XEXP (x1, 1);
  operands[3] = x10;
  if (!register_operand (operands[3], V4SImode))
    return -1;
  x11 = XEXP (x2, 1);
  x12 = XEXP (x11, 0);
  x13 = XEXP (x12, 0);
  x14 = XEXP (x13, 0);
  if (!rtx_equal_p (x14, operands[1]))
    return -1;
  x15 = XEXP (x11, 1);
  x16 = XEXP (x15, 0);
  x17 = XEXP (x16, 0);
  if (!rtx_equal_p (x17, operands[2]))
    return -1;
  return 0;
}

static int
pattern954 (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, 8);
  if (XWINT (x2, 0) != 12LL)
    return -1;
  x3 = XVECEXP (x1, 0, 9);
  if (XWINT (x3, 0) != 44LL)
    return -1;
  x4 = XVECEXP (x1, 0, 10);
  if (XWINT (x4, 0) != 13LL)
    return -1;
  x5 = XVECEXP (x1, 0, 11);
  if (XWINT (x5, 0) != 45LL)
    return -1;
  x6 = XVECEXP (x1, 0, 12);
  if (XWINT (x6, 0) != 14LL)
    return -1;
  x7 = XVECEXP (x1, 0, 13);
  if (XWINT (x7, 0) != 46LL)
    return -1;
  x8 = XVECEXP (x1, 0, 14);
  if (XWINT (x8, 0) != 15LL)
    return -1;
  x9 = XVECEXP (x1, 0, 15);
  if (XWINT (x9, 0) != 47LL)
    return -1;
  return 0;
}

static int
pattern955 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XVECEXP (x2, 0, 24);
  if (XWINT (x3, 0) != 28LL)
    return -1;
  x4 = XVECEXP (x2, 0, 25);
  if (XWINT (x4, 0) != 60LL)
    return -1;
  x5 = XVECEXP (x2, 0, 26);
  if (XWINT (x5, 0) != 29LL)
    return -1;
  x6 = XVECEXP (x2, 0, 27);
  if (XWINT (x6, 0) != 61LL)
    return -1;
  x7 = XVECEXP (x2, 0, 28);
  if (XWINT (x7, 0) != 30LL)
    return -1;
  x8 = XVECEXP (x2, 0, 29);
  if (XWINT (x8, 0) != 62LL)
    return -1;
  x9 = XVECEXP (x2, 0, 30);
  if (XWINT (x9, 0) != 31LL)
    return -1;
  x10 = XVECEXP (x2, 0, 31);
  if (XWINT (x10, 0) != 63LL
      || pattern534 (x1, i1, i2) != 0)
    return -1;
  return 0;
}

static int
pattern956 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 1);
  x4 = XVECEXP (x3, 0, 24);
  if (XWINT (x4, 0) != 28LL)
    return -1;
  x5 = XVECEXP (x3, 0, 25);
  if (XWINT (x5, 0) != 60LL)
    return -1;
  x6 = XVECEXP (x3, 0, 26);
  if (XWINT (x6, 0) != 29LL)
    return -1;
  x7 = XVECEXP (x3, 0, 27);
  if (XWINT (x7, 0) != 61LL)
    return -1;
  x8 = XVECEXP (x3, 0, 28);
  if (XWINT (x8, 0) != 30LL)
    return -1;
  x9 = XVECEXP (x3, 0, 29);
  if (XWINT (x9, 0) != 62LL)
    return -1;
  x10 = XVECEXP (x3, 0, 30);
  if (XWINT (x10, 0) != 31LL)
    return -1;
  x11 = XVECEXP (x3, 0, 31);
  if (XWINT (x11, 0) != 63LL
      || pattern724 (x1, i1, i2) != 0)
    return -1;
  return 0;
}

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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != REG
      || REGNO (x2) != 17)
    return -1;
  x3 = XEXP (x1, 1);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
    case MEM:
      operands[0] = x4;
      x5 = XEXP (x3, 1);
      operands[1] = x5;
      switch (GET_MODE (operands[0]))
        {
        case QImode:
          if (nonimmediate_operand (operands[0], QImode))
            {
              if (const0_operand (operands[1], QImode)
                  && 
#line 1259 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)))
                return 1; /* *cmpqi_ccno_1 */
              if (general_operand (operands[1], QImode)
                  && 
#line 1272 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCmode)))
                return 5; /* *cmpqi_1 */
            }
          break;

        case HImode:
          if (nonimmediate_operand (operands[0], HImode))
            {
              if (const0_operand (operands[1], HImode)
                  && 
#line 1259 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)))
                return 2; /* *cmphi_ccno_1 */
              if (general_operand (operands[1], HImode)
                  && 
#line 1272 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCmode)))
                return 6; /* *cmphi_1 */
            }
          break;

        case SImode:
          if (nonimmediate_operand (operands[0], SImode))
            {
              if (const0_operand (operands[1], SImode)
                  && 
#line 1259 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)))
                return 3; /* *cmpsi_ccno_1 */
              if (x86_64_general_operand (operands[1], SImode)
                  && 
#line 1272 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCmode)))
                return 7; /* *cmpsi_1 */
            }
          break;

        case DImode:
          if (nonimmediate_operand (operands[0], DImode))
            {
              if (const0_operand (operands[1], DImode)
                  && (
#line 1259 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return 4; /* *cmpdi_ccno_1 */
              if (x86_64_general_operand (operands[1], DImode)
                  && (
#line 1272 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCmode)) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return 8; /* *cmpdi_1 */
            }
          break;

        default:
          break;
        }
      switch (GET_MODE (x2))
        {
        case CCFPmode:
          switch (pattern304 (x3, CCFPmode))
            {
            case 0:
              if (nonimmediate_operand (operands[1], SFmode)
                  && 
#line 1688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH))
                return 49; /* *cmpisf_mixed */
              if (register_operand (operands[1], SFmode)
                  && 
#line 1717 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_CMOVE
   && !(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)))
                return 53; /* *cmpisf_i387 */
              break;

            case 1:
              if (nonimmediate_operand (operands[1], DFmode)
                  && 
#line 1688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH))
                return 50; /* *cmpidf_mixed */
              if (register_operand (operands[1], DFmode)
                  && 
#line 1717 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_CMOVE
   && !(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)))
                return 54; /* *cmpidf_i387 */
              break;

            case 2:
              if (
#line 1717 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_CMOVE
   && !(SSE_FLOAT_MODE_P (XFmode) && TARGET_SSE_MATH)))
                return 55; /* *cmpixf_i387 */
              break;

            default:
              break;
            }
          break;

        case CCFPUmode:
          switch (pattern304 (x3, CCFPUmode))
            {
            case 0:
              if (nonimmediate_operand (operands[1], SFmode)
                  && 
#line 1688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH))
                return 51; /* *cmpiusf_mixed */
              if (register_operand (operands[1], SFmode)
                  && 
#line 1717 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_CMOVE
   && !(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)))
                return 56; /* *cmpiusf_i387 */
              break;

            case 1:
              if (nonimmediate_operand (operands[1], DFmode)
                  && 
#line 1688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH))
                return 52; /* *cmpiudf_mixed */
              if (register_operand (operands[1], DFmode)
                  && 
#line 1717 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_CMOVE
   && !(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)))
                return 57; /* *cmpiudf_i387 */
              break;

            case 2:
              if (
#line 1717 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_CMOVE
   && !(SSE_FLOAT_MODE_P (XFmode) && TARGET_SSE_MATH)))
                return 58; /* *cmpiuxf_i387 */
              break;

            default:
              break;
            }
          break;

        default:
          break;
        }
      if (nonimmediate_x64nomem_operand (operands[0], QImode)
          && GET_CODE (x5) == SUBREG
          && pattern305 (x5) == 0
          && 
#line 1297 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCmode)))
        return 13; /* *cmpqi_ext_1 */
      if (GET_CODE (x4) != SUBREG
          || XINT (x4, 1) != 0
          || GET_MODE (x4) != QImode)
        return -1;
      x6 = XEXP (x4, 0);
      if (GET_CODE (x6) != ZERO_EXTRACT
          || GET_MODE (x6) != SImode)
        return -1;
      x7 = XEXP (x6, 1);
      if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
        return -1;
      x8 = XEXP (x6, 2);
      if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
        return -1;
      x9 = XEXP (x6, 0);
      operands[0] = x9;
      if (!ext_register_operand (operands[0], VOIDmode))
        return -1;
      operands[1] = x5;
      if (const0_operand (operands[1], QImode)
          && 
#line 1312 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)))
        return 14; /* *cmpqi_ext_2 */
      if (general_x64nomem_operand (operands[1], QImode)
          && 
#line 1337 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCmode)))
        return 15; /* *cmpqi_ext_3 */
      if (GET_CODE (x5) != SUBREG
          || pattern305 (x5) != 0
          || !
#line 1357 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCmode)))
        return -1;
      return 16; /* *cmpqi_ext_4 */

    case MINUS:
      x5 = XEXP (x3, 1);
      if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x6 = XEXP (x4, 0);
      operands[0] = x6;
      x10 = XEXP (x4, 1);
      operands[1] = x10;
      switch (GET_MODE (x4))
        {
        case QImode:
          if (!nonimmediate_operand (operands[0], QImode)
              || !general_operand (operands[1], QImode)
              || !
#line 1283 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCGOCmode)))
            return -1;
          return 9; /* *cmpqi_minus_1 */

        case HImode:
          if (!nonimmediate_operand (operands[0], HImode)
              || !general_operand (operands[1], HImode)
              || !
#line 1283 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCGOCmode)))
            return -1;
          return 10; /* *cmphi_minus_1 */

        case SImode:
          if (!nonimmediate_operand (operands[0], SImode)
              || !x86_64_general_operand (operands[1], SImode)
              || !
#line 1283 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCGOCmode)))
            return -1;
          return 11; /* *cmpsi_minus_1 */

        case DImode:
          if (!nonimmediate_operand (operands[0], DImode)
              || !x86_64_general_operand (operands[1], DImode)
              || !(
#line 1283 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCGOCmode)) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          return 12; /* *cmpdi_minus_1 */

        default:
          return -1;
        }

    case PLUS:
      if (pnum_clobbers == NULL
          || GET_MODE (x2) != CCCmode
          || GET_MODE (x3) != CCCmode)
        return -1;
      x6 = XEXP (x4, 0);
      operands[1] = x6;
      x10 = XEXP (x4, 1);
      operands[2] = x10;
      x5 = XEXP (x3, 1);
      if (!rtx_equal_p (x5, operands[1]))
        return -1;
      switch (pattern139 (x4))
        {
        case 0:
          if (!
#line 6741 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))))
            return -1;
          *pnum_clobbers = 1;
          return 299; /* *addqi3_cconly_overflow_1 */

        case 1:
          if (!
#line 6741 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))))
            return -1;
          *pnum_clobbers = 1;
          return 300; /* *addhi3_cconly_overflow_1 */

        case 2:
          if (!
#line 6741 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))))
            return -1;
          *pnum_clobbers = 1;
          return 301; /* *addsi3_cconly_overflow_1 */

        case 3:
          if (!(
#line 6741 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          *pnum_clobbers = 1;
          return 302; /* *adddi3_cconly_overflow_1 */

        default:
          return -1;
        }

    case IOR:
      if (GET_MODE (x4) != HImode)
        return -1;
      x5 = XEXP (x3, 1);
      if (GET_CODE (x5) != CONST_INT)
        return -1;
      x6 = XEXP (x4, 0);
      operands[0] = x6;
      if (!register_operand (operands[0], HImode))
        return -1;
      x10 = XEXP (x4, 1);
      operands[1] = x10;
      if (!register_operand (operands[1], HImode))
        return -1;
      switch (XWINT (x5, 0))
        {
        case 0LL:
          if (GET_MODE (x2) != CCZmode
              || GET_MODE (x3) != CCZmode
              || !
#line 8925 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F && ix86_match_ccmode (insn, CCZmode)))
            return -1;
          return 439; /* kortestzhi */

        case -1LL:
          if (GET_MODE (x2) != CCCmode
              || GET_MODE (x3) != CCCmode
              || !
#line 8938 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F && ix86_match_ccmode (insn, CCCmode)))
            return -1;
          return 440; /* kortestchi */

        default:
          return -1;
        }

    case UNSPEC:
      if (pnum_clobbers == NULL
          || XVECLEN (x4, 0) != 2
          || XINT (x4, 1) != 85)
        return -1;
      x5 = XEXP (x3, 1);
      if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || GET_MODE (x2) != CCZmode
          || GET_MODE (x3) != CCZmode)
        return -1;
      x11 = XVECEXP (x4, 0, 0);
      operands[1] = x11;
      x12 = XVECEXP (x4, 0, 1);
      operands[2] = x12;
      switch (GET_MODE (x4))
        {
        case SImode:
          if (!nonimmediate_operand (operands[1], SImode)
              || !register_operand (operands[2], SImode)
              || !
#line 13171 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI))
            return -1;
          *pnum_clobbers = 1;
          return 752; /* *bmi_bextr_si_ccz */

        case DImode:
          if (!nonimmediate_operand (operands[1], DImode)
              || !register_operand (operands[2], DImode)
              || !(
#line 13171 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          *pnum_clobbers = 1;
          return 753; /* *bmi_bextr_di_ccz */

        default:
          return -1;
        }

    case ZERO_EXTRACT:
      if (pnum_clobbers == NULL)
        return -1;
      x10 = XEXP (x4, 1);
      if (GET_CODE (x10) != UMIN)
        return -1;
      x13 = XEXP (x10, 0);
      if (GET_CODE (x13) != ZERO_EXTEND)
        return -1;
      x14 = XEXP (x4, 2);
      if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x5 = XEXP (x3, 1);
      if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || GET_MODE (x2) != CCZmode
          || GET_MODE (x3) != CCZmode)
        return -1;
      x6 = XEXP (x4, 0);
      operands[1] = x6;
      x15 = XEXP (x13, 0);
      operands[2] = x15;
      if (!register_operand (operands[2], QImode))
        return -1;
      x16 = XEXP (x10, 1);
      operands[3] = x16;
      switch (GET_MODE (x4))
        {
        case SImode:
          if (pattern715 (x10, SImode) != 0
              || !
#line 13277 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2 && INTVAL (operands[3]) == 4 * BITS_PER_UNIT))
            return -1;
          *pnum_clobbers = 1;
          return 764; /* *bmi2_bzhi_si3_1_ccz */

        case DImode:
          if (pattern715 (x10, DImode) != 0
              || !(
#line 13277 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2 && INTVAL (operands[3]) == 8 * BITS_PER_UNIT) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          *pnum_clobbers = 1;
          return 765; /* *bmi2_bzhi_di3_1_ccz */

        default:
          return -1;
        }

    case VEC_SELECT:
      x10 = XEXP (x4, 1);
      if (GET_CODE (x10) != PARALLEL
          || XVECLEN (x10, 0) != 1)
        return -1;
      x17 = XVECEXP (x10, 0, 0);
      if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x5 = XEXP (x3, 1);
      if (GET_CODE (x5) != VEC_SELECT)
        return -1;
      x18 = XEXP (x5, 1);
      if (GET_CODE (x18) != PARALLEL
          || XVECLEN (x18, 0) != 1)
        return -1;
      x19 = XVECEXP (x18, 0, 0);
      if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x6 = XEXP (x4, 0);
      operands[0] = x6;
      x20 = XEXP (x5, 0);
      operands[1] = x20;
      switch (GET_MODE (x2))
        {
        case CCFPmode:
          switch (pattern666 (x3, CCFPmode))
            {
            case 0:
              if (!
#line 2792 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(SSE_FLOAT_MODE_P (SFmode)))
                return -1;
              return 1763; /* sse_comi */

            case 1:
              if (!
#line 2792 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(SSE_FLOAT_MODE_P (DFmode)))
                return -1;
              return 1765; /* sse2_comi */

            default:
              return -1;
            }

        case CCFPUmode:
          switch (pattern666 (x3, CCFPUmode))
            {
            case 0:
              if (!
#line 2812 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(SSE_FLOAT_MODE_P (SFmode)))
                return -1;
              return 1767; /* sse_ucomi */

            case 1:
              if (!
#line 2812 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(SSE_FLOAT_MODE_P (DFmode)))
                return -1;
              return 1769; /* sse2_ucomi */

            default:
              return -1;
            }

        default:
          return -1;
        }

    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;
  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 V16SFmode:
      if (!register_operand (operands[0], V16SFmode)
          || GET_MODE (x3) != V16SFmode
          || !nonimmediate_operand (operands[1], V16SFmode)
          || !(
#line 1186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
        return -1;
      return 1300; /* *avx512f_loadups512 */

    case V8SFmode:
      if (!register_operand (operands[0], V8SFmode)
          || GET_MODE (x3) != V8SFmode
          || !nonimmediate_operand (operands[1], V8SFmode)
          || !(
#line 1186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
        return -1;
      return 1302; /* *avx_loadups256 */

    case V4SFmode:
      if (!register_operand (operands[0], V4SFmode)
          || GET_MODE (x3) != V4SFmode
          || !nonimmediate_operand (operands[1], V4SFmode)
          || !
#line 1186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1))
        return -1;
      return 1304; /* *sse_loadups */

    case V8DFmode:
      if (!register_operand (operands[0], V8DFmode)
          || GET_MODE (x3) != V8DFmode
          || !nonimmediate_operand (operands[1], V8DFmode)
          || !(
#line 1186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
        return -1;
      return 1306; /* *avx512f_loadupd512 */

    case V4DFmode:
      if (!register_operand (operands[0], V4DFmode)
          || GET_MODE (x3) != V4DFmode
          || !nonimmediate_operand (operands[1], V4DFmode)
          || !(
#line 1186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
        return -1;
      return 1308; /* *avx_loadupd256 */

    case V2DFmode:
      if (!register_operand (operands[0], V2DFmode)
          || GET_MODE (x3) != V2DFmode
          || !nonimmediate_operand (operands[1], V2DFmode)
          || !(
#line 1186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
        return -1;
      return 1310; /* *sse2_loadupd */

    case V32QImode:
      if (!register_operand (operands[0], V32QImode)
          || GET_MODE (x3) != V32QImode
          || !nonimmediate_operand (operands[1], V32QImode)
          || !(
#line 1369 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1) && 
#line 291 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
        return -1;
      return 1324; /* *avx_loaddquv32qi */

    case V16QImode:
      if (!register_operand (operands[0], V16QImode)
          || GET_MODE (x3) != V16QImode
          || !nonimmediate_operand (operands[1], V16QImode)
          || !
#line 1369 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1))
        return -1;
      return 1326; /* *sse2_loaddquv16qi */

    case V64QImode:
      if (!register_operand (operands[0], V64QImode)
          || GET_MODE (x3) != V64QImode
          || !nonimmediate_operand (operands[1], V64QImode)
          || !
#line 1408 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
        return -1;
      return 1328; /* *avx512f_loaddquv64qi */

    case V32HImode:
      if (!register_operand (operands[0], V32HImode)
          || GET_MODE (x3) != V32HImode
          || !nonimmediate_operand (operands[1], V32HImode)
          || !
#line 1408 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
        return -1;
      return 1330; /* *avx512bw_loaddquv32hi */

    case V8HImode:
      if (!register_operand (operands[0], V8HImode)
          || GET_MODE (x3) != V8HImode
          || !nonimmediate_operand (operands[1], V8HImode)
          || !(
#line 1408 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 295 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 1332; /* *avx512vl_loaddquv8hi */

    case V16HImode:
      if (!register_operand (operands[0], V16HImode)
          || GET_MODE (x3) != V16HImode
          || !nonimmediate_operand (operands[1], V16HImode)
          || !(
#line 1408 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 295 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 1334; /* *avx512vl_loaddquv16hi */

    case V16SImode:
      if (!register_operand (operands[0], V16SImode)
          || GET_MODE (x3) != V16SImode
          || !nonimmediate_operand (operands[1], V16SImode)
          || !
#line 1420 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 1336; /* *avx512f_loaddquv16si */

    case V8SImode:
      if (!register_operand (operands[0], V8SImode)
          || GET_MODE (x3) != V8SImode
          || !nonimmediate_operand (operands[1], V8SImode)
          || !(
#line 1420 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 298 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 1338; /* *avx_loaddquv8si */

    case V4SImode:
      if (!register_operand (operands[0], V4SImode)
          || GET_MODE (x3) != V4SImode
          || !nonimmediate_operand (operands[1], V4SImode)
          || !(
#line 1420 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 298 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 1340; /* *sse2_loaddquv4si */

    case V8DImode:
      if (!register_operand (operands[0], V8DImode)
          || GET_MODE (x3) != V8DImode
          || !nonimmediate_operand (operands[1], V8DImode)
          || !
#line 1420 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 1342; /* *avx512f_loaddquv8di */

    case V4DImode:
      if (!register_operand (operands[0], V4DImode)
          || GET_MODE (x3) != V4DImode
          || !nonimmediate_operand (operands[1], V4DImode)
          || !(
#line 1420 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 299 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 1344; /* *avx512vl_loaddquv4di */

    case V2DImode:
      if (!register_operand (operands[0], V2DImode)
          || GET_MODE (x3) != V2DImode
          || !nonimmediate_operand (operands[1], V2DImode)
          || !(
#line 1420 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 299 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 1346; /* *avx512vl_loaddquv2di */

    default:
      return -1;
    }
}

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;
  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 V16SFmode:
      if (!memory_operand (operands[0], V16SFmode)
          || GET_MODE (x3) != V16SFmode
          || !register_operand (operands[1], V16SFmode)
          || !(
#line 1233 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
        return -1;
      return 1312; /* avx512f_storeups512 */

    case V8SFmode:
      if (!memory_operand (operands[0], V8SFmode)
          || GET_MODE (x3) != V8SFmode
          || !register_operand (operands[1], V8SFmode)
          || !(
#line 1233 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
        return -1;
      return 1313; /* avx_storeups256 */

    case V4SFmode:
      if (!memory_operand (operands[0], V4SFmode)
          || GET_MODE (x3) != V4SFmode
          || !register_operand (operands[1], V4SFmode)
          || !
#line 1233 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
        return -1;
      return 1314; /* sse_storeups */

    case V8DFmode:
      if (!memory_operand (operands[0], V8DFmode)
          || GET_MODE (x3) != V8DFmode
          || !register_operand (operands[1], V8DFmode)
          || !(
#line 1233 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
        return -1;
      return 1315; /* avx512f_storeupd512 */

    case V4DFmode:
      if (!memory_operand (operands[0], V4DFmode)
          || GET_MODE (x3) != V4DFmode
          || !register_operand (operands[1], V4DFmode)
          || !(
#line 1233 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
        return -1;
      return 1316; /* avx_storeupd256 */

    case V2DFmode:
      if (!memory_operand (operands[0], V2DFmode)
          || GET_MODE (x3) != V2DFmode
          || !register_operand (operands[1], V2DFmode)
          || !(
#line 1233 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
        return -1;
      return 1317; /* sse2_storeupd */

    case V32QImode:
      if (!memory_operand (operands[0], V32QImode)
          || GET_MODE (x3) != V32QImode
          || !register_operand (operands[1], V32QImode)
          || !(
#line 1432 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2) && 
#line 291 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
        return -1;
      return 1348; /* avx_storedquv32qi */

    case V16QImode:
      if (!memory_operand (operands[0], V16QImode)
          || GET_MODE (x3) != V16QImode
          || !register_operand (operands[1], V16QImode)
          || !
#line 1432 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))
        return -1;
      return 1349; /* sse2_storedquv16qi */

    case V64QImode:
      if (!memory_operand (operands[0], V64QImode)
          || GET_MODE (x3) != V64QImode
          || !register_operand (operands[1], V64QImode)
          || !
#line 1478 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
        return -1;
      return 1350; /* avx512f_storedquv64qi */

    case V32HImode:
      if (!memory_operand (operands[0], V32HImode)
          || GET_MODE (x3) != V32HImode
          || !register_operand (operands[1], V32HImode)
          || !
#line 1478 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
        return -1;
      return 1351; /* avx512bw_storedquv32hi */

    case V8HImode:
      if (!memory_operand (operands[0], V8HImode)
          || GET_MODE (x3) != V8HImode
          || !register_operand (operands[1], V8HImode)
          || !(
#line 1478 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 295 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 1352; /* avx512vl_storedquv8hi */

    case V16HImode:
      if (!memory_operand (operands[0], V16HImode)
          || GET_MODE (x3) != V16HImode
          || !register_operand (operands[1], V16HImode)
          || !(
#line 1478 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 295 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 1353; /* avx512vl_storedquv16hi */

    case V16SImode:
      if (!memory_operand (operands[0], V16SImode)
          || GET_MODE (x3) != V16SImode
          || !register_operand (operands[1], V16SImode)
          || !
#line 1490 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 1354; /* avx512f_storedquv16si */

    case V8SImode:
      if (!memory_operand (operands[0], V8SImode)
          || GET_MODE (x3) != V8SImode
          || !register_operand (operands[1], V8SImode)
          || !(
#line 1490 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 298 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 1355; /* avx_storedquv8si */

    case V4SImode:
      if (!memory_operand (operands[0], V4SImode)
          || GET_MODE (x3) != V4SImode
          || !register_operand (operands[1], V4SImode)
          || !(
#line 1490 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 298 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 1356; /* sse2_storedquv4si */

    case V8DImode:
      if (!memory_operand (operands[0], V8DImode)
          || GET_MODE (x3) != V8DImode
          || !register_operand (operands[1], V8DImode)
          || !
#line 1490 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 1357; /* avx512f_storedquv8di */

    case V4DImode:
      if (!memory_operand (operands[0], V4DImode)
          || GET_MODE (x3) != V4DImode
          || !register_operand (operands[1], V4DImode)
          || !(
#line 1490 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 299 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 1358; /* avx512vl_storedquv4di */

    case V2DImode:
      if (!memory_operand (operands[0], V2DImode)
          || GET_MODE (x3) != V2DImode
          || !register_operand (operands[1], V2DImode)
          || !(
#line 1490 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 299 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 1359; /* avx512vl_storedquv2di */

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
      operands[1] = x4;
      switch (GET_MODE (operands[0]))
        {
        case V16SFmode:
          if (!memory_operand (operands[0], V16SFmode)
              || GET_MODE (x3) != V16SFmode
              || !register_operand (operands[1], V16SFmode)
              || !(
#line 1566 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 1376; /* avx512f_movntv16sf */

        case V8SFmode:
          if (!memory_operand (operands[0], V8SFmode)
              || GET_MODE (x3) != V8SFmode
              || !register_operand (operands[1], V8SFmode)
              || !(
#line 1566 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 1377; /* avx_movntv8sf */

        case V4SFmode:
          if (!memory_operand (operands[0], V4SFmode)
              || GET_MODE (x3) != V4SFmode
              || !register_operand (operands[1], V4SFmode)
              || !
#line 1566 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
            return -1;
          return 1378; /* sse_movntv4sf */

        case V8DFmode:
          if (!memory_operand (operands[0], V8DFmode)
              || GET_MODE (x3) != V8DFmode
              || !register_operand (operands[1], V8DFmode)
              || !(
#line 1566 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 1379; /* avx512f_movntv8df */

        case V4DFmode:
          if (!memory_operand (operands[0], V4DFmode)
              || GET_MODE (x3) != V4DFmode
              || !register_operand (operands[1], V4DFmode)
              || !(
#line 1566 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 1380; /* avx_movntv4df */

        case V2DFmode:
          if (!memory_operand (operands[0], V2DFmode)
              || GET_MODE (x3) != V2DFmode
              || !register_operand (operands[1], V2DFmode)
              || !(
#line 1566 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return -1;
          return 1381; /* sse2_movntv2df */

        case V8DImode:
          if (!memory_operand (operands[0], V8DImode)
              || GET_MODE (x3) != V8DImode
              || !register_operand (operands[1], V8DImode)
              || !(
#line 1576 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2) && 
#line 313 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 1382; /* avx512f_movntv8di */

        case V4DImode:
          if (!memory_operand (operands[0], V4DImode)
              || GET_MODE (x3) != V4DImode
              || !register_operand (operands[1], V4DImode)
              || !(
#line 1576 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2) && 
#line 313 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 1383; /* avx_movntv4di */

        case V2DImode:
          if (!memory_operand (operands[0], V2DImode)
              || GET_MODE (x3) != V2DImode
              || !register_operand (operands[1], V2DImode)
              || !
#line 1576 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))
            return -1;
          return 1384; /* sse2_movntv2di */

        case SFmode:
          if (!memory_operand (operands[0], SFmode)
              || GET_MODE (x3) != SFmode
              || !register_operand (operands[1], SFmode)
              || !
#line 14657 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4A))
            return -1;
          return 3833; /* sse4a_movntsf */

        case DFmode:
          if (!memory_operand (operands[0], DFmode)
              || GET_MODE (x3) != DFmode
              || !register_operand (operands[1], DFmode)
              || !
#line 14657 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4A))
            return -1;
          return 3834; /* sse4a_movntdf */

        default:
          return -1;
        }

    case VEC_SELECT:
      x5 = XEXP (x4, 1);
      if (GET_CODE (x5) != PARALLEL
          || XVECLEN (x5, 0) != 1)
        return -1;
      x6 = XVECEXP (x5, 0, 0);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x7 = XEXP (x4, 0);
      operands[1] = x7;
      switch (GET_MODE (operands[0]))
        {
        case SFmode:
          if (pattern480 (x3, V4SFmode, SFmode) != 0
              || !
#line 14669 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4A))
            return -1;
          return 3835; /* sse4a_vmmovntv4sf */

        case DFmode:
          if (pattern480 (x3, V2DFmode, DFmode) != 0
              || !(
#line 14669 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4A) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return -1;
          return 3836; /* sse4a_vmmovntv2df */

        default:
          return -1;
        }

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != HImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!register_operand (operands[0], HImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  switch (GET_CODE (x4))
    {
    case COMPARE:
      x5 = XEXP (x4, 0);
      operands[1] = x5;
      x6 = XEXP (x4, 1);
      switch (GET_CODE (x6))
        {
        case CONST_INT:
        case CONST_WIDE_INT:
        case CONST_DOUBLE:
        case CONST_VECTOR:
          operands[2] = x6;
          if (GET_MODE (x4) != CCFPmode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case SFmode:
              if (!register_operand (operands[1], SFmode)
                  || !const0_operand (operands[2], SFmode)
                  || !
#line 1474 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
                return -1;
              return 17; /* *cmpsf_0_i387 */

            case DFmode:
              if (!register_operand (operands[1], DFmode)
                  || !const0_operand (operands[2], DFmode)
                  || !
#line 1474 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
                return -1;
              return 18; /* *cmpdf_0_i387 */

            case XFmode:
              if (!register_operand (operands[1], XFmode)
                  || !const0_operand (operands[2], XFmode)
                  || !
#line 1474 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
                return -1;
              return 19; /* *cmpxf_0_i387 */

            default:
              return -1;
            }

        case REG:
        case SUBREG:
        case MEM:
          operands[2] = x6;
          switch (GET_MODE (x4))
            {
            case CCFPmode:
              switch (GET_MODE (operands[1]))
                {
                case XFmode:
                  if (!register_operand (operands[1], XFmode)
                      || !register_operand (operands[2], XFmode)
                      || !
#line 1507 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
                    return -1;
                  return 23; /* *cmpxf_i387 */

                case SFmode:
                  if (!register_operand (operands[1], SFmode)
                      || !nonimmediate_operand (operands[2], SFmode)
                      || !
#line 1540 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
                    return -1;
                  return 25; /* *cmpsf_i387 */

                case DFmode:
                  if (!register_operand (operands[1], DFmode)
                      || !nonimmediate_operand (operands[2], DFmode)
                      || !
#line 1540 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
                    return -1;
                  return 26; /* *cmpdf_i387 */

                default:
                  return -1;
                }

            case CCFPUmode:
              switch (GET_MODE (operands[1]))
                {
                case SFmode:
                  if (!register_operand (operands[1], SFmode)
                      || !register_operand (operands[2], SFmode)
                      || !
#line 1573 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
                    return -1;
                  return 29; /* *cmpusf_i387 */

                case DFmode:
                  if (!register_operand (operands[1], DFmode)
                      || !register_operand (operands[2], DFmode)
                      || !
#line 1573 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
                    return -1;
                  return 30; /* *cmpudf_i387 */

                case XFmode:
                  if (!register_operand (operands[1], XFmode)
                      || !register_operand (operands[2], XFmode)
                      || !
#line 1573 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
                    return -1;
                  return 31; /* *cmpuxf_i387 */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case FLOAT:
          operands[3] = x6;
          if (GET_MODE (x4) != CCFPmode)
            return -1;
          x7 = XEXP (x6, 0);
          operands[2] = x7;
          switch (GET_MODE (operands[1]))
            {
            case SFmode:
              switch (pattern611 (SFmode))
                {
                case 0:
                  if (!
#line 1607 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387
   && (TARGET_USE_HIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                    return -1;
                  return 35; /* *cmpsf_hi_i387 */

                case 1:
                  if (!
#line 1607 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387
   && (TARGET_USE_SIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                    return -1;
                  return 38; /* *cmpsf_si_i387 */

                default:
                  return -1;
                }

            case DFmode:
              switch (pattern611 (DFmode))
                {
                case 0:
                  if (!
#line 1607 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387
   && (TARGET_USE_HIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                    return -1;
                  return 36; /* *cmpdf_hi_i387 */

                case 1:
                  if (!
#line 1607 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387
   && (TARGET_USE_SIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                    return -1;
                  return 39; /* *cmpdf_si_i387 */

                default:
                  return -1;
                }

            case XFmode:
              switch (pattern611 (XFmode))
                {
                case 0:
                  if (!
#line 1607 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387
   && (TARGET_USE_HIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                    return -1;
                  return 37; /* *cmpxf_hi_i387 */

                case 1:
                  if (!
#line 1607 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387
   && (TARGET_USE_SIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                    return -1;
                  return 40; /* *cmpxf_si_i387 */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    case REG:
      if (REGNO (x4) != 18
          || GET_MODE (x4) != CCFPmode
          || !
#line 1648 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
        return -1;
      return 47; /* x86_fnstsw_1 */

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
    case MEM:
      operands[1] = x4;
      switch (GET_MODE (operands[0]))
        {
        case V8SImode:
          if (!register_operand (operands[0], V8SImode)
              || GET_MODE (x3) != V8SImode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V8SFmode:
              if (!vector_operand (operands[1], V8SFmode)
                  || !(
#line 4459 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1) && 
#line 334 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
                return -1;
              return 2177; /* avx_fix_notruncv8sfv8si */

            case V8DFmode:
              if (!vector_operand (operands[1], V8DFmode)
                  || !
#line 5033 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 2313; /* avx512f_cvtpd2dq512 */

            default:
              return -1;
            }

        case V4SImode:
          if (!register_operand (operands[0], V4SImode)
              || GET_MODE (x3) != V4SImode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V4SFmode:
              if (!vector_operand (operands[1], V4SFmode)
                  || !
#line 4459 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1))
                return -1;
              return 2179; /* sse2_fix_notruncv4sfv4si */

            case V4DFmode:
              if (!nonimmediate_operand (operands[1], V4DFmode)
                  || !
#line 5043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && 1))
                return -1;
              return 2317; /* avx_cvtpd2dq256 */

            default:
              return -1;
            }

        case V16SImode:
          if (!register_operand (operands[0], V16SImode)
              || GET_MODE (x3) != V16SImode
              || !vector_operand (operands[1], V16SFmode)
              || !
#line 4475 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2181; /* avx512f_fix_notruncv16sfv16si */

        case V8DImode:
          if (!register_operand (operands[0], V8DImode)
              || GET_MODE (x3) != V8DImode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V8SFmode:
              if (!nonimmediate_operand (operands[1], V8SFmode)
                  || !
#line 4496 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1))
                return -1;
              return 2197; /* *avx512dq_cvtps2qqv8di */

            case V8DFmode:
              if (!vector_operand (operands[1], V8DFmode)
                  || !
#line 5175 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1))
                return -1;
              return 2362; /* fix_notruncv8dfv8di2 */

            default:
              return -1;
            }

        case V4DImode:
          if (!register_operand (operands[0], V4DImode)
              || GET_MODE (x3) != V4DImode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V4SFmode:
              if (!nonimmediate_operand (operands[1], V4SFmode)
                  || !(
#line 4496 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 319 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2201; /* *avx512dq_cvtps2qqv4di */

            case V4DFmode:
              if (!vector_operand (operands[1], V4DFmode)
                  || !(
#line 5175 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 270 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2366; /* fix_notruncv4dfv4di2 */

            default:
              return -1;
            }

        case V2SImode:
          if (!register_operand (operands[0], V2SImode)
              || GET_MODE (x3) != V2SImode
              || !nonimmediate_operand (operands[1], V2DFmode)
              || !
#line 4616 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))
            return -1;
          return 2226; /* sse2_cvtpd2pi */

        case V2DImode:
          if (!register_operand (operands[0], V2DImode)
              || GET_MODE (x3) != V2DImode
              || !vector_operand (operands[1], V2DFmode)
              || !(
#line 5175 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 270 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 2368; /* fix_notruncv2dfv2di2 */

        default:
          return -1;
        }

    case VEC_SELECT:
      if (pattern171 (x3) != 0
          || !
#line 4509 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && TARGET_AVX512VL))
        return -1;
      return 2203; /* *avx512dq_cvtps2qqv2di */

    default:
      return -1;
    }
}

static int
recog_7 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  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 SFmode:
      if (!register_operand (operands[0], SFmode)
          || GET_MODE (x3) != SFmode
          || !nonimmediate_operand (operands[1], SFmode)
          || !
#line 16843 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
        return -1;
      return 4090; /* xop_frczsf2 */

    case DFmode:
      if (!register_operand (operands[0], DFmode)
          || GET_MODE (x3) != DFmode
          || !nonimmediate_operand (operands[1], DFmode)
          || !
#line 16843 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
        return -1;
      return 4091; /* xop_frczdf2 */

    case V4SFmode:
      if (!register_operand (operands[0], V4SFmode)
          || GET_MODE (x3) != V4SFmode
          || !nonimmediate_operand (operands[1], V4SFmode)
          || !
#line 16843 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
        return -1;
      return 4092; /* xop_frczv4sf2 */

    case V2DFmode:
      if (!register_operand (operands[0], V2DFmode)
          || GET_MODE (x3) != V2DFmode
          || !nonimmediate_operand (operands[1], V2DFmode)
          || !
#line 16843 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
        return -1;
      return 4093; /* xop_frczv2df2 */

    case V8SFmode:
      if (!register_operand (operands[0], V8SFmode)
          || GET_MODE (x3) != V8SFmode
          || !nonimmediate_operand (operands[1], V8SFmode)
          || !
#line 16843 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
        return -1;
      return 4094; /* xop_frczv8sf2 */

    case V4DFmode:
      if (!register_operand (operands[0], V4DFmode)
          || GET_MODE (x3) != V4DFmode
          || !nonimmediate_operand (operands[1], V4DFmode)
          || !
#line 16843 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
        return -1;
      return 4095; /* xop_frczv4df2 */

    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;
  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 V16SFmode:
      if (!register_operand (operands[0], V16SFmode)
          || GET_MODE (x3) != V16SFmode
          || !vector_operand (operands[1], V16SFmode)
          || !
#line 8170 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 2617; /* avx512f_getexpv16sf */

    case V8SFmode:
      if (!register_operand (operands[0], V8SFmode)
          || GET_MODE (x3) != V8SFmode
          || !vector_operand (operands[1], V8SFmode)
          || !(
#line 8170 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 2621; /* avx512vl_getexpv8sf */

    case V4SFmode:
      if (!register_operand (operands[0], V4SFmode)
          || GET_MODE (x3) != V4SFmode
          || !vector_operand (operands[1], V4SFmode)
          || !(
#line 8170 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 2625; /* avx512vl_getexpv4sf */

    case V8DFmode:
      if (!register_operand (operands[0], V8DFmode)
          || GET_MODE (x3) != V8DFmode
          || !vector_operand (operands[1], V8DFmode)
          || !
#line 8170 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 2629; /* avx512f_getexpv8df */

    case V4DFmode:
      if (!register_operand (operands[0], V4DFmode)
          || GET_MODE (x3) != V4DFmode
          || !vector_operand (operands[1], V4DFmode)
          || !(
#line 8170 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 2633; /* avx512vl_getexpv4df */

    case V2DFmode:
      if (!register_operand (operands[0], V2DFmode)
          || GET_MODE (x3) != V2DFmode
          || !vector_operand (operands[1], V2DFmode)
          || !(
#line 8170 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 2637; /* avx512vl_getexpv2df */

    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;
  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 V16SImode:
      if (!register_operand (operands[0], V16SImode)
          || GET_MODE (x3) != V16SImode
          || !nonimmediate_operand (operands[1], V16SImode)
          || !
#line 19202 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512CD))
        return -1;
      return 4921; /* *conflictv16si */

    case V8SImode:
      if (!register_operand (operands[0], V8SImode)
          || GET_MODE (x3) != V8SImode
          || !nonimmediate_operand (operands[1], V8SImode)
          || !(
#line 19202 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512CD) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4923; /* *conflictv8si */

    case V4SImode:
      if (!register_operand (operands[0], V4SImode)
          || GET_MODE (x3) != V4SImode
          || !nonimmediate_operand (operands[1], V4SImode)
          || !(
#line 19202 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512CD) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4925; /* *conflictv4si */

    case V8DImode:
      if (!register_operand (operands[0], V8DImode)
          || GET_MODE (x3) != V8DImode
          || !nonimmediate_operand (operands[1], V8DImode)
          || !
#line 19202 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512CD))
        return -1;
      return 4927; /* *conflictv8di */

    case V4DImode:
      if (!register_operand (operands[0], V4DImode)
          || GET_MODE (x3) != V4DImode
          || !nonimmediate_operand (operands[1], V4DImode)
          || !(
#line 19202 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512CD) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4929; /* *conflictv4di */

    case V2DImode:
      if (!register_operand (operands[0], V2DImode)
          || GET_MODE (x3) != V2DImode
          || !nonimmediate_operand (operands[1], V2DImode)
          || !(
#line 19202 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512CD) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4931; /* *conflictv2di */

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
    case MEM:
      operands[1] = x4;
      switch (GET_MODE (operands[0]))
        {
        case V16SImode:
          if (!register_operand (operands[0], V16SImode)
              || GET_MODE (x3) != V16SImode
              || !nonimmediate_operand (operands[1], V16SFmode)
              || !
#line 4486 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2185; /* *avx512f_ufix_notruncv16sfv16si */

        case V8SImode:
          switch (pattern306 (x3, V8SImode))
            {
            case 0:
              if (!(
#line 4486 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 343 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2189; /* *avx512vl_ufix_notruncv8sfv8si */

            case 1:
              if (!
#line 5102 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 2322; /* ufix_notruncv8dfv8si2 */

            default:
              return -1;
            }

        case V4SImode:
          switch (pattern307 (x3, V4SImode))
            {
            case 0:
              if (!(
#line 4486 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 343 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2193; /* *avx512vl_ufix_notruncv4sfv4si */

            case 1:
              if (!(
#line 5102 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 247 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2326; /* ufix_notruncv4dfv4si2 */

            default:
              return -1;
            }

        case V8DImode:
          switch (pattern306 (x3, V8DImode))
            {
            case 0:
              if (!
#line 4519 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1))
                return -1;
              return 2205; /* *avx512dq_cvtps2uqqv8di */

            case 1:
              if (!
#line 5186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1))
                return -1;
              return 2370; /* ufix_notruncv8dfv8di2 */

            default:
              return -1;
            }

        case V4DImode:
          switch (pattern307 (x3, V4DImode))
            {
            case 0:
              if (!(
#line 4519 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 319 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2209; /* *avx512dq_cvtps2uqqv4di */

            case 1:
              if (!(
#line 5186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 270 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2374; /* ufix_notruncv4dfv4di2 */

            default:
              return -1;
            }

        case V2DImode:
          if (!register_operand (operands[0], V2DImode)
              || GET_MODE (x3) != V2DImode
              || !nonimmediate_operand (operands[1], V2DFmode)
              || !(
#line 5186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 270 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 2376; /* ufix_notruncv2dfv2di2 */

        default:
          return -1;
        }

    case VEC_SELECT:
      if (pattern171 (x3) != 0
          || !
#line 4532 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && TARGET_AVX512VL))
        return -1;
      return 2211; /* *avx512dq_cvtps2uqqv2di */

    default:
      return -1;
    }
}

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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  switch (pattern172 (x3))
    {
    case 0:
      switch (GET_MODE (operands[1]))
        {
        case V16QImode:
          if (!register_operand (operands[1], V16QImode)
              || !(
#line 5406 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 2421; /* avx512vl_cvtb2maskv16qi */

        case V16HImode:
          if (!register_operand (operands[1], V16HImode)
              || !(
#line 5406 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 2424; /* avx512vl_cvtw2maskv16hi */

        case V16SImode:
          if (!register_operand (operands[1], V16SImode)
              || !
#line 5416 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ))
            return -1;
          return 2426; /* avx512f_cvtd2maskv16si */

        default:
          return -1;
        }

    case 1:
      switch (GET_MODE (operands[1]))
        {
        case V8HImode:
          if (!register_operand (operands[1], V8HImode)
              || !(
#line 5406 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 2425; /* avx512vl_cvtw2maskv8hi */

        case V8SImode:
          if (!register_operand (operands[1], V8SImode)
              || !(
#line 5416 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 2427; /* avx512vl_cvtd2maskv8si */

        case V4SImode:
          if (!register_operand (operands[1], V4SImode)
              || !(
#line 5416 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 2428; /* avx512vl_cvtd2maskv4si */

        case V8DImode:
          if (!register_operand (operands[1], V8DImode)
              || !
#line 5416 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ))
            return -1;
          return 2429; /* avx512f_cvtq2maskv8di */

        case V4DImode:
          if (!register_operand (operands[1], V4DImode)
              || !(
#line 5416 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 2430; /* avx512vl_cvtq2maskv4di */

        case V2DImode:
          if (!register_operand (operands[1], V2DImode)
              || !(
#line 5416 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 2431; /* avx512vl_cvtq2maskv2di */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_12 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  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 V8DImode:
      if (!register_operand (operands[0], V8DImode)
          || GET_MODE (x3) != V8DImode
          || !memory_operand (operands[1], V8DImode)
          || !(
#line 14805 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1) && 
#line 359 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
        return -1;
      return 3853; /* avx512f_movntdqa */

    case V4DImode:
      if (!register_operand (operands[0], V4DImode)
          || GET_MODE (x3) != V4DImode
          || !memory_operand (operands[1], V4DImode)
          || !(
#line 14805 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1) && 
#line 359 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
        return -1;
      return 3854; /* avx2_movntdqa */

    case V2DImode:
      if (!register_operand (operands[0], V2DImode)
          || GET_MODE (x3) != V2DImode
          || !memory_operand (operands[1], V2DImode)
          || !
#line 14805 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1))
        return -1;
      return 3855; /* sse4_1_movntdqa */

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != MEM)
    return -1;
  x3 = XEXP (x2, 0);
  operands[0] = x3;
  x4 = XEXP (x1, 1);
  x5 = XVECEXP (x4, 0, 2);
  x6 = XEXP (x5, 0);
  if (!rtx_equal_p (x6, operands[0]))
    return -1;
  switch (GET_MODE (x2))
    {
    case V8QImode:
      switch (pattern481 (x4, V8QImode))
        {
        case 0:
          if (!(
#line 1558 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_SSE || TARGET_3DNOW_A) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
            return -1;
          return 1219; /* *mmx_maskmovq */

        case 1:
          if (!(
#line 1558 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_SSE || TARGET_3DNOW_A) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
            return -1;
          return 1220; /* *mmx_maskmovq */

        default:
          return -1;
        }

    case V16QImode:
      switch (pattern481 (x4, V16QImode))
        {
        case 0:
          if (!(
#line 13840 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
            return -1;
          return 3739; /* *sse2_maskmovdqu */

        case 1:
          if (!(
#line 13840 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
            return -1;
          return 3740; /* *sse2_maskmovdqu */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_14 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  if (pnum_clobbers == NULL)
    return -1;
  x2 = XEXP (x1, 1);
  x3 = XVECEXP (x2, 0, 2);
  if (GET_CODE (x3) != MEM)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != UNSPEC
      || XVECLEN (x4, 0) != 3
      || XINT (x4, 1) != 147)
    return -1;
  x5 = XEXP (x1, 0);
  operands[0] = x5;
  x6 = XVECEXP (x4, 0, 2);
  if (!const1248_operand (x6, SImode))
    return -1;
  x7 = XVECEXP (x2, 0, 0);
  switch (GET_CODE (x7))
    {
    case REG:
    case SUBREG:
      operands[1] = x7;
      x8 = XVECEXP (x2, 0, 1);
      operands[7] = x8;
      operands[6] = x3;
      x9 = XVECEXP (x4, 0, 0);
      operands[4] = x9;
      x10 = XVECEXP (x4, 0, 1);
      operands[3] = x10;
      operands[5] = x6;
      switch (GET_MODE (operands[0]))
        {
        case V16SImode:
          if (!register_operand (operands[0], V16SImode)
              || GET_MODE (x2) != V16SImode
              || !vsib_mem_operator (operands[6], SImode))
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V16SImode:
              if (!register_operand (operands[1], V16SImode)
                  || !register_operand (operands[7], HImode))
                return -1;
              switch (pattern890 (x4, V16SImode))
                {
                case 0:
                  if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  *pnum_clobbers = 1;
                  return 4661; /* *avx512f_gathersiv16si */

                case 1:
                  if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  *pnum_clobbers = 1;
                  return 4662; /* *avx512f_gathersiv16si */

                default:
                  return -1;
                }

            case V8SImode:
              if (!register_operand (operands[1], V8SImode)
                  || !register_operand (operands[7], QImode))
                return -1;
              switch (pattern890 (x4, V8DImode))
                {
                case 0:
                  if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  *pnum_clobbers = 1;
                  return 4709; /* *avx512f_gatherdiv16si */

                case 1:
                  if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  *pnum_clobbers = 1;
                  return 4710; /* *avx512f_gatherdiv16si */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case V16SFmode:
          if (!register_operand (operands[0], V16SFmode)
              || GET_MODE (x2) != V16SFmode
              || !vsib_mem_operator (operands[6], SFmode))
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V16SFmode:
              if (!register_operand (operands[1], V16SFmode)
                  || !register_operand (operands[7], HImode))
                return -1;
              switch (pattern890 (x4, V16SImode))
                {
                case 0:
                  if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  *pnum_clobbers = 1;
                  return 4663; /* *avx512f_gathersiv16sf */

                case 1:
                  if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  *pnum_clobbers = 1;
                  return 4664; /* *avx512f_gathersiv16sf */

                default:
                  return -1;
                }

            case V8SFmode:
              if (!register_operand (operands[1], V8SFmode)
                  || !register_operand (operands[7], QImode))
                return -1;
              switch (pattern890 (x4, V8DImode))
                {
                case 0:
                  if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  *pnum_clobbers = 1;
                  return 4711; /* *avx512f_gatherdiv16sf */

                case 1:
                  if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  *pnum_clobbers = 1;
                  return 4712; /* *avx512f_gatherdiv16sf */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case V8DImode:
          switch (pattern765 (x2, DImode, V8DImode))
            {
            case 0:
              if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              *pnum_clobbers = 1;
              return 4665; /* *avx512f_gathersiv8di */

            case 1:
              if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              *pnum_clobbers = 1;
              return 4713; /* *avx512f_gatherdiv8di */

            case 2:
              if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              *pnum_clobbers = 1;
              return 4666; /* *avx512f_gathersiv8di */

            case 3:
              if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              *pnum_clobbers = 1;
              return 4714; /* *avx512f_gatherdiv8di */

            default:
              return -1;
            }

        case V8DFmode:
          switch (pattern765 (x2, DFmode, V8DFmode))
            {
            case 0:
              if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              *pnum_clobbers = 1;
              return 4667; /* *avx512f_gathersiv8df */

            case 1:
              if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              *pnum_clobbers = 1;
              return 4715; /* *avx512f_gatherdiv8df */

            case 2:
              if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              *pnum_clobbers = 1;
              return 4668; /* *avx512f_gathersiv8df */

            case 3:
              if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              *pnum_clobbers = 1;
              return 4716; /* *avx512f_gatherdiv8df */

            default:
              return -1;
            }

        case V8SImode:
          if (pattern766 (x2, SImode, V8SImode) != 0)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V8SImode:
              if (!register_operand (operands[1], V8SImode))
                return -1;
              switch (pattern890 (x4, V8SImode))
                {
                case 0:
                  if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                    return -1;
                  *pnum_clobbers = 1;
                  return 4669; /* *avx512f_gathersiv8si */

                case 1:
                  if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                    return -1;
                  *pnum_clobbers = 1;
                  return 4670; /* *avx512f_gathersiv8si */

                default:
                  return -1;
                }

            case V4SImode:
              if (!register_operand (operands[1], V4SImode))
                return -1;
              switch (pattern890 (x4, V4DImode))
                {
                case 0:
                  if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                    return -1;
                  *pnum_clobbers = 1;
                  return 4717; /* *avx512f_gatherdiv8si */

                case 1:
                  if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                    return -1;
                  *pnum_clobbers = 1;
                  return 4718; /* *avx512f_gatherdiv8si */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case V8SFmode:
          if (pattern766 (x2, SFmode, V8SFmode) != 0)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V8SFmode:
              if (!register_operand (operands[1], V8SFmode))
                return -1;
              switch (pattern890 (x4, V8SImode))
                {
                case 0:
                  if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                    return -1;
                  *pnum_clobbers = 1;
                  return 4671; /* *avx512f_gathersiv8sf */

                case 1:
                  if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                    return -1;
                  *pnum_clobbers = 1;
                  return 4672; /* *avx512f_gathersiv8sf */

                default:
                  return -1;
                }

            case V4SFmode:
              if (!register_operand (operands[1], V4SFmode))
                return -1;
              switch (pattern890 (x4, V4DImode))
                {
                case 0:
                  if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                    return -1;
                  *pnum_clobbers = 1;
                  return 4719; /* *avx512f_gatherdiv8sf */

                case 1:
                  if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                    return -1;
                  *pnum_clobbers = 1;
                  return 4720; /* *avx512f_gatherdiv8sf */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case V4DImode:
          switch (pattern768 (x2, DImode, V4DImode))
            {
            case 0:
              if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4673; /* *avx512f_gathersiv4di */

            case 1:
              if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4721; /* *avx512f_gatherdiv4di */

            case 2:
              if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4674; /* *avx512f_gathersiv4di */

            case 3:
              if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4722; /* *avx512f_gatherdiv4di */

            default:
              return -1;
            }

        case V4DFmode:
          switch (pattern768 (x2, DFmode, V4DFmode))
            {
            case 0:
              if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4675; /* *avx512f_gathersiv4df */

            case 1:
              if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4723; /* *avx512f_gatherdiv4df */

            case 2:
              if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4676; /* *avx512f_gathersiv4df */

            case 3:
              if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4724; /* *avx512f_gatherdiv4df */

            default:
              return -1;
            }

        case V4SImode:
          switch (pattern770 (x2, SImode, V4SImode))
            {
            case 0:
              if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4677; /* *avx512f_gathersiv4si */

            case 1:
              if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4725; /* *avx512f_gatherdiv4si */

            case 2:
              if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4678; /* *avx512f_gathersiv4si */

            case 3:
              if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4726; /* *avx512f_gatherdiv4si */

            default:
              return -1;
            }

        case V4SFmode:
          switch (pattern770 (x2, SFmode, V4SFmode))
            {
            case 0:
              if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4679; /* *avx512f_gathersiv4sf */

            case 1:
              if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4727; /* *avx512f_gatherdiv4sf */

            case 2:
              if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4680; /* *avx512f_gathersiv4sf */

            case 3:
              if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4728; /* *avx512f_gatherdiv4sf */

            default:
              return -1;
            }

        case V2DImode:
          switch (pattern770 (x2, DImode, V2DImode))
            {
            case 0:
              if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4681; /* *avx512f_gathersiv2di */

            case 1:
              if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4729; /* *avx512f_gatherdiv2di */

            case 2:
              if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4682; /* *avx512f_gathersiv2di */

            case 3:
              if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4730; /* *avx512f_gatherdiv2di */

            default:
              return -1;
            }

        case V2DFmode:
          switch (pattern770 (x2, DFmode, V2DFmode))
            {
            case 0:
              if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4683; /* *avx512f_gathersiv2df */

            case 1:
              if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4731; /* *avx512f_gatherdiv2df */

            case 2:
              if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4684; /* *avx512f_gathersiv2df */

            case 3:
              if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4732; /* *avx512f_gatherdiv2df */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case PC:
      x8 = XVECEXP (x2, 0, 1);
      operands[6] = x8;
      operands[5] = x3;
      x9 = XVECEXP (x4, 0, 0);
      operands[3] = x9;
      x10 = XVECEXP (x4, 0, 1);
      operands[2] = x10;
      operands[4] = x6;
      switch (GET_MODE (operands[0]))
        {
        case V16SImode:
          switch (pattern740 (x2, SImode, V16SImode))
            {
            case 0:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              *pnum_clobbers = 1;
              return 4685; /* *avx512f_gathersiv16si_2 */

            case 1:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              *pnum_clobbers = 1;
              return 4686; /* *avx512f_gathersiv16si_2 */

            case 2:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              *pnum_clobbers = 1;
              return 4733; /* *avx512f_gatherdiv16si_2 */

            case 3:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              *pnum_clobbers = 1;
              return 4734; /* *avx512f_gatherdiv16si_2 */

            default:
              return -1;
            }

        case V16SFmode:
          switch (pattern740 (x2, SFmode, V16SFmode))
            {
            case 0:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              *pnum_clobbers = 1;
              return 4687; /* *avx512f_gathersiv16sf_2 */

            case 1:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              *pnum_clobbers = 1;
              return 4688; /* *avx512f_gathersiv16sf_2 */

            case 2:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              *pnum_clobbers = 1;
              return 4735; /* *avx512f_gatherdiv16sf_2 */

            case 3:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              *pnum_clobbers = 1;
              return 4736; /* *avx512f_gatherdiv16sf_2 */

            default:
              return -1;
            }

        case V8DImode:
          switch (pattern742 (x2, DImode, V8DImode))
            {
            case 0:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              *pnum_clobbers = 1;
              return 4689; /* *avx512f_gathersiv8di_2 */

            case 1:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              *pnum_clobbers = 1;
              return 4737; /* *avx512f_gatherdiv8di_2 */

            case 2:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              *pnum_clobbers = 1;
              return 4690; /* *avx512f_gathersiv8di_2 */

            case 3:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              *pnum_clobbers = 1;
              return 4738; /* *avx512f_gatherdiv8di_2 */

            default:
              return -1;
            }

        case V8DFmode:
          switch (pattern742 (x2, DFmode, V8DFmode))
            {
            case 0:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              *pnum_clobbers = 1;
              return 4691; /* *avx512f_gathersiv8df_2 */

            case 1:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              *pnum_clobbers = 1;
              return 4739; /* *avx512f_gatherdiv8df_2 */

            case 2:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              *pnum_clobbers = 1;
              return 4692; /* *avx512f_gathersiv8df_2 */

            case 3:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              *pnum_clobbers = 1;
              return 4740; /* *avx512f_gatherdiv8df_2 */

            default:
              return -1;
            }

        case V8SImode:
          switch (pattern744 (x2, SImode, V8SImode))
            {
            case 0:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4693; /* *avx512f_gathersiv8si_2 */

            case 1:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4741; /* *avx512f_gatherdiv8si_2 */

            case 2:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4694; /* *avx512f_gathersiv8si_2 */

            case 3:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4742; /* *avx512f_gatherdiv8si_2 */

            default:
              return -1;
            }

        case V8SFmode:
          switch (pattern744 (x2, SFmode, V8SFmode))
            {
            case 0:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4695; /* *avx512f_gathersiv8sf_2 */

            case 1:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4743; /* *avx512f_gatherdiv8sf_2 */

            case 2:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4696; /* *avx512f_gathersiv8sf_2 */

            case 3:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4744; /* *avx512f_gatherdiv8sf_2 */

            default:
              return -1;
            }

        case V4DImode:
          switch (pattern746 (x2, DImode, V4DImode))
            {
            case 0:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4697; /* *avx512f_gathersiv4di_2 */

            case 1:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4745; /* *avx512f_gatherdiv4di_2 */

            case 2:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4698; /* *avx512f_gathersiv4di_2 */

            case 3:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4746; /* *avx512f_gatherdiv4di_2 */

            default:
              return -1;
            }

        case V4DFmode:
          switch (pattern746 (x2, DFmode, V4DFmode))
            {
            case 0:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4699; /* *avx512f_gathersiv4df_2 */

            case 1:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4747; /* *avx512f_gatherdiv4df_2 */

            case 2:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4700; /* *avx512f_gathersiv4df_2 */

            case 3:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4748; /* *avx512f_gatherdiv4df_2 */

            default:
              return -1;
            }

        case V4SImode:
          switch (pattern748 (x2, SImode, V4SImode))
            {
            case 0:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4701; /* *avx512f_gathersiv4si_2 */

            case 1:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4749; /* *avx512f_gatherdiv4si_2 */

            case 2:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4702; /* *avx512f_gathersiv4si_2 */

            case 3:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4750; /* *avx512f_gatherdiv4si_2 */

            default:
              return -1;
            }

        case V4SFmode:
          switch (pattern748 (x2, SFmode, V4SFmode))
            {
            case 0:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4703; /* *avx512f_gathersiv4sf_2 */

            case 1:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4751; /* *avx512f_gatherdiv4sf_2 */

            case 2:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4704; /* *avx512f_gathersiv4sf_2 */

            case 3:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4752; /* *avx512f_gatherdiv4sf_2 */

            default:
              return -1;
            }

        case V2DImode:
          switch (pattern748 (x2, DImode, V2DImode))
            {
            case 0:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4705; /* *avx512f_gathersiv2di_2 */

            case 1:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4753; /* *avx512f_gatherdiv2di_2 */

            case 2:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4706; /* *avx512f_gathersiv2di_2 */

            case 3:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4754; /* *avx512f_gatherdiv2di_2 */

            default:
              return -1;
            }

        case V2DFmode:
          switch (pattern748 (x2, DFmode, V2DFmode))
            {
            case 0:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4707; /* *avx512f_gathersiv2df_2 */

            case 1:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4755; /* *avx512f_gatherdiv2df_2 */

            case 2:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4708; /* *avx512f_gathersiv2df_2 */

            case 3:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              *pnum_clobbers = 1;
              return 4756; /* *avx512f_gatherdiv2df_2 */

            default:
              return -1;
            }

        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, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  switch (GET_CODE (x6))
    {
    case REG:
    case SUBREG:
    case MEM:
      operands[3] = x6;
      switch (GET_MODE (operands[0]))
        {
        case V8SFmode:
          if (!register_operand (operands[0], V8SFmode)
              || GET_MODE (x3) != V8SFmode)
            return -1;
          if (nonimmediate_operand (operands[1], V8SFmode)
              && nonimmediate_operand (operands[2], V8SFmode)
              && nonimmediate_operand (operands[3], V8SFmode)
              && (
#line 3910 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4) && 
#line 221 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return 2017; /* *fma_fmaddsub_v8sf */
          if (!vector_operand (operands[1], V8SFmode)
              || !vector_operand (operands[2], V8SFmode)
              || !vector_operand (operands[3], V8SFmode)
              || !(
#line 3928 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1) && 
#line 3615 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 2026; /* *fma_fmaddsub_v8sf */

        case V4SFmode:
          if (!register_operand (operands[0], V4SFmode)
              || GET_MODE (x3) != V4SFmode)
            return -1;
          if (nonimmediate_operand (operands[1], V4SFmode)
              && nonimmediate_operand (operands[2], V4SFmode)
              && nonimmediate_operand (operands[3], V4SFmode)
              && 
#line 3910 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4))
            return 2018; /* *fma_fmaddsub_v4sf */
          if (!vector_operand (operands[1], V4SFmode)
              || !vector_operand (operands[2], V4SFmode)
              || !vector_operand (operands[3], V4SFmode)
              || !(
#line 3928 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1) && 
#line 3615 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 2028; /* *fma_fmaddsub_v4sf */

        case V4DFmode:
          if (!register_operand (operands[0], V4DFmode)
              || GET_MODE (x3) != V4DFmode)
            return -1;
          if (nonimmediate_operand (operands[1], V4DFmode)
              && nonimmediate_operand (operands[2], V4DFmode)
              && nonimmediate_operand (operands[3], V4DFmode)
              && (
#line 3910 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return 2019; /* *fma_fmaddsub_v4df */
          if (!vector_operand (operands[1], V4DFmode)
              || !vector_operand (operands[2], V4DFmode)
              || !vector_operand (operands[3], V4DFmode)
              || !(
#line 3928 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1) && 
#line 3616 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 2035; /* *fma_fmaddsub_v4df */

        case V2DFmode:
          if (!register_operand (operands[0], V2DFmode)
              || GET_MODE (x3) != V2DFmode)
            return -1;
          if (nonimmediate_operand (operands[1], V2DFmode)
              && nonimmediate_operand (operands[2], V2DFmode)
              && nonimmediate_operand (operands[3], V2DFmode)
              && (
#line 3910 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return 2020; /* *fma_fmaddsub_v2df */
          if (!vector_operand (operands[1], V2DFmode)
              || !vector_operand (operands[2], V2DFmode)
              || !vector_operand (operands[3], V2DFmode)
              || !(
#line 3928 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1) && 
#line 3616 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 2037; /* *fma_fmaddsub_v2df */

        case SFmode:
          if (pattern430 (x3, SFmode) != 0
              || !
#line 3928 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1))
            return -1;
          return 2021; /* *fma_fmaddsub_sf */

        case V16SFmode:
          if (pattern430 (x3, V16SFmode) != 0
              || !
#line 3928 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1))
            return -1;
          return 2022; /* *fma_fmaddsub_v16sf */

        case DFmode:
          if (pattern430 (x3, DFmode) != 0
              || !
#line 3928 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1))
            return -1;
          return 2030; /* *fma_fmaddsub_df */

        case V8DFmode:
          if (pattern430 (x3, V8DFmode) != 0
              || !
#line 3928 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1))
            return -1;
          return 2031; /* *fma_fmaddsub_v8df */

        default:
          return -1;
        }

    case NEG:
      x7 = XEXP (x6, 0);
      operands[3] = x7;
      switch (GET_MODE (operands[0]))
        {
        case V8SFmode:
          if (!register_operand (operands[0], V8SFmode)
              || GET_MODE (x3) != V8SFmode
              || GET_MODE (x6) != V8SFmode)
            return -1;
          if (nonimmediate_operand (operands[1], V8SFmode)
              && nonimmediate_operand (operands[2], V8SFmode)
              && nonimmediate_operand (operands[3], V8SFmode)
              && (
#line 3978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4) && 
#line 221 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return 2063; /* *fma_fmsubadd_v8sf */
          if (!vector_operand (operands[1], V8SFmode)
              || !vector_operand (operands[2], V8SFmode)
              || !vector_operand (operands[3], V8SFmode)
              || !(
#line 3997 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1) && 
#line 3615 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 2072; /* *fma_fmsubadd_v8sf */

        case V4SFmode:
          if (!register_operand (operands[0], V4SFmode)
              || GET_MODE (x3) != V4SFmode
              || GET_MODE (x6) != V4SFmode)
            return -1;
          if (nonimmediate_operand (operands[1], V4SFmode)
              && nonimmediate_operand (operands[2], V4SFmode)
              && nonimmediate_operand (operands[3], V4SFmode)
              && 
#line 3978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4))
            return 2064; /* *fma_fmsubadd_v4sf */
          if (!vector_operand (operands[1], V4SFmode)
              || !vector_operand (operands[2], V4SFmode)
              || !vector_operand (operands[3], V4SFmode)
              || !(
#line 3997 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1) && 
#line 3615 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 2074; /* *fma_fmsubadd_v4sf */

        case V4DFmode:
          if (!register_operand (operands[0], V4DFmode)
              || GET_MODE (x3) != V4DFmode
              || GET_MODE (x6) != V4DFmode)
            return -1;
          if (nonimmediate_operand (operands[1], V4DFmode)
              && nonimmediate_operand (operands[2], V4DFmode)
              && nonimmediate_operand (operands[3], V4DFmode)
              && (
#line 3978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return 2065; /* *fma_fmsubadd_v4df */
          if (!vector_operand (operands[1], V4DFmode)
              || !vector_operand (operands[2], V4DFmode)
              || !vector_operand (operands[3], V4DFmode)
              || !(
#line 3997 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1) && 
#line 3616 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 2081; /* *fma_fmsubadd_v4df */

        case V2DFmode:
          if (!register_operand (operands[0], V2DFmode)
              || GET_MODE (x3) != V2DFmode
              || GET_MODE (x6) != V2DFmode)
            return -1;
          if (nonimmediate_operand (operands[1], V2DFmode)
              && nonimmediate_operand (operands[2], V2DFmode)
              && nonimmediate_operand (operands[3], V2DFmode)
              && (
#line 3978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return 2066; /* *fma_fmsubadd_v2df */
          if (!vector_operand (operands[1], V2DFmode)
              || !vector_operand (operands[2], V2DFmode)
              || !vector_operand (operands[3], V2DFmode)
              || !(
#line 3997 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1) && 
#line 3616 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 2083; /* *fma_fmsubadd_v2df */

        case SFmode:
          if (pattern431 (x3, SFmode) != 0
              || !
#line 3997 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1))
            return -1;
          return 2067; /* *fma_fmsubadd_sf */

        case V16SFmode:
          if (pattern431 (x3, V16SFmode) != 0
              || !
#line 3997 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1))
            return -1;
          return 2068; /* *fma_fmsubadd_v16sf */

        case DFmode:
          if (pattern431 (x3, DFmode) != 0
              || !
#line 3997 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1))
            return -1;
          return 2076; /* *fma_fmsubadd_df */

        case V8DFmode:
          if (pattern431 (x3, V8DFmode) != 0
              || !
#line 3997 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1))
            return -1;
          return 2077; /* *fma_fmsubadd_v8df */

        default:
          return -1;
        }

    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 = XEXP (x1, 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 V8SFmode:
      if (pattern357 (x3, V8SFmode) != 0
          || !
#line 2597 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
        return -1;
      return 1665; /* avx_cmpv8sf3 */

    case V4SFmode:
      if (pattern357 (x3, V4SFmode) != 0
          || !
#line 2597 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
        return -1;
      return 1666; /* avx_cmpv4sf3 */

    case V4DFmode:
      if (pattern357 (x3, V4DFmode) != 0
          || !
#line 2597 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
        return -1;
      return 1667; /* avx_cmpv4df3 */

    case V2DFmode:
      if (pattern357 (x3, V2DFmode) != 0
          || !(
#line 2597 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
        return -1;
      return 1668; /* avx_cmpv2df3 */

    case HImode:
      if (!register_operand (operands[0], HImode)
          || GET_MODE (x3) != HImode)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case V16SImode:
          if (!register_operand (operands[1], V16SImode)
              || !nonimmediate_operand (operands[2], V16SImode)
              || !const_0_to_7_operand (operands[3], SImode)
              || !
#line 2688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1))
            return -1;
          return 1681; /* avx512f_cmpv16si3 */

        case V16SFmode:
          if (!register_operand (operands[1], V16SFmode)
              || !nonimmediate_operand (operands[2], V16SFmode)
              || !const_0_to_31_operand (operands[3], SImode)
              || !
#line 2688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1))
            return -1;
          return 1697; /* avx512f_cmpv16sf3 */

        case V16QImode:
          if (!register_operand (operands[1], V16QImode)
              || !nonimmediate_operand (operands[2], V16QImode)
              || !const_0_to_7_operand (operands[3], SImode)
              || !(
#line 2702 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1715; /* avx512vl_cmpv16qi3 */

        case V16HImode:
          if (!register_operand (operands[1], V16HImode)
              || !nonimmediate_operand (operands[2], V16HImode)
              || !const_0_to_7_operand (operands[3], SImode)
              || !(
#line 2702 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1721; /* avx512vl_cmpv16hi3 */

        default:
          return -1;
        }

    case QImode:
      if (!register_operand (operands[0], QImode)
          || GET_MODE (x3) != QImode)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case V8SImode:
          if (!register_operand (operands[1], V8SImode)
              || !nonimmediate_operand (operands[2], V8SImode)
              || !const_0_to_7_operand (operands[3], SImode)
              || !(
#line 2688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 175 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1685; /* avx512vl_cmpv8si3 */

        case V4SImode:
          if (!register_operand (operands[1], V4SImode)
              || !nonimmediate_operand (operands[2], V4SImode)
              || !const_0_to_7_operand (operands[3], SImode)
              || !(
#line 2688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 175 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1687; /* avx512vl_cmpv4si3 */

        case V8DImode:
          if (!register_operand (operands[1], V8DImode)
              || !nonimmediate_operand (operands[2], V8DImode)
              || !const_0_to_7_operand (operands[3], SImode)
              || !
#line 2688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1))
            return -1;
          return 1689; /* avx512f_cmpv8di3 */

        case V4DImode:
          if (!register_operand (operands[1], V4DImode)
              || !nonimmediate_operand (operands[2], V4DImode)
              || !const_0_to_7_operand (operands[3], SImode)
              || !(
#line 2688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 176 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1693; /* avx512vl_cmpv4di3 */

        case V2DImode:
          if (!register_operand (operands[1], V2DImode)
              || !nonimmediate_operand (operands[2], V2DImode)
              || !const_0_to_7_operand (operands[3], SImode)
              || !(
#line 2688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 176 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1695; /* avx512vl_cmpv2di3 */

        case V8SFmode:
          if (!register_operand (operands[1], V8SFmode)
              || !nonimmediate_operand (operands[2], V8SFmode)
              || !const_0_to_31_operand (operands[3], SImode)
              || !(
#line 2688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 177 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1701; /* avx512vl_cmpv8sf3 */

        case V4SFmode:
          if (!register_operand (operands[1], V4SFmode)
              || !nonimmediate_operand (operands[2], V4SFmode)
              || !const_0_to_31_operand (operands[3], SImode)
              || !(
#line 2688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 177 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1703; /* avx512vl_cmpv4sf3 */

        case V8DFmode:
          if (!register_operand (operands[1], V8DFmode)
              || !nonimmediate_operand (operands[2], V8DFmode)
              || !const_0_to_31_operand (operands[3], SImode)
              || !
#line 2688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1))
            return -1;
          return 1705; /* avx512f_cmpv8df3 */

        case V4DFmode:
          if (!register_operand (operands[1], V4DFmode)
              || !nonimmediate_operand (operands[2], V4DFmode)
              || !const_0_to_31_operand (operands[3], SImode)
              || !(
#line 2688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1709; /* avx512vl_cmpv4df3 */

        case V2DFmode:
          if (!register_operand (operands[1], V2DFmode)
              || !nonimmediate_operand (operands[2], V2DFmode)
              || !const_0_to_31_operand (operands[3], SImode)
              || !(
#line 2688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1711; /* avx512vl_cmpv2df3 */

        case V8HImode:
          if (!register_operand (operands[1], V8HImode)
              || !nonimmediate_operand (operands[2], V8HImode)
              || !const_0_to_7_operand (operands[3], SImode)
              || !(
#line 2702 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1723; /* avx512vl_cmpv8hi3 */

        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 = XEXP (x1, 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 V16SImode:
      if (pattern42 (x3, V16SImode) != 0
          || !
#line 17785 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 4347; /* avx512f_vpermi2varv16si3 */

    case V16SFmode:
      if (pattern359 (x3, V16SFmode, V16SImode) != 0
          || !
#line 17785 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 4349; /* avx512f_vpermi2varv16sf3 */

    case V8DImode:
      if (pattern42 (x3, V8DImode) != 0
          || !
#line 17785 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 4351; /* avx512f_vpermi2varv8di3 */

    case V8DFmode:
      if (pattern359 (x3, V8DFmode, V8DImode) != 0
          || !
#line 17785 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 4353; /* avx512f_vpermi2varv8df3 */

    case V8SImode:
      if (pattern42 (x3, V8SImode) != 0
          || !(
#line 17785 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4355; /* avx512vl_vpermi2varv8si3 */

    case V8SFmode:
      if (pattern359 (x3, V8SFmode, V8SImode) != 0
          || !(
#line 17785 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4357; /* avx512vl_vpermi2varv8sf3 */

    case V4DImode:
      if (pattern42 (x3, V4DImode) != 0
          || !(
#line 17785 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4359; /* avx512vl_vpermi2varv4di3 */

    case V4DFmode:
      if (pattern359 (x3, V4DFmode, V4DImode) != 0
          || !(
#line 17785 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4361; /* avx512vl_vpermi2varv4df3 */

    case V4SImode:
      if (pattern42 (x3, V4SImode) != 0
          || !(
#line 17785 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4363; /* avx512vl_vpermi2varv4si3 */

    case V4SFmode:
      if (pattern359 (x3, V4SFmode, V4SImode) != 0
          || !(
#line 17785 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4365; /* avx512vl_vpermi2varv4sf3 */

    case V2DImode:
      if (pattern42 (x3, V2DImode) != 0
          || !(
#line 17785 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4367; /* avx512vl_vpermi2varv2di3 */

    case V2DFmode:
      if (pattern359 (x3, V2DFmode, V2DImode) != 0
          || !(
#line 17785 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4369; /* avx512vl_vpermi2varv2df3 */

    case V64QImode:
      if (pattern42 (x3, V64QImode) != 0
          || !
#line 17798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VBMI))
        return -1;
      return 4371; /* avx512bw_vpermi2varv64qi3 */

    case V16QImode:
      if (pattern42 (x3, V16QImode) != 0
          || !(
#line 17798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VBMI) && 
#line 186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4373; /* avx512vl_vpermi2varv16qi3 */

    case V32QImode:
      if (pattern42 (x3, V32QImode) != 0
          || !(
#line 17798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VBMI) && 
#line 186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4375; /* avx512vl_vpermi2varv32qi3 */

    case V8HImode:
      if (pattern42 (x3, V8HImode) != 0
          || !(
#line 17811 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4377; /* avx512vl_vpermi2varv8hi3 */

    case V16HImode:
      if (pattern42 (x3, V16HImode) != 0
          || !(
#line 17811 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4379; /* avx512vl_vpermi2varv16hi3 */

    case V32HImode:
      if (pattern42 (x3, V32HImode) != 0
          || !
#line 17811 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
        return -1;
      return 4381; /* avx512bw_vpermi2varv32hi3 */

    default:
      return -1;
    }
}

static int
recog_18 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 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 V16SImode:
      if (pattern42 (x3, V16SImode) != 0
          || !
#line 17914 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 4401; /* avx512f_vpermt2varv16si3 */

    case V16SFmode:
      if (pattern360 (x3, V16SFmode, V16SImode) != 0
          || !
#line 17914 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 4403; /* avx512f_vpermt2varv16sf3 */

    case V8DImode:
      if (pattern42 (x3, V8DImode) != 0
          || !
#line 17914 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 4405; /* avx512f_vpermt2varv8di3 */

    case V8DFmode:
      if (pattern360 (x3, V8DFmode, V8DImode) != 0
          || !
#line 17914 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 4407; /* avx512f_vpermt2varv8df3 */

    case V8SImode:
      if (pattern42 (x3, V8SImode) != 0
          || !(
#line 17914 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4409; /* avx512vl_vpermt2varv8si3 */

    case V8SFmode:
      if (pattern360 (x3, V8SFmode, V8SImode) != 0
          || !(
#line 17914 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4411; /* avx512vl_vpermt2varv8sf3 */

    case V4DImode:
      if (pattern42 (x3, V4DImode) != 0
          || !(
#line 17914 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4413; /* avx512vl_vpermt2varv4di3 */

    case V4DFmode:
      if (pattern360 (x3, V4DFmode, V4DImode) != 0
          || !(
#line 17914 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4415; /* avx512vl_vpermt2varv4df3 */

    case V4SImode:
      if (pattern42 (x3, V4SImode) != 0
          || !(
#line 17914 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4417; /* avx512vl_vpermt2varv4si3 */

    case V4SFmode:
      if (pattern360 (x3, V4SFmode, V4SImode) != 0
          || !(
#line 17914 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4419; /* avx512vl_vpermt2varv4sf3 */

    case V2DImode:
      if (pattern42 (x3, V2DImode) != 0
          || !(
#line 17914 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4421; /* avx512vl_vpermt2varv2di3 */

    case V2DFmode:
      if (pattern360 (x3, V2DFmode, V2DImode) != 0
          || !(
#line 17914 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4423; /* avx512vl_vpermt2varv2df3 */

    case V64QImode:
      if (pattern42 (x3, V64QImode) != 0
          || !
#line 17927 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VBMI))
        return -1;
      return 4425; /* avx512bw_vpermt2varv64qi3 */

    case V16QImode:
      if (pattern42 (x3, V16QImode) != 0
          || !(
#line 17927 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VBMI) && 
#line 186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4427; /* avx512vl_vpermt2varv16qi3 */

    case V32QImode:
      if (pattern42 (x3, V32QImode) != 0
          || !(
#line 17927 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VBMI) && 
#line 186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4429; /* avx512vl_vpermt2varv32qi3 */

    case V8HImode:
      if (pattern42 (x3, V8HImode) != 0
          || !(
#line 17940 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4431; /* avx512vl_vpermt2varv8hi3 */

    case V16HImode:
      if (pattern42 (x3, V16HImode) != 0
          || !(
#line 17940 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4433; /* avx512vl_vpermt2varv16hi3 */

    case V32HImode:
      if (pattern42 (x3, V32HImode) != 0
          || !
#line 17940 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
        return -1;
      return 4435; /* avx512bw_vpermt2varv32hi3 */

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 2);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 1);
  if (!rtx_equal_p (x6, operands[0]))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case V16SImode:
      if (pattern362 (x3, V16SImode, HImode) != 0
          || !
#line 19056 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 4817; /* avx512f_compressstorev16si_mask */

    case V16SFmode:
      if (pattern362 (x3, V16SFmode, HImode) != 0
          || !
#line 19056 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 4818; /* avx512f_compressstorev16sf_mask */

    case V8DImode:
      if (pattern362 (x3, V8DImode, QImode) != 0
          || !
#line 19056 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 4819; /* avx512f_compressstorev8di_mask */

    case V8DFmode:
      if (pattern362 (x3, V8DFmode, QImode) != 0
          || !
#line 19056 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 4820; /* avx512f_compressstorev8df_mask */

    case V8SImode:
      if (pattern362 (x3, V8SImode, QImode) != 0
          || !(
#line 19056 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4821; /* avx512vl_compressstorev8si_mask */

    case V8SFmode:
      if (pattern362 (x3, V8SFmode, QImode) != 0
          || !(
#line 19056 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4822; /* avx512vl_compressstorev8sf_mask */

    case V4DImode:
      if (pattern362 (x3, V4DImode, QImode) != 0
          || !(
#line 19056 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4823; /* avx512vl_compressstorev4di_mask */

    case V4DFmode:
      if (pattern362 (x3, V4DFmode, QImode) != 0
          || !(
#line 19056 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4824; /* avx512vl_compressstorev4df_mask */

    case V4SImode:
      if (pattern362 (x3, V4SImode, QImode) != 0
          || !(
#line 19056 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4825; /* avx512vl_compressstorev4si_mask */

    case V4SFmode:
      if (pattern362 (x3, V4SFmode, QImode) != 0
          || !(
#line 19056 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4826; /* avx512vl_compressstorev4sf_mask */

    case V2DImode:
      if (pattern362 (x3, V2DImode, QImode) != 0
          || !(
#line 19056 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4827; /* avx512vl_compressstorev2di_mask */

    case V2DFmode:
      if (pattern362 (x3, V2DFmode, QImode) != 0
          || !(
#line 19056 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4828; /* avx512vl_compressstorev2df_mask */

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 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 V16SImode:
      if (pattern361 (x3, V16SImode, HImode) != 0
          || !
#line 19043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 4805; /* avx512f_compressv16si_mask */

    case V16SFmode:
      if (pattern361 (x3, V16SFmode, HImode) != 0
          || !
#line 19043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 4806; /* avx512f_compressv16sf_mask */

    case V8DImode:
      if (pattern361 (x3, V8DImode, QImode) != 0
          || !
#line 19043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 4807; /* avx512f_compressv8di_mask */

    case V8DFmode:
      if (pattern361 (x3, V8DFmode, QImode) != 0
          || !
#line 19043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 4808; /* avx512f_compressv8df_mask */

    case V8SImode:
      if (pattern361 (x3, V8SImode, QImode) != 0
          || !(
#line 19043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4809; /* avx512vl_compressv8si_mask */

    case V8SFmode:
      if (pattern361 (x3, V8SFmode, QImode) != 0
          || !(
#line 19043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4810; /* avx512vl_compressv8sf_mask */

    case V4DImode:
      if (pattern361 (x3, V4DImode, QImode) != 0
          || !(
#line 19043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4811; /* avx512vl_compressv4di_mask */

    case V4DFmode:
      if (pattern361 (x3, V4DFmode, QImode) != 0
          || !(
#line 19043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4812; /* avx512vl_compressv4df_mask */

    case V4SImode:
      if (pattern361 (x3, V4SImode, QImode) != 0
          || !(
#line 19043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4813; /* avx512vl_compressv4si_mask */

    case V4SFmode:
      if (pattern361 (x3, V4SFmode, QImode) != 0
          || !(
#line 19043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4814; /* avx512vl_compressv4sf_mask */

    case V2DImode:
      if (pattern361 (x3, V2DImode, QImode) != 0
          || !(
#line 19043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4815; /* avx512vl_compressv2di_mask */

    case V2DFmode:
      if (pattern361 (x3, V2DFmode, QImode) != 0
          || !(
#line 19043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4816; /* avx512vl_compressv2df_mask */

    default:
      return -1;
    }
}

static int
recog_21 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  if (pnum_clobbers == NULL)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != MEM)
    return -1;
  operands[5] = x2;
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != UNSPEC
      || XVECLEN (x3, 0) != 3
      || XINT (x3, 1) != 147)
    return -1;
  x4 = XVECEXP (x3, 0, 0);
  operands[0] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[4] = x6;
  if (!const1248_operand (operands[4], SImode))
    return -1;
  x7 = XEXP (x1, 1);
  x8 = XVECEXP (x7, 0, 0);
  operands[6] = x8;
  x9 = XVECEXP (x7, 0, 1);
  operands[3] = x9;
  switch (GET_MODE (operands[5]))
    {
    case V16SImode:
      if (!vsib_mem_operator (operands[5], V16SImode)
          || GET_MODE (x7) != V16SImode)
        return -1;
      switch (GET_MODE (x3))
        {
        case SImode:
          switch (pattern792 (SImode))
            {
            case 0:
              if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              *pnum_clobbers = 1;
              return 4757; /* *avx512f_scattersiv16si */

            case 1:
              if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              *pnum_clobbers = 1;
              return 4781; /* *avx512f_scatterdiv16si */

            default:
              return -1;
            }

        case DImode:
          switch (pattern792 (DImode))
            {
            case 0:
              if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              *pnum_clobbers = 1;
              return 4758; /* *avx512f_scattersiv16si */

            case 1:
              if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              *pnum_clobbers = 1;
              return 4782; /* *avx512f_scatterdiv16si */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case V16SFmode:
      if (!vsib_mem_operator (operands[5], V16SFmode)
          || GET_MODE (x7) != V16SFmode)
        return -1;
      switch (GET_MODE (x3))
        {
        case SImode:
          switch (pattern793 (SImode))
            {
            case 0:
              if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              *pnum_clobbers = 1;
              return 4759; /* *avx512f_scattersiv16sf */

            case 1:
              if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              *pnum_clobbers = 1;
              return 4783; /* *avx512f_scatterdiv16sf */

            default:
              return -1;
            }

        case DImode:
          switch (pattern793 (DImode))
            {
            case 0:
              if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              *pnum_clobbers = 1;
              return 4760; /* *avx512f_scattersiv16sf */

            case 1:
              if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              *pnum_clobbers = 1;
              return 4784; /* *avx512f_scatterdiv16sf */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case V8DImode:
      switch (pattern717 (x1, V8DImode))
        {
        case 0:
          if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
            return -1;
          *pnum_clobbers = 1;
          return 4761; /* *avx512f_scattersiv8di */

        case 1:
          if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
            return -1;
          *pnum_clobbers = 1;
          return 4785; /* *avx512f_scatterdiv8di */

        case 2:
          if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
            return -1;
          *pnum_clobbers = 1;
          return 4762; /* *avx512f_scattersiv8di */

        case 3:
          if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
            return -1;
          *pnum_clobbers = 1;
          return 4786; /* *avx512f_scatterdiv8di */

        default:
          return -1;
        }

    case V8DFmode:
      switch (pattern717 (x1, V8DFmode))
        {
        case 0:
          if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
            return -1;
          *pnum_clobbers = 1;
          return 4763; /* *avx512f_scattersiv8df */

        case 1:
          if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
            return -1;
          *pnum_clobbers = 1;
          return 4787; /* *avx512f_scatterdiv8df */

        case 2:
          if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
            return -1;
          *pnum_clobbers = 1;
          return 4764; /* *avx512f_scattersiv8df */

        case 3:
          if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
            return -1;
          *pnum_clobbers = 1;
          return 4788; /* *avx512f_scatterdiv8df */

        default:
          return -1;
        }

    case V8SImode:
      switch (pattern718 (x1, V8SImode))
        {
        case 0:
          switch (pattern826 (SImode))
            {
            case 0:
              if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              *pnum_clobbers = 1;
              return 4765; /* *avx512f_scattersiv8si */

            case 1:
              if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && (((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              *pnum_clobbers = 1;
              return 4789; /* *avx512f_scatterdiv8si */

            default:
              return -1;
            }

        case 1:
          switch (pattern826 (DImode))
            {
            case 0:
              if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              *pnum_clobbers = 1;
              return 4766; /* *avx512f_scattersiv8si */

            case 1:
              if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && (((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              *pnum_clobbers = 1;
              return 4790; /* *avx512f_scatterdiv8si */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case V8SFmode:
      switch (pattern718 (x1, V8SFmode))
        {
        case 0:
          switch (pattern827 (SImode))
            {
            case 0:
              if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              *pnum_clobbers = 1;
              return 4767; /* *avx512f_scattersiv8sf */

            case 1:
              if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && (((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              *pnum_clobbers = 1;
              return 4791; /* *avx512f_scatterdiv8sf */

            default:
              return -1;
            }

        case 1:
          switch (pattern827 (DImode))
            {
            case 0:
              if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              *pnum_clobbers = 1;
              return 4768; /* *avx512f_scattersiv8sf */

            case 1:
              if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && (((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              *pnum_clobbers = 1;
              return 4792; /* *avx512f_scatterdiv8sf */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case V4DImode:
      switch (pattern720 (x1, V4DImode))
        {
        case 0:
          if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          *pnum_clobbers = 1;
          return 4769; /* *avx512f_scattersiv4di */

        case 1:
          if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && (((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          *pnum_clobbers = 1;
          return 4793; /* *avx512f_scatterdiv4di */

        case 2:
          if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          *pnum_clobbers = 1;
          return 4770; /* *avx512f_scattersiv4di */

        case 3:
          if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && (((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          *pnum_clobbers = 1;
          return 4794; /* *avx512f_scatterdiv4di */

        default:
          return -1;
        }

    case V4DFmode:
      switch (pattern720 (x1, V4DFmode))
        {
        case 0:
          if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          *pnum_clobbers = 1;
          return 4771; /* *avx512f_scattersiv4df */

        case 1:
          if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && (((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          *pnum_clobbers = 1;
          return 4795; /* *avx512f_scatterdiv4df */

        case 2:
          if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          *pnum_clobbers = 1;
          return 4772; /* *avx512f_scattersiv4df */

        case 3:
          if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && (((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          *pnum_clobbers = 1;
          return 4796; /* *avx512f_scatterdiv4df */

        default:
          return -1;
        }

    case V4SImode:
      switch (pattern722 (x1, V4SImode))
        {
        case 0:
          if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          *pnum_clobbers = 1;
          return 4773; /* *avx512f_scattersiv4si */

        case 1:
          if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && (((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          *pnum_clobbers = 1;
          return 4797; /* *avx512f_scatterdiv4si */

        case 2:
          if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          *pnum_clobbers = 1;
          return 4774; /* *avx512f_scattersiv4si */

        case 3:
          if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && (((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          *pnum_clobbers = 1;
          return 4798; /* *avx512f_scatterdiv4si */

        default:
          return -1;
        }

    case V4SFmode:
      switch (pattern722 (x1, V4SFmode))
        {
        case 0:
          if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          *pnum_clobbers = 1;
          return 4775; /* *avx512f_scattersiv4sf */

        case 1:
          if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && (((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          *pnum_clobbers = 1;
          return 4799; /* *avx512f_scatterdiv4sf */

        case 2:
          if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          *pnum_clobbers = 1;
          return 4776; /* *avx512f_scattersiv4sf */

        case 3:
          if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && (((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          *pnum_clobbers = 1;
          return 4800; /* *avx512f_scatterdiv4sf */

        default:
          return -1;
        }

    case V2DImode:
      switch (pattern722 (x1, V2DImode))
        {
        case 0:
          if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          *pnum_clobbers = 1;
          return 4777; /* *avx512f_scattersiv2di */

        case 1:
          if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && (((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          *pnum_clobbers = 1;
          return 4801; /* *avx512f_scatterdiv2di */

        case 2:
          if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          *pnum_clobbers = 1;
          return 4778; /* *avx512f_scattersiv2di */

        case 3:
          if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && (((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          *pnum_clobbers = 1;
          return 4802; /* *avx512f_scatterdiv2di */

        default:
          return -1;
        }

    case V2DFmode:
      switch (pattern722 (x1, V2DFmode))
        {
        case 0:
          if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          *pnum_clobbers = 1;
          return 4779; /* *avx512f_scattersiv2df */

        case 1:
          if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && (((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          *pnum_clobbers = 1;
          return 4803; /* *avx512f_scatterdiv2df */

        case 2:
          if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          *pnum_clobbers = 1;
          return 4780; /* *avx512f_scattersiv2df */

        case 3:
          if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && (((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          *pnum_clobbers = 1;
          return 4804; /* *avx512f_scatterdiv2df */

        default:
          return -1;
        }

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 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 SFmode:
      if (pattern308 (x3, SFmode) != 0
          || !
#line 15705 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_ROUND))
        return -1;
      return 898; /* sse4_1_roundsf2 */

    case DFmode:
      if (pattern308 (x3, DFmode) != 0
          || !
#line 15705 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_ROUND))
        return -1;
      return 899; /* sse4_1_rounddf2 */

    case V16SFmode:
      if (pattern309 (x3, V16SFmode) != 0
          || !
#line 8334 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 2705; /* avx512f_rndscalev16sf */

    case V8SFmode:
      if (!register_operand (operands[0], V8SFmode)
          || GET_MODE (x3) != V8SFmode)
        return -1;
      if (nonimmediate_operand (operands[1], V8SFmode)
          && const_0_to_255_operand (operands[2], SImode)
          && (
#line 8334 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return 2709; /* avx512vl_rndscalev8sf */
      if (!vector_operand (operands[1], V8SFmode)
          || !const_0_to_15_operand (operands[2], SImode)
          || !(
#line 15216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_ROUND) && 
#line 221 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
        return -1;
      return 3959; /* avx_roundps256 */

    case V4SFmode:
      if (!register_operand (operands[0], V4SFmode)
          || GET_MODE (x3) != V4SFmode)
        return -1;
      if (nonimmediate_operand (operands[1], V4SFmode)
          && const_0_to_255_operand (operands[2], SImode)
          && (
#line 8334 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return 2713; /* avx512vl_rndscalev4sf */
      if (!vector_operand (operands[1], V4SFmode)
          || !const_0_to_15_operand (operands[2], SImode)
          || !
#line 15216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_ROUND))
        return -1;
      return 3960; /* sse4_1_roundps */

    case V8DFmode:
      if (pattern309 (x3, V8DFmode) != 0
          || !
#line 8334 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 2717; /* avx512f_rndscalev8df */

    case V4DFmode:
      if (!register_operand (operands[0], V4DFmode)
          || GET_MODE (x3) != V4DFmode)
        return -1;
      if (nonimmediate_operand (operands[1], V4DFmode)
          && const_0_to_255_operand (operands[2], SImode)
          && (
#line 8334 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return 2721; /* avx512vl_rndscalev4df */
      if (!vector_operand (operands[1], V4DFmode)
          || !const_0_to_15_operand (operands[2], SImode)
          || !(
#line 15216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_ROUND) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
        return -1;
      return 3961; /* avx_roundpd256 */

    case V2DFmode:
      if (!register_operand (operands[0], V2DFmode)
          || GET_MODE (x3) != V2DFmode)
        return -1;
      if (nonimmediate_operand (operands[1], V2DFmode)
          && const_0_to_255_operand (operands[2], SImode)
          && (
#line 8334 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return 2725; /* avx512vl_rndscalev2df */
      if (!vector_operand (operands[1], V2DFmode)
          || !const_0_to_15_operand (operands[2], SImode)
          || !(
#line 15216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_ROUND) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
        return -1;
      return 3962; /* sse4_1_roundpd */

    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];
  int res ATTRIBUTE_UNUSED;
  if (pattern52 (x1, CCmode) != 0)
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case V16QImode:
      if (!register_operand (operands[0], V16QImode)
          || !vector_operand (operands[1], V16QImode)
          || !
#line 15197 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1))
        return -1;
      return 3947; /* sse4_1_ptestv16qi */

    case V8HImode:
      if (!register_operand (operands[0], V8HImode)
          || !vector_operand (operands[1], V8HImode)
          || !
#line 15197 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1))
        return -1;
      return 3948; /* sse4_1_ptestv8hi */

    case V4SImode:
      if (!register_operand (operands[0], V4SImode)
          || !vector_operand (operands[1], V4SImode)
          || !
#line 15197 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1))
        return -1;
      return 3949; /* sse4_1_ptestv4si */

    case V2DImode:
      if (!register_operand (operands[0], V2DImode)
          || !vector_operand (operands[1], V2DImode)
          || !
#line 15197 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1))
        return -1;
      return 3950; /* sse4_1_ptestv2di */

    case V4SFmode:
      if (!register_operand (operands[0], V4SFmode)
          || !vector_operand (operands[1], V4SFmode)
          || !
#line 15197 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1))
        return -1;
      return 3951; /* sse4_1_ptestv4sf */

    case V2DFmode:
      if (!register_operand (operands[0], V2DFmode)
          || !vector_operand (operands[1], V2DFmode)
          || !
#line 15197 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1))
        return -1;
      return 3952; /* sse4_1_ptestv2df */

    case V32QImode:
      if (!register_operand (operands[0], V32QImode)
          || !vector_operand (operands[1], V32QImode)
          || !(
#line 15197 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1) && 
#line 304 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
        return -1;
      return 3953; /* avx_ptestv32qi */

    case V16HImode:
      if (!register_operand (operands[0], V16HImode)
          || !vector_operand (operands[1], V16HImode)
          || !(
#line 15197 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1) && 
#line 304 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
        return -1;
      return 3954; /* avx_ptestv16hi */

    case V8SImode:
      if (!register_operand (operands[0], V8SImode)
          || !vector_operand (operands[1], V8SImode)
          || !(
#line 15197 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1) && 
#line 305 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
        return -1;
      return 3955; /* avx_ptestv8si */

    case V4DImode:
      if (!register_operand (operands[0], V4DImode)
          || !vector_operand (operands[1], V4DImode)
          || !(
#line 15197 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1) && 
#line 305 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
        return -1;
      return 3956; /* avx_ptestv4di */

    case V8SFmode:
      if (!register_operand (operands[0], V8SFmode)
          || !vector_operand (operands[1], V8SFmode)
          || !(
#line 15197 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1) && 
#line 306 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
        return -1;
      return 3957; /* avx_ptestv8sf */

    case V4DFmode:
      if (!register_operand (operands[0], V4DFmode)
          || !vector_operand (operands[1], V4DFmode)
          || !(
#line 15197 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1) && 
#line 306 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
        return -1;
      return 3958; /* avx_ptestv4df */

    default:
      return -1;
    }
}

static int
recog_24 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 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 (pattern172 (x3))
    {
    case 0:
      switch (GET_MODE (operands[1]))
        {
        case V16SImode:
          if (!register_operand (operands[1], V16SImode)
              || !nonimmediate_operand (operands[2], V16SImode)
              || !
#line 11104 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 3409; /* avx512f_gtv16si3 */

        case V16QImode:
          if (!register_operand (operands[1], V16QImode)
              || !nonimmediate_operand (operands[2], V16QImode)
              || !(
#line 11116 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3423; /* avx512vl_gtv16qi3 */

        case V16HImode:
          if (!register_operand (operands[1], V16HImode)
              || !nonimmediate_operand (operands[2], V16HImode)
              || !(
#line 11116 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3429; /* avx512vl_gtv16hi3 */

        default:
          return -1;
        }

    case 1:
      switch (GET_MODE (operands[1]))
        {
        case V8SImode:
          if (!register_operand (operands[1], V8SImode)
              || !nonimmediate_operand (operands[2], V8SImode)
              || !(
#line 11104 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3411; /* avx512vl_gtv8si3 */

        case V4SImode:
          if (!register_operand (operands[1], V4SImode)
              || !nonimmediate_operand (operands[2], V4SImode)
              || !(
#line 11104 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3413; /* avx512vl_gtv4si3 */

        case V8DImode:
          if (!register_operand (operands[1], V8DImode)
              || !nonimmediate_operand (operands[2], V8DImode)
              || !
#line 11104 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 3415; /* avx512f_gtv8di3 */

        case V4DImode:
          if (!register_operand (operands[1], V4DImode)
              || !nonimmediate_operand (operands[2], V4DImode)
              || !(
#line 11104 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3417; /* avx512vl_gtv4di3 */

        case V2DImode:
          if (!register_operand (operands[1], V2DImode)
              || !nonimmediate_operand (operands[2], V2DImode)
              || !(
#line 11104 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3419; /* avx512vl_gtv2di3 */

        case V8HImode:
          if (!register_operand (operands[1], V8HImode)
              || !nonimmediate_operand (operands[2], V8HImode)
              || !(
#line 11116 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3431; /* avx512vl_gtv8hi3 */

        default:
          return -1;
        }

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 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 V8SImode:
      if (pattern311 (x3, V8SImode) != 0
          || !
#line 17138 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1))
        return -1;
      return 4143; /* avx2_permvarv8si */

    case V8SFmode:
      if (pattern312 (x3, V8SImode, V8SFmode) != 0
          || !
#line 17138 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1))
        return -1;
      return 4145; /* avx2_permvarv8sf */

    case V16SImode:
      if (pattern311 (x3, V16SImode) != 0
          || !(
#line 17138 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1) && 
#line 561 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
        return -1;
      return 4147; /* avx512f_permvarv16si */

    case V16SFmode:
      if (pattern312 (x3, V16SImode, V16SFmode) != 0
          || !(
#line 17138 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1) && 
#line 561 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
        return -1;
      return 4149; /* avx512f_permvarv16sf */

    case V8DImode:
      if (pattern311 (x3, V8DImode) != 0
          || !(
#line 17138 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1) && 
#line 562 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
        return -1;
      return 4151; /* avx512f_permvarv8di */

    case V8DFmode:
      if (pattern312 (x3, V8DImode, V8DFmode) != 0
          || !(
#line 17138 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1) && 
#line 562 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
        return -1;
      return 4153; /* avx512f_permvarv8df */

    case V4DImode:
      if (pattern311 (x3, V4DImode) != 0
          || !(
#line 17138 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1) && 
#line 563 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4155; /* avx2_permvarv4di */

    case V4DFmode:
      if (pattern312 (x3, V4DImode, V4DFmode) != 0
          || !(
#line 17138 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1) && 
#line 563 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4157; /* avx2_permvarv4df */

    case V64QImode:
      if (pattern311 (x3, V64QImode) != 0
          || !
#line 17150 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VBMI && 1))
        return -1;
      return 4159; /* avx512bw_permvarv64qi */

    case V16QImode:
      if (pattern311 (x3, V16QImode) != 0
          || !(
#line 17150 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VBMI && 1) && 
#line 186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4161; /* avx512vl_permvarv16qi */

    case V32QImode:
      if (pattern311 (x3, V32QImode) != 0
          || !(
#line 17150 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VBMI && 1) && 
#line 186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4163; /* avx512vl_permvarv32qi */

    case V8HImode:
      if (pattern311 (x3, V8HImode) != 0
          || !(
#line 17162 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW && 1) && 
#line 350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4165; /* avx512vl_permvarv8hi */

    case V16HImode:
      if (pattern311 (x3, V16HImode) != 0
          || !(
#line 17162 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW && 1) && 
#line 350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4167; /* avx512vl_permvarv16hi */

    case V32HImode:
      if (pattern311 (x3, V32HImode) != 0
          || !
#line 17162 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW && 1))
        return -1;
      return 4169; /* avx512bw_permvarv32hi */

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 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 (!const_0_to_255_operand (operands[2], QImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case HImode:
      if (!register_operand (operands[0], HImode)
          || GET_MODE (x3) != HImode
          || !register_operand (operands[1], V16SFmode)
          || !
#line 19122 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ))
        return -1;
      return 4861; /* avx512dq_fpclassv16sf */

    case QImode:
      if (!register_operand (operands[0], QImode)
          || GET_MODE (x3) != QImode)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case V8SFmode:
          if (!register_operand (operands[1], V8SFmode)
              || !(
#line 19122 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4863; /* avx512dq_fpclassv8sf */

        case V4SFmode:
          if (!register_operand (operands[1], V4SFmode)
              || !(
#line 19122 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4865; /* avx512dq_fpclassv4sf */

        case V8DFmode:
          if (!register_operand (operands[1], V8DFmode)
              || !
#line 19122 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ))
            return -1;
          return 4867; /* avx512dq_fpclassv8df */

        case V4DFmode:
          if (!register_operand (operands[1], V4DFmode)
              || !(
#line 19122 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4869; /* avx512dq_fpclassv4df */

        case V2DFmode:
          if (!register_operand (operands[1], V2DFmode)
              || !(
#line 19122 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4871; /* avx512dq_fpclassv2df */

        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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 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 V32QImode:
      if (pattern46 (x3, V32QImode) != 0
          || !(
#line 14481 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3) && 
#line 394 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
        return -1;
      return 3790; /* avx2_psignv32qi3 */

    case V16QImode:
      if (pattern46 (x3, V16QImode) != 0
          || !
#line 14481 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3))
        return -1;
      return 3791; /* ssse3_psignv16qi3 */

    case V16HImode:
      if (pattern46 (x3, V16HImode) != 0
          || !(
#line 14481 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3) && 
#line 395 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
        return -1;
      return 3792; /* avx2_psignv16hi3 */

    case V8HImode:
      if (pattern46 (x3, V8HImode) != 0
          || !
#line 14481 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3))
        return -1;
      return 3793; /* ssse3_psignv8hi3 */

    case V8SImode:
      if (pattern46 (x3, V8SImode) != 0
          || !(
#line 14481 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3) && 
#line 396 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
        return -1;
      return 3794; /* avx2_psignv8si3 */

    case V4SImode:
      if (pattern46 (x3, V4SImode) != 0
          || !
#line 14481 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3))
        return -1;
      return 3795; /* ssse3_psignv4si3 */

    case V8QImode:
      if (pattern45 (x3, V8QImode) != 0
          || !
#line 14498 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3))
        return -1;
      return 3796; /* ssse3_psignv8qi3 */

    case V4HImode:
      if (pattern45 (x3, V4HImode) != 0
          || !
#line 14498 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3))
        return -1;
      return 3797; /* ssse3_psignv4hi3 */

    case V2SImode:
      if (pattern45 (x3, V2SImode) != 0
          || !
#line 14498 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3))
        return -1;
      return 3798; /* ssse3_psignv2si3 */

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[2] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[1] = x5;
  switch (GET_MODE (operands[0]))
    {
    case V4SFmode:
      if (pattern314 (x3, V4SFmode, V4SImode) != 0
          || !
#line 18321 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
        return -1;
      return 4487; /* avx_maskloadps */

    case V2DFmode:
      if (pattern314 (x3, V2DFmode, V2DImode) != 0
          || !
#line 18321 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
        return -1;
      return 4488; /* avx_maskloadpd */

    case V8SFmode:
      if (pattern314 (x3, V8SFmode, V8SImode) != 0
          || !
#line 18321 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
        return -1;
      return 4489; /* avx_maskloadps256 */

    case V4DFmode:
      if (pattern314 (x3, V4DFmode, V4DImode) != 0
          || !
#line 18321 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
        return -1;
      return 4490; /* avx_maskloadpd256 */

    case V4SImode:
      if (pattern315 (x3, V4SImode) != 0
          || !(
#line 18321 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX) && 
#line 434 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
        return -1;
      return 4491; /* avx2_maskloadd */

    case V2DImode:
      if (pattern315 (x3, V2DImode) != 0
          || !(
#line 18321 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX) && 
#line 434 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
        return -1;
      return 4492; /* avx2_maskloadq */

    case V8SImode:
      if (pattern315 (x3, V8SImode) != 0
          || !(
#line 18321 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX) && 
#line 435 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
        return -1;
      return 4493; /* avx2_maskloadd256 */

    case V4DImode:
      if (pattern315 (x3, V4DImode) != 0
          || !(
#line 18321 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX) && 
#line 435 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
        return -1;
      return 4494; /* avx2_maskloadq256 */

    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;
  int res ATTRIBUTE_UNUSED;
  if (pnum_clobbers == NULL)
    return -1;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != XFmode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!register_operand (operands[0], XFmode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
      operands[1] = x4;
      if (!register_operand (operands[1], XFmode))
        return -1;
      x5 = XVECEXP (x2, 0, 1);
      operands[2] = x5;
      if (!register_operand (operands[2], XFmode)
          || !
#line 14963 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations))
        return -1;
      *pnum_clobbers = 1;
      return 884; /* *fpatanxf3_i387 */

    case FLOAT_EXTEND:
      if (GET_MODE (x4) != XFmode)
        return -1;
      x5 = XVECEXP (x2, 0, 1);
      if (GET_CODE (x5) != FLOAT_EXTEND
          || GET_MODE (x5) != XFmode)
        return -1;
      x6 = XEXP (x4, 0);
      operands[1] = x6;
      x7 = XEXP (x5, 0);
      operands[2] = x7;
      switch (GET_MODE (operands[1]))
        {
        case SFmode:
          if (!register_operand (operands[1], SFmode)
              || !register_operand (operands[2], SFmode)
              || !
#line 14978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && (!(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)
       || TARGET_MIX_SSE_I387)
   && flag_unsafe_math_optimizations))
            return -1;
          *pnum_clobbers = 1;
          return 885; /* fpatan_extendsfxf3_i387 */

        case DFmode:
          if (!register_operand (operands[1], DFmode)
              || !register_operand (operands[2], DFmode)
              || !
#line 14978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && (!(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)
       || TARGET_MIX_SSE_I387)
   && flag_unsafe_math_optimizations))
            return -1;
          *pnum_clobbers = 1;
          return 886; /* fpatan_extenddfxf3_i387 */

        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];
  int res ATTRIBUTE_UNUSED;
  if (pattern52 (x1, CCmode) != 0)
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case V8SFmode:
      if (!register_operand (operands[0], V8SFmode)
          || !nonimmediate_operand (operands[1], V8SFmode)
          || !
#line 15183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
        return -1;
      return 3943; /* avx_vtestps256 */

    case V4SFmode:
      if (!register_operand (operands[0], V4SFmode)
          || !nonimmediate_operand (operands[1], V4SFmode)
          || !
#line 15183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
        return -1;
      return 3944; /* avx_vtestps */

    case V4DFmode:
      if (!register_operand (operands[0], V4DFmode)
          || !nonimmediate_operand (operands[1], V4DFmode)
          || !
#line 15183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
        return -1;
      return 3945; /* avx_vtestpd256 */

    case V2DFmode:
      if (!register_operand (operands[0], V2DFmode)
          || !nonimmediate_operand (operands[1], V2DFmode)
          || !(
#line 15183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
        return -1;
      return 3946; /* avx_vtestpd */

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 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 (!const_0_to_255_operand (operands[2], SImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case V4HImode:
      if (!memory_operand (operands[0], V4HImode)
          || GET_MODE (x3) != V4HImode
          || !register_operand (operands[1], V4SFmode)
          || !
#line 18617 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_F16C || TARGET_AVX512VL))
        return -1;
      return 4584; /* *vcvtps2ph_store */

    case V8HImode:
      if (!nonimmediate_operand (operands[0], V8HImode)
          || GET_MODE (x3) != V8HImode
          || !register_operand (operands[1], V8SFmode)
          || !
#line 18628 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_F16C || TARGET_AVX512VL))
        return -1;
      return 4585; /* vcvtps2ph256 */

    case V16HImode:
      if (!nonimmediate_operand (operands[0], V16HImode)
          || GET_MODE (x3) != V16HImode
          || !register_operand (operands[1], V16SFmode)
          || !
#line 18641 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 4587; /* *avx512f_vcvtps2ph512 */

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 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 V16SFmode:
      if (pattern313 (x3, V16SImode, V16SFmode) != 0
          || !(
#line 17728 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
        return -1;
      return 4335; /* avx512f_vpermilvarv16sf3 */

    case V8SFmode:
      if (pattern313 (x3, V8SImode, V8SFmode) != 0
          || !(
#line 17728 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
        return -1;
      return 4337; /* avx_vpermilvarv8sf3 */

    case V4SFmode:
      if (pattern313 (x3, V4SImode, V4SFmode) != 0
          || !
#line 17728 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && 1))
        return -1;
      return 4339; /* avx_vpermilvarv4sf3 */

    case V8DFmode:
      if (pattern313 (x3, V8DImode, V8DFmode) != 0
          || !(
#line 17728 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
        return -1;
      return 4341; /* avx512f_vpermilvarv8df3 */

    case V4DFmode:
      if (pattern313 (x3, V4DImode, V4DFmode) != 0
          || !(
#line 17728 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
        return -1;
      return 4343; /* avx_vpermilvarv4df3 */

    case V2DFmode:
      if (pattern313 (x3, V2DImode, V2DFmode) != 0
          || !(
#line 17728 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
        return -1;
      return 4345; /* avx_vpermilvarv2df3 */

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (XINT (x2, 1))
    {
    case 25:
      return recog_5 (x1, insn, pnum_clobbers);

    case 26:
      if (pattern29 (x1, CCmode, 17) != 0
          || !register_operand (operands[0], HImode)
          || !
#line 1661 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_SAHF))
        return -1;
      return 48; /* x86_sahf_1 */

    case 88:
      if (GET_MODE (x2) != HImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!nonimmediate_operand (operands[0], HImode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!nonimmediate_operand (operands[1], HImode)
          || !
#line 2456 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[0]) && MEM_P (operands[1])) && TARGET_AVX512F))
        return -1;
      return 87; /* kmovw */

    case 28:
      if (GET_MODE (x2) != HImode)
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      if (GET_CODE (x4) != REG
          || REGNO (x4) != 19
          || GET_MODE (x4) != HImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!memory_operand (operands[0], HImode)
          || !
#line 5049 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
        return -1;
      return 195; /* x86_fnstcw_1 */

    case 29:
      if (pattern29 (x1, HImode, 19) != 0
          || !memory_operand (operands[0], HImode)
          || !
#line 5060 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
        return -1;
      return 196; /* x86_fldcw_1 */

    case 84:
      if (pattern30 (x1, pnum_clobbers) != 0
          || !
#line 12984 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI))
        return -1;
      *pnum_clobbers = 1;
      return 730; /* *bmi_tzcnt_hi */

    case 83:
      if (pattern30 (x1, pnum_clobbers) != 0
          || !
#line 13117 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LZCNT))
        return -1;
      *pnum_clobbers = 1;
      return 743; /* *lzcnt_hi */

    case 27:
      if (pnum_clobbers == NULL
          || GET_MODE (x2) != CCmode)
        return -1;
      x3 = XEXP (x1, 0);
      if (GET_CODE (x3) != REG
          || REGNO (x3) != 17
          || GET_MODE (x3) != CCmode)
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      switch (GET_MODE (x4))
        {
        case DImode:
          operands[3] = x4;
          if (!register_operand (operands[3], DImode)
              || !
#line 13670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(! TARGET_POPCNT))
            return -1;
          *pnum_clobbers = 3;
          return 806; /* paritydi2_cmp */

        case SImode:
          operands[2] = x4;
          if (!register_operand (operands[2], SImode)
              || !
#line 13700 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(! TARGET_POPCNT))
            return -1;
          *pnum_clobbers = 2;
          return 807; /* paritysi2_cmp */

        case HImode:
          operands[1] = x4;
          if (!register_operand (operands[1], HImode)
              || !
#line 13723 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(! TARGET_POPCNT))
            return -1;
          *pnum_clobbers = 1;
          return 808; /* *parityhi2_cmp */

        default:
          return -1;
        }

    case 43:
      switch (pattern31 (x1))
        {
        case 0:
          if (!
#line 14226 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_SSE_MATH))
            return -1;
          return 834; /* *rcpsf2_sse */

        case 1:
          if (!(
#line 1781 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 230 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 1495; /* avx_rcpv8sf2 */

        case 2:
          if (!
#line 1781 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
            return -1;
          return 1496; /* sse_rcpv4sf2 */

        default:
          return -1;
        }

    case 32:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!register_operand (operands[1], XFmode))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case SFmode:
          if (!register_operand (operands[0], SFmode)
              || GET_MODE (x2) != SFmode
              || !
#line 14518 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387))
            return -1;
          return 862; /* truncxfsf2_i387_noop_unspec */

        case DFmode:
          if (!register_operand (operands[0], DFmode)
              || GET_MODE (x2) != DFmode
              || !
#line 14518 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387))
            return -1;
          return 863; /* truncxfdf2_i387_noop_unspec */

        default:
          return -1;
        }

    case 44:
      switch (pattern31 (x1))
        {
        case 0:
          if (!
#line 14551 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_SSE_MATH))
            return -1;
          return 867; /* *rsqrtsf2_sse */

        case 1:
          if (!(
#line 1900 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 230 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 1532; /* avx_rsqrtv8sf2 */

        case 2:
          if (!
#line 1900 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
            return -1;
          return 1533; /* sse_rsqrtv4sf2 */

        default:
          return -1;
        }

    case 49:
      switch (pattern33 (x1))
        {
        case 0:
          if (!
#line 14776 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations))
            return -1;
          return 872; /* *sinxf2_i387 */

        case 1:
          if (!
#line 14788 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && (!(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)
       || TARGET_MIX_SSE_I387)
   && flag_unsafe_math_optimizations))
            return -1;
          return 874; /* *sin_extendsfxf2_i387 */

        case 2:
          if (!
#line 14788 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && (!(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)
       || TARGET_MIX_SSE_I387)
   && flag_unsafe_math_optimizations))
            return -1;
          return 876; /* *sin_extenddfxf2_i387 */

        default:
          return -1;
        }

    case 50:
      switch (pattern33 (x1))
        {
        case 0:
          if (!
#line 14776 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations))
            return -1;
          return 873; /* *cosxf2_i387 */

        case 1:
          if (!
#line 14788 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && (!(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)
       || TARGET_MIX_SSE_I387)
   && flag_unsafe_math_optimizations))
            return -1;
          return 875; /* *cos_extendsfxf2_i387 */

        case 2:
          if (!
#line 14788 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && (!(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)
       || TARGET_MIX_SSE_I387)
   && flag_unsafe_math_optimizations))
            return -1;
          return 877; /* *cos_extenddfxf2_i387 */

        default:
          return -1;
        }

    case 56:
      if (GET_MODE (x2) != XFmode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!register_operand (operands[0], XFmode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!register_operand (operands[1], XFmode)
          || !
#line 15395 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations))
        return -1;
      return 896; /* *f2xm1xf2_i387 */

    case 54:
      if (GET_MODE (x2) != XFmode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!register_operand (operands[0], XFmode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!register_operand (operands[1], XFmode)
          || !
#line 15716 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations))
        return -1;
      return 900; /* rintxf2 */

    case 55:
      if (GET_MODE (x2) != HImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!register_operand (operands[1], XFmode))
        return -1;
      if (register_operand (operands[0], HImode)
          && 
#line 15855 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && can_create_pseudo_p ()))
        return 904; /* *fisthi2_1 */
      if (!memory_operand (operands[0], HImode)
          || !
#line 15873 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387))
        return -1;
      return 906; /* fisthi2 */

    case 59:
      if (pattern34 (x1, pnum_clobbers) != 0
          || !
#line 15979 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations
   && can_create_pseudo_p ()))
        return -1;
      *pnum_clobbers = 1;
      return 910; /* frndintxf2_floor */

    case 60:
      if (pattern34 (x1, pnum_clobbers) != 0
          || !
#line 15979 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations
   && can_create_pseudo_p ()))
        return -1;
      *pnum_clobbers = 1;
      return 911; /* frndintxf2_ceil */

    case 61:
      if (pattern34 (x1, pnum_clobbers) != 0
          || !
#line 15979 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations
   && can_create_pseudo_p ()))
        return -1;
      *pnum_clobbers = 1;
      return 912; /* frndintxf2_trunc */

    case 62:
      if (pattern34 (x1, pnum_clobbers) != 0
          || !
#line 16081 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations
   && can_create_pseudo_p ()))
        return -1;
      *pnum_clobbers = 1;
      return 916; /* frndintxf2_mask_pm */

    case 63:
      if (pattern35 (x1, pnum_clobbers) != 0
          || !
#line 16146 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations
   && can_create_pseudo_p ()))
        return -1;
      *pnum_clobbers = 1;
      return 918; /* *fisthi2_floor_1 */

    case 64:
      if (pattern35 (x1, pnum_clobbers) != 0
          || !
#line 16146 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations
   && can_create_pseudo_p ()))
        return -1;
      *pnum_clobbers = 1;
      return 919; /* *fisthi2_ceil_1 */

    case 58:
      if (GET_MODE (x2) != HImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!register_operand (operands[0], HImode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      switch (GET_MODE (operands[1]))
        {
        case SFmode:
          if (!register_operand (operands[1], SFmode)
              || !
#line 16322 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387))
            return -1;
          return 936; /* fxamsf2_i387 */

        case DFmode:
          if (!register_operand (operands[1], DFmode)
              || !
#line 16322 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387))
            return -1;
          return 937; /* fxamdf2_i387 */

        case XFmode:
          if (!register_operand (operands[1], XFmode)
              || !
#line 16322 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387))
            return -1;
          return 938; /* fxamxf2_i387 */

        default:
          return -1;
        }

    case 76:
      if (GET_MODE (x2) != HImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!register_operand (operands[0], HImode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      switch (GET_MODE (operands[1]))
        {
        case SFmode:
          if (!memory_operand (operands[1], SFmode)
              || !
#line 16334 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && can_create_pseudo_p ()))
            return -1;
          return 939; /* fxamsf2_i387_with_temp */

        case DFmode:
          if (!memory_operand (operands[1], DFmode)
              || !
#line 16334 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && can_create_pseudo_p ()))
            return -1;
          return 940; /* fxamdf2_i387_with_temp */

        default:
          return -1;
        }

    case 89:
      x4 = XVECEXP (x2, 0, 0);
      if (GET_CODE (x4) != MEM)
        return -1;
      operands[3] = x4;
      x5 = XEXP (x4, 0);
      if (GET_CODE (x5) != UNSPEC
          || XVECLEN (x5, 0) != 2
          || XINT (x5, 1) != 90)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x6 = XVECEXP (x5, 0, 0);
      operands[1] = x6;
      x7 = XVECEXP (x5, 0, 1);
      operands[2] = x7;
      switch (GET_MODE (operands[0]))
        {
        case BND32mode:
          if (pattern552 (x2, SImode, BND32mode) != 0
              || !(
#line 19496 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_MPX) && 
#line 1047 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_LP64)))
            return -1;
          return 1093; /* *bnd32_mk */

        case BND64mode:
          if (pattern552 (x2, DImode, BND64mode) != 0
              || !(
#line 19496 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_MPX) && 
#line 1048 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LP64)))
            return -1;
          return 1094; /* *bnd64_mk */

        default:
          return -1;
        }

    case 99:
      if (GET_MODE (x2) != V2SFmode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!register_operand (operands[0], V2SFmode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!nonimmediate_operand (operands[1], V2SFmode)
          || !
#line 355 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_3DNOW))
        return -1;
      return 1124; /* mmx_rcpv2sf2 */

    case 102:
      if (GET_MODE (x2) != V2SFmode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!register_operand (operands[0], V2SFmode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!nonimmediate_operand (operands[1], V2SFmode)
          || !
#line 387 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_3DNOW))
        return -1;
      return 1127; /* mmx_rsqrtv2sf2 */

    case 105:
      return recog_2 (x1, insn, pnum_clobbers);

    case 106:
      return recog_3 (x1, insn, pnum_clobbers);

    case 107:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      switch (GET_MODE (operands[0]))
        {
        case V32QImode:
          if (!register_operand (operands[0], V32QImode)
              || GET_MODE (x2) != V32QImode
              || !memory_operand (operands[1], V32QImode)
              || !(
#line 1533 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE3) && 
#line 291 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 1372; /* avx_lddqu256 */

        case V16QImode:
          if (!register_operand (operands[0], V16QImode)
              || GET_MODE (x2) != V16QImode
              || !memory_operand (operands[1], V16QImode)
              || !
#line 1533 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE3))
            return -1;
          return 1373; /* sse3_lddqu */

        default:
          return -1;
        }

    case 104:
      return recog_4 (x1, insn, pnum_clobbers);

    case 156:
      switch (pattern37 (x1))
        {
        case 0:
          if (!
#line 1813 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 1498; /* *rcp14v16sf */

        case 1:
          if (!(
#line 1813 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1500; /* *rcp14v8sf */

        case 2:
          if (!(
#line 1813 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1502; /* *rcp14v4sf */

        case 3:
          if (!
#line 1813 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 1504; /* *rcp14v8df */

        case 4:
          if (!(
#line 1813 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1506; /* *rcp14v4df */

        case 5:
          if (!(
#line 1813 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1508; /* *rcp14v2df */

        default:
          return -1;
        }

    case 157:
      switch (pattern37 (x1))
        {
        case 0:
          if (!
#line 1911 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 1534; /* *rsqrt14v16sf */

        case 1:
          if (!(
#line 1911 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1536; /* *rsqrt14v8sf */

        case 2:
          if (!(
#line 1911 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1538; /* *rsqrt14v4sf */

        case 3:
          if (!
#line 1911 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 1540; /* *rsqrt14v8df */

        case 4:
          if (!(
#line 1911 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1542; /* *rsqrt14v4df */

        case 5:
          if (!(
#line 1911 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1544; /* *rsqrt14v2df */

        default:
          return -1;
        }

    case 40:
      return recog_6 (x1, insn, pnum_clobbers);

    case 151:
      return recog_10 (x1, insn, pnum_clobbers);

    case 188:
      return recog_11 (x1, insn, pnum_clobbers);

    case 161:
      return recog_8 (x1, insn, pnum_clobbers);

    case 118:
      return recog_12 (x1, insn, pnum_clobbers);

    case 120:
      if (GET_MODE (x2) != V8HImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!register_operand (operands[0], V8HImode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!vector_operand (operands[1], V8HImode)
          || !
#line 14937 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1))
        return -1;
      return 3870; /* sse4_1_phminposuw */

    case 173:
      switch (pattern38 (x1))
        {
        case 0:
          if (!
#line 15997 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512ER))
            return -1;
          return 3991; /* avx512er_exp2v16sf */

        case 1:
          if (!
#line 15997 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512ER))
            return -1;
          return 3995; /* avx512er_exp2v8df */

        default:
          return -1;
        }

    case 174:
      switch (pattern38 (x1))
        {
        case 0:
          if (!
#line 16008 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512ER))
            return -1;
          return 3999; /* *avx512er_rcp28v16sf */

        case 1:
          if (!
#line 16008 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512ER))
            return -1;
          return 4003; /* *avx512er_rcp28v8df */

        default:
          return -1;
        }

    case 175:
      switch (pattern38 (x1))
        {
        case 0:
          if (!
#line 16034 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512ER))
            return -1;
          return 4011; /* *avx512er_rsqrt28v16sf */

        case 1:
          if (!
#line 16034 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512ER))
            return -1;
          return 4015; /* *avx512er_rsqrt28v8df */

        default:
          return -1;
        }

    case 128:
      return recog_7 (x1, insn, pnum_clobbers);

    case 125:
      x4 = XVECEXP (x2, 0, 0);
      switch (GET_CODE (x4))
        {
        case NE:
        case EQ:
        case GEU:
        case GTU:
        case LEU:
        case LTU:
          operands[1] = x4;
          x3 = XEXP (x1, 0);
          operands[0] = x3;
          x5 = XEXP (x4, 0);
          operands[2] = x5;
          x8 = XEXP (x4, 1);
          operands[3] = x8;
          switch (GET_MODE (operands[0]))
            {
            case V16QImode:
              if (pattern429 (x2, V16QImode) != 0
                  || !
#line 16910 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
                return -1;
              return 4106; /* xop_maskcmp_uns2v16qi3 */

            case V8HImode:
              if (pattern429 (x2, V8HImode) != 0
                  || !
#line 16910 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
                return -1;
              return 4107; /* xop_maskcmp_uns2v8hi3 */

            case V4SImode:
              if (pattern429 (x2, V4SImode) != 0
                  || !
#line 16910 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
                return -1;
              return 4108; /* xop_maskcmp_uns2v4si3 */

            case V2DImode:
              if (pattern429 (x2, V2DImode) != 0
                  || !
#line 16910 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
                return -1;
              return 4109; /* xop_maskcmp_uns2v2di3 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 133:
      if (GET_MODE (x2) != V2DImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!register_operand (operands[0], V2DImode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!vector_operand (operands[1], V2DImode)
          || !
#line 17023 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AES))
        return -1;
      return 4122; /* aesimc */

    case 140:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      switch (pattern173 (x2))
        {
        case 0:
          if (!
#line 18415 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return -1;
          return 4503; /* avx_si256_si */

        case 1:
          if (!
#line 18415 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return -1;
          return 4504; /* avx_ps256_ps */

        case 2:
          if (!
#line 18415 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return -1;
          return 4505; /* avx_pd256_pd */

        case 3:
          if (!
#line 19294 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 4940; /* avx512f_si512_si */

        case 4:
          if (!
#line 19314 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 4943; /* avx512f_si512_256si */

        case 5:
          if (!
#line 19294 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 4941; /* avx512f_ps512_ps */

        case 6:
          if (!
#line 19314 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 4944; /* avx512f_ps512_256ps */

        case 7:
          if (!
#line 19294 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 4942; /* avx512f_pd512_pd */

        case 8:
          if (!
#line 19314 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 4945; /* avx512f_pd512_256pd */

        default:
          return -1;
        }

    case 142:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      switch (GET_MODE (operands[0]))
        {
        case V4SFmode:
          if (!register_operand (operands[0], V4SFmode)
              || GET_MODE (x2) != V4SFmode
              || !memory_operand (operands[1], V4HImode)
              || !
#line 18548 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_F16C || TARGET_AVX512VL))
            return -1;
          return 4574; /* *vcvtph2ps_load */

        case V8SFmode:
          if (!register_operand (operands[0], V8SFmode)
              || GET_MODE (x2) != V8SFmode
              || !nonimmediate_operand (operands[1], V8HImode)
              || !
#line 18558 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_F16C || TARGET_AVX512VL))
            return -1;
          return 4576; /* vcvtph2ps256 */

        case V16SFmode:
          if (!register_operand (operands[0], V16SFmode)
              || GET_MODE (x2) != V16SFmode
              || !vector_operand (operands[1], V16HImode)
              || !
#line 18570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 4578; /* *avx512f_vcvtph2ps512 */

        default:
          return -1;
        }

    case 164:
      return recog_9 (x1, insn, pnum_clobbers);

    case 198:
      if (GET_MODE (x2) != DFmode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!register_operand (operands[0], DFmode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!memory_operand (operands[1], DImode)
          || !
#line 310 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
(TARGET_80387))
        return -1;
      return 4980; /* loaddi_via_fpu */

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (XINT (x2, 1))
    {
    case 51:
      return recog_29 (x1, insn, pnum_clobbers);

    case 52:
      switch (pattern44 (x1, pnum_clobbers))
        {
        case 0:
          if (!
#line 15125 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations))
            return -1;
          *pnum_clobbers = 1;
          return 887; /* fyl2xxf3_i387 */

        case 1:
          if (!
#line 15139 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && (!(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)
       || TARGET_MIX_SSE_I387)
   && flag_unsafe_math_optimizations))
            return -1;
          *pnum_clobbers = 1;
          return 888; /* fyl2x_extendsfxf3_i387 */

        case 2:
          if (!
#line 15139 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && (!(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)
       || TARGET_MIX_SSE_I387)
   && flag_unsafe_math_optimizations))
            return -1;
          *pnum_clobbers = 1;
          return 889; /* fyl2x_extenddfxf3_i387 */

        default:
          return -1;
        }

    case 53:
      switch (pattern44 (x1, pnum_clobbers))
        {
        case 0:
          if (!
#line 15244 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations))
            return -1;
          *pnum_clobbers = 1;
          return 890; /* fyl2xp1xf3_i387 */

        case 1:
          if (!
#line 15258 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && (!(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)
       || TARGET_MIX_SSE_I387)
   && flag_unsafe_math_optimizations))
            return -1;
          *pnum_clobbers = 1;
          return 891; /* fyl2xp1_extendsfxf3_i387 */

        case 2:
          if (!
#line 15258 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && (!(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)
       || TARGET_MIX_SSE_I387)
   && flag_unsafe_math_optimizations))
            return -1;
          *pnum_clobbers = 1;
          return 892; /* fyl2xp1_extenddfxf3_i387 */

        default:
          return -1;
        }

    case 81:
      return recog_22 (x1, insn, pnum_clobbers);

    case 48:
      switch (pattern47 (x1))
        {
        case 0:
          if (!
#line 17562 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH))
            return -1;
          return 997; /* *ieee_smaxsf3 */

        case 1:
          if (!
#line 17562 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH))
            return -1;
          return 999; /* *ieee_smaxdf3 */

        case 2:
          if (!
#line 345 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_3DNOW))
            return -1;
          return 1122; /* mmx_ieee_maxv2sf3 */

        case 3:
          if (!(
#line 2001 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && 1 && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 1597; /* ieee_maxv16sf3 */

        case 4:
          if (!(
#line 2001 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && 1 && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 1605; /* ieee_maxv8sf3 */

        case 5:
          if (!
#line 2001 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && 1 && 1))
            return -1;
          return 1609; /* ieee_maxv4sf3 */

        case 6:
          if (!(
#line 2001 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && 1 && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 1613; /* ieee_maxv8df3 */

        case 7:
          if (!(
#line 2001 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && 1 && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 1621; /* ieee_maxv4df3 */

        case 8:
          if (!(
#line 2001 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && 1 && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return -1;
          return 1625; /* ieee_maxv2df3 */

        default:
          return -1;
        }

    case 47:
      switch (pattern47 (x1))
        {
        case 0:
          if (!
#line 17562 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH))
            return -1;
          return 998; /* *ieee_sminsf3 */

        case 1:
          if (!
#line 17562 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH))
            return -1;
          return 1000; /* *ieee_smindf3 */

        case 2:
          if (!
#line 345 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_3DNOW))
            return -1;
          return 1123; /* mmx_ieee_minv2sf3 */

        case 3:
          if (!(
#line 2001 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && 1 && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 1601; /* ieee_minv16sf3 */

        case 4:
          if (!(
#line 2001 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && 1 && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 1607; /* ieee_minv8sf3 */

        case 5:
          if (!
#line 2001 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && 1 && 1))
            return -1;
          return 1611; /* ieee_minv4sf3 */

        case 6:
          if (!(
#line 2001 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && 1 && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 1617; /* ieee_minv8df3 */

        case 7:
          if (!(
#line 2001 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && 1 && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 1623; /* ieee_minv4df3 */

        case 8:
          if (!(
#line 2001 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && 1 && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return -1;
          return 1627; /* ieee_minv2df3 */

        default:
          return -1;
        }

    case 78:
      switch (pattern48 (x1, pnum_clobbers))
        {
        case 0:
          if (!memory_operand (operands[1], SImode)
              || !memory_operand (operands[2], SImode)
              || !(
#line 18859 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_SSP_TLS_GUARD) && 
#line 1189 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ptr_mode == SImode)))
            return -1;
          *pnum_clobbers = 1;
          return 1019; /* stack_protect_test_si */

        case 1:
          if (!memory_operand (operands[1], DImode)
              || !memory_operand (operands[2], DImode)
              || !(
#line 18859 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_SSP_TLS_GUARD) && 
#line 1189 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ptr_mode == DImode)))
            return -1;
          *pnum_clobbers = 1;
          return 1020; /* stack_protect_test_di */

        default:
          return -1;
        }

    case 80:
      switch (pattern48 (x1, pnum_clobbers))
        {
        case 0:
          if (!memory_operand (operands[1], SImode)
              || !const_int_operand (operands[2], SImode)
              || !
#line 1189 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ptr_mode == SImode))
            return -1;
          *pnum_clobbers = 1;
          return 1021; /* stack_tls_protect_test_si */

        case 1:
          if (!memory_operand (operands[1], DImode)
              || !const_int_operand (operands[2], DImode)
              || !
#line 1189 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ptr_mode == DImode))
            return -1;
          *pnum_clobbers = 1;
          return 1022; /* stack_tls_protect_test_di */

        default:
          return -1;
        }

    case 100:
      if (pattern39 (x1, V2SFmode) != 0
          || !
#line 366 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_3DNOW))
        return -1;
      return 1125; /* mmx_rcpit1v2sf3 */

    case 101:
      if (pattern39 (x1, V2SFmode) != 0
          || !
#line 377 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_3DNOW))
        return -1;
      return 1126; /* mmx_rcpit2v2sf3 */

    case 103:
      if (pattern39 (x1, V2SFmode) != 0
          || !
#line 398 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_3DNOW))
        return -1;
      return 1128; /* mmx_rsqit1v2sf3 */

    case 45:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x2, 0, 1);
      operands[2] = x5;
      switch (GET_MODE (operands[0]))
        {
        case V1DImode:
          if (pattern282 (x2, V1DImode, V8QImode) != 0
              || !
#line 1530 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_SSE || TARGET_3DNOW_A))
            return -1;
          return 1217; /* mmx_psadbw */

        case V8DImode:
          if (pattern310 (x2, V64QImode, V8DImode) != 0
              || !(
#line 13759 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2) && 
#line 353 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return -1;
          return 3724; /* avx512f_psadbw */

        case V4DImode:
          if (pattern310 (x2, V32QImode, V4DImode) != 0
              || !(
#line 13759 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2) && 
#line 353 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
            return -1;
          return 3725; /* avx2_psadbw */

        case V2DImode:
          if (pattern310 (x2, V16QImode, V2DImode) != 0
              || !
#line 13759 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))
            return -1;
          return 3726; /* sse2_psadbw */

        default:
          return -1;
        }

    case 189:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x2, 0, 1);
      operands[2] = x5;
      if (!const_0_to_255_operand (operands[2], SImode))
        return -1;
      switch (pattern36 (x2))
        {
        case 0:
          if (!
#line 2562 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ))
            return -1;
          return 1651; /* *reducepv16sf */

        case 1:
          if (!(
#line 2562 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1653; /* *reducepv8sf */

        case 2:
          if (!(
#line 2562 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1655; /* *reducepv4sf */

        case 3:
          if (!
#line 2562 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ))
            return -1;
          return 1657; /* *reducepv8df */

        case 4:
          if (!(
#line 2562 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1659; /* *reducepv4df */

        case 5:
          if (!(
#line 2562 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1661; /* *reducepv2df */

        default:
          return -1;
        }

    case 159:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x2, 0, 1);
      operands[2] = x5;
      switch (GET_MODE (operands[0]))
        {
        case V16SFmode:
          if (pattern45 (x2, V16SFmode) != 0
              || !
#line 8115 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2575; /* avx512f_scalefv16sf */

        case V8SFmode:
          if (pattern45 (x2, V8SFmode) != 0
              || !(
#line 8115 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 2579; /* avx512vl_scalefv8sf */

        case V4SFmode:
          if (pattern45 (x2, V4SFmode) != 0
              || !(
#line 8115 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 2583; /* avx512vl_scalefv4sf */

        case V8DFmode:
          if (pattern45 (x2, V8DFmode) != 0
              || !
#line 8115 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2587; /* avx512f_scalefv8df */

        case V4DFmode:
          if (pattern45 (x2, V4DFmode) != 0
              || !(
#line 8115 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 2591; /* avx512vl_scalefv4df */

        case V2DFmode:
          if (pattern45 (x2, V2DFmode) != 0
              || !(
#line 8115 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 2595; /* avx512vl_scalefv2df */

        default:
          return -1;
        }

    case 185:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x2, 0, 1);
      operands[2] = x5;
      switch (GET_MODE (operands[0]))
        {
        case V16SImode:
          if (pattern282 (x2, V16SImode, V32HImode) != 0
              || !(
#line 10174 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW && 1) && 
#line 328 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return -1;
          return 3112; /* avx512bw_pmaddwd512v32hi */

        case V8SImode:
          if (pattern282 (x2, V8SImode, V16HImode) != 0
              || !(
#line 10174 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW && 1) && 
#line 328 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
            return -1;
          return 3114; /* avx512bw_pmaddwd512v16hi */

        case V4SImode:
          if (pattern282 (x2, V4SImode, V8HImode) != 0
              || !
#line 10174 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW && 1))
            return -1;
          return 3116; /* avx512bw_pmaddwd512v8hi */

        default:
          return -1;
        }

    case 168:
      switch (pattern50 (x1))
        {
        case 0:
          if (!(
#line 11003 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (EQ, V16QImode, operands)) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3378; /* avx512vl_eqv16qi3_1 */

        case 1:
          if (!(
#line 11003 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (EQ, V16HImode, operands)) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3384; /* avx512vl_eqv16hi3_1 */

        case 2:
          if (!
#line 11016 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (EQ, V16SImode, operands)))
            return -1;
          return 3388; /* avx512f_eqv16si3_1 */

        case 3:
          if (!(
#line 11003 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (EQ, V8HImode, operands)) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3386; /* avx512vl_eqv8hi3_1 */

        case 4:
          if (!(
#line 11016 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (EQ, V8SImode, operands)) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3390; /* avx512vl_eqv8si3_1 */

        case 5:
          if (!(
#line 11016 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (EQ, V4SImode, operands)) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3392; /* avx512vl_eqv4si3_1 */

        case 6:
          if (!
#line 11016 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (EQ, V8DImode, operands)))
            return -1;
          return 3394; /* avx512f_eqv8di3_1 */

        case 7:
          if (!(
#line 11016 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (EQ, V4DImode, operands)) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3396; /* avx512vl_eqv4di3_1 */

        case 8:
          if (!(
#line 11016 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (EQ, V2DImode, operands)) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3398; /* avx512vl_eqv2di3_1 */

        default:
          return -1;
        }

    case 169:
      return recog_24 (x1, insn, pnum_clobbers);

    case 153:
      switch (pattern50 (x1))
        {
        case 0:
          if (!(
#line 11688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3528; /* avx512vl_testmv16qi3 */

        case 1:
          if (!(
#line 11688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3534; /* avx512vl_testmv16hi3 */

        case 2:
          if (!
#line 11699 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 3538; /* avx512f_testmv16si3 */

        case 3:
          if (!(
#line 11688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3536; /* avx512vl_testmv8hi3 */

        case 4:
          if (!(
#line 11699 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3540; /* avx512vl_testmv8si3 */

        case 5:
          if (!(
#line 11699 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3542; /* avx512vl_testmv4si3 */

        case 6:
          if (!
#line 11699 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 3544; /* avx512f_testmv8di3 */

        case 7:
          if (!(
#line 11699 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3546; /* avx512vl_testmv4di3 */

        case 8:
          if (!(
#line 11699 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3548; /* avx512vl_testmv2di3 */

        default:
          return -1;
        }

    case 154:
      switch (pattern50 (x1))
        {
        case 0:
          if (!(
#line 11710 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3552; /* avx512vl_testnmv16qi3 */

        case 1:
          if (!(
#line 11710 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3558; /* avx512vl_testnmv16hi3 */

        case 2:
          if (!
#line 11721 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 3562; /* avx512f_testnmv16si3 */

        case 3:
          if (!(
#line 11710 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3560; /* avx512vl_testnmv8hi3 */

        case 4:
          if (!(
#line 11721 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3564; /* avx512vl_testnmv8si3 */

        case 5:
          if (!(
#line 11721 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3566; /* avx512vl_testnmv4si3 */

        case 6:
          if (!
#line 11721 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 3568; /* avx512f_testnmv8di3 */

        case 7:
          if (!(
#line 11721 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3570; /* avx512vl_testnmv4di3 */

        case 8:
          if (!(
#line 11721 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3572; /* avx512vl_testnmv2di3 */

        default:
          return -1;
        }

    case 187:
      if (pattern51 (x1) != 0
          || !
#line 12947 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
        return -1;
      return 3678; /* *avx512bw_pshuflwv32hi */

    case 186:
      if (pattern51 (x1) != 0
          || !
#line 13123 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
        return -1;
      return 3684; /* *avx512bw_pshufhwv32hi */

    case 184:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x2, 0, 1);
      operands[2] = x5;
      switch (GET_MODE (operands[0]))
        {
        case V8HImode:
          if (pattern282 (x2, V8HImode, V16QImode) != 0
              || !(
#line 14237 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3766; /* avx512bw_pmaddubsw512v8hi */

        case V16HImode:
          if (pattern282 (x2, V16HImode, V32QImode) != 0
              || !(
#line 14237 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3768; /* avx512bw_pmaddubsw512v16hi */

        case V32HImode:
          if (pattern282 (x2, V32HImode, V64QImode) != 0
              || !
#line 14237 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
            return -1;
          return 3770; /* avx512bw_pmaddubsw512v32hi */

        default:
          return -1;
        }

    case 108:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x2, 0, 1);
      operands[2] = x5;
      switch (GET_MODE (operands[0]))
        {
        case V64QImode:
          if (pattern46 (x2, V64QImode) != 0
              || !(
#line 14451 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3 && 1 && 1) && 
#line 325 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return -1;
          return 3783; /* avx512bw_pshufbv64qi3 */

        case V32QImode:
          if (pattern46 (x2, V32QImode) != 0
              || !(
#line 14451 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3 && 1 && 1) && 
#line 325 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
            return -1;
          return 3785; /* avx2_pshufbv32qi3 */

        case V16QImode:
          if (pattern46 (x2, V16QImode) != 0
              || !
#line 14451 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3 && 1 && 1))
            return -1;
          return 3787; /* ssse3_pshufbv16qi3 */

        case V8QImode:
          if (pattern45 (x2, V8QImode) != 0
              || !
#line 14468 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3))
            return -1;
          return 3789; /* ssse3_pshufbv8qi3 */

        default:
          return -1;
        }

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

    case 112:
      if (GET_MODE (x2) != V2DImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!register_operand (operands[0], V2DImode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!register_operand (operands[1], V2DImode))
        return -1;
      x5 = XVECEXP (x2, 0, 1);
      operands[2] = x5;
      if (!register_operand (operands[2], V16QImode)
          || !
#line 14692 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4A))
        return -1;
      return 3838; /* sse4a_extrq */

    case 114:
      if (GET_MODE (x2) != V2DImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!register_operand (operands[0], V2DImode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!register_operand (operands[1], V2DImode))
        return -1;
      x5 = XVECEXP (x2, 0, 1);
      operands[2] = x5;
      if (!register_operand (operands[2], V2DImode)
          || !
#line 14718 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4A))
        return -1;
      return 3840; /* sse4a_insertq */

    case 141:
      return recog_30 (x1, insn, pnum_clobbers);

    case 121:
      return recog_23 (x1, insn, pnum_clobbers);

    case 129:
      if (pattern40 (x1, V2DImode) != 0
          || !
#line 16960 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AES))
        return -1;
      return 4118; /* aesenc */

    case 130:
      if (pattern40 (x1, V2DImode) != 0
          || !
#line 16976 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AES))
        return -1;
      return 4119; /* aesenclast */

    case 131:
      if (pattern40 (x1, V2DImode) != 0
          || !
#line 16992 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AES))
        return -1;
      return 4120; /* aesdec */

    case 132:
      if (pattern40 (x1, V2DImode) != 0
          || !
#line 17008 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AES))
        return -1;
      return 4121; /* aesdeclast */

    case 134:
      if (GET_MODE (x2) != V2DImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!register_operand (operands[0], V2DImode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!vector_operand (operands[1], V2DImode))
        return -1;
      x5 = XVECEXP (x2, 0, 1);
      operands[2] = x5;
      if (!const_0_to_255_operand (operands[2], SImode)
          || !
#line 17035 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AES))
        return -1;
      return 4123; /* aeskeygenassist */

    case 144:
      return recog_25 (x1, insn, pnum_clobbers);

    case 137:
      return recog_32 (x1, insn, pnum_clobbers);

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

    case 143:
      return recog_31 (x1, insn, pnum_clobbers);

    case 155:
      return recog_21 (x1, insn, pnum_clobbers);

    case 190:
      return recog_26 (x1, insn, pnum_clobbers);

    case 162:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x2, 0, 1);
      operands[2] = x5;
      if (!const_0_to_15_operand (operands[2], SImode))
        return -1;
      switch (pattern36 (x2))
        {
        case 0:
          if (!
#line 19150 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 4875; /* avx512f_getmantv16sf */

        case 1:
          if (!(
#line 19150 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4879; /* avx512vl_getmantv8sf */

        case 2:
          if (!(
#line 19150 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4883; /* avx512vl_getmantv4sf */

        case 3:
          if (!
#line 19150 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 4887; /* avx512f_getmantv8df */

        case 4:
          if (!(
#line 19150 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4891; /* avx512vl_getmantv4df */

        case 5:
          if (!(
#line 19150 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4895; /* avx512vl_getmantv2df */

        default:
          return -1;
        }

    case 176:
      if (pattern40 (x1, V4SImode) != 0
          || !
#line 19214 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SHA))
        return -1;
      return 4933; /* sha1msg1 */

    case 177:
      if (pattern40 (x1, V4SImode) != 0
          || !
#line 19225 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SHA))
        return -1;
      return 4934; /* sha1msg2 */

    case 178:
      if (pattern40 (x1, V4SImode) != 0
          || !
#line 19236 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SHA))
        return -1;
      return 4935; /* sha1nexte */

    case 180:
      if (pattern40 (x1, V4SImode) != 0
          || !
#line 19260 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SHA))
        return -1;
      return 4937; /* sha256msg1 */

    case 181:
      if (pattern40 (x1, V4SImode) != 0
          || !
#line 19271 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SHA))
        return -1;
      return 4938; /* sha256msg2 */

    case 194:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x2, 0, 1);
      operands[2] = x5;
      switch (GET_MODE (operands[0]))
        {
        case V64QImode:
          if (pattern45 (x2, V64QImode) != 0
              || !
#line 19399 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VBMI))
            return -1;
          return 4964; /* vpmultishiftqbv64qi */

        case V16QImode:
          if (pattern45 (x2, V16QImode) != 0
              || !(
#line 19399 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VBMI) && 
#line 186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4966; /* vpmultishiftqbv16qi */

        case V32QImode:
          if (pattern45 (x2, V32QImode) != 0
              || !(
#line 19399 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VBMI) && 
#line 186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4968; /* vpmultishiftqbv32qi */

        default:
          return -1;
        }

    case 201:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x2, 0, 1);
      operands[2] = x5;
      if (!const_int_operand (operands[2], SImode))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case QImode:
          if (!memory_operand (operands[0], QImode)
              || GET_MODE (x2) != QImode
              || !nonmemory_operand (operands[1], QImode))
            return -1;
          return 4975; /* atomic_storeqi_1 */

        case HImode:
          if (!memory_operand (operands[0], HImode)
              || GET_MODE (x2) != HImode
              || !nonmemory_operand (operands[1], HImode))
            return -1;
          return 4976; /* atomic_storehi_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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (XINT (x2, 1))
    {
    case 46:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      switch (pattern123 (x2))
        {
        case 0:
          if (!
#line 9524 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)
   || (TARGET_SSE && (SFmode == TFmode))))
            return -1;
          return 499; /* copysignsf3_const */

        case 1:
          if (!
#line 9524 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)
   || (TARGET_SSE && (DFmode == TFmode))))
            return -1;
          return 500; /* copysigndf3_const */

        case 2:
          if (!
#line 9524 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((SSE_FLOAT_MODE_P (TFmode) && TARGET_SSE_MATH)
   || (TARGET_SSE && (TFmode == TFmode))))
            return -1;
          return 501; /* copysigntf3_const */

        default:
          return -1;
        }

    case 41:
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x2, 0, 1);
      operands[2] = x5;
      x6 = XVECEXP (x2, 0, 2);
      if (GET_CODE (x6) == MEM)
        {
          res = recog_13 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!rtx_equal_p (x6, operands[0]))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V4SFmode:
          if (pattern355 (x2, V4SFmode, V4SImode) != 0
              || !
#line 18336 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return -1;
          return 4495; /* avx_maskstoreps */

        case V2DFmode:
          if (pattern355 (x2, V2DFmode, V2DImode) != 0
              || !
#line 18336 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return -1;
          return 4496; /* avx_maskstorepd */

        case V8SFmode:
          if (pattern355 (x2, V8SFmode, V8SImode) != 0
              || !
#line 18336 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return -1;
          return 4497; /* avx_maskstoreps256 */

        case V4DFmode:
          if (pattern355 (x2, V4DFmode, V4DImode) != 0
              || !
#line 18336 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return -1;
          return 4498; /* avx_maskstorepd256 */

        case V4SImode:
          if (pattern356 (x2, V4SImode) != 0
              || !(
#line 18336 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX) && 
#line 434 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
            return -1;
          return 4499; /* avx2_maskstored */

        case V2DImode:
          if (pattern356 (x2, V2DImode) != 0
              || !(
#line 18336 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX) && 
#line 434 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
            return -1;
          return 4500; /* avx2_maskstoreq */

        case V8SImode:
          if (pattern356 (x2, V8SImode) != 0
              || !(
#line 18336 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX) && 
#line 435 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
            return -1;
          return 4501; /* avx2_maskstored256 */

        case V4DImode:
          if (pattern356 (x2, V4DImode) != 0
              || !(
#line 18336 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX) && 
#line 435 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
            return -1;
          return 4502; /* avx2_maskstoreq256 */

        default:
          return -1;
        }

    case 136:
      return recog_16 (x1, insn, pnum_clobbers);

    case 152:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x2, 0, 1);
      operands[2] = x5;
      x6 = XVECEXP (x2, 0, 2);
      operands[3] = x6;
      if (!const_0_to_7_operand (operands[3], SImode))
        return -1;
      switch (pattern49 (x2))
        {
        case 0:
          if (!(
#line 2716 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1727; /* avx512vl_ucmpv16qi3 */

        case 1:
          if (!(
#line 2716 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1733; /* avx512vl_ucmpv16hi3 */

        case 2:
          if (!
#line 2730 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 1737; /* avx512f_ucmpv16si3 */

        case 3:
          if (!(
#line 2716 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1735; /* avx512vl_ucmpv8hi3 */

        case 4:
          if (!(
#line 2730 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1739; /* avx512vl_ucmpv8si3 */

        case 5:
          if (!(
#line 2730 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1741; /* avx512vl_ucmpv4si3 */

        case 6:
          if (!
#line 2730 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 1743; /* avx512f_ucmpv8di3 */

        case 7:
          if (!(
#line 2730 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1745; /* avx512vl_ucmpv4di3 */

        case 8:
          if (!(
#line 2730 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1747; /* avx512vl_ucmpv2di3 */

        default:
          return -1;
        }

    case 124:
      return recog_15 (x1, insn, pnum_clobbers);

    case 116:
      if (GET_MODE (x2) != V4SFmode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!register_operand (operands[0], V4SFmode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[2] = x4;
      if (!nonimmediate_operand (operands[2], V4SFmode))
        return -1;
      x5 = XVECEXP (x2, 0, 1);
      operands[1] = x5;
      if (!register_operand (operands[1], V4SFmode))
        return -1;
      x6 = XVECEXP (x2, 0, 2);
      operands[3] = x6;
      if (!const_0_to_255_operand (operands[3], SImode)
          || !
#line 6908 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1))
        return -1;
      return 2493; /* sse4_1_insertps */

    case 163:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x2, 0, 1);
      operands[2] = x5;
      x6 = XVECEXP (x2, 0, 2);
      operands[3] = x6;
      if (!const_0_to_255_operand (operands[3], SImode))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V16SImode:
          if (pattern45 (x2, V16SImode) != 0
              || !
#line 8195 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2645; /* *avx512f_alignv16si */

        case V8SImode:
          if (pattern45 (x2, V8SImode) != 0
              || !(
#line 8195 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 2647; /* *avx512vl_alignv8si */

        case V4SImode:
          if (pattern45 (x2, V4SImode) != 0
              || !(
#line 8195 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 2649; /* *avx512vl_alignv4si */

        case V8DImode:
          if (pattern45 (x2, V8DImode) != 0
              || !
#line 8195 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2651; /* *avx512f_alignv8di */

        case V4DImode:
          if (pattern45 (x2, V4DImode) != 0
              || !(
#line 8195 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 2653; /* *avx512vl_alignv4di */

        case V2DImode:
          if (pattern45 (x2, V2DImode) != 0
              || !(
#line 8195 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 2655; /* *avx512vl_alignv2di */

        default:
          return -1;
        }

    case 110:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x2, 0, 1);
      operands[2] = x5;
      x6 = XVECEXP (x2, 0, 2);
      operands[3] = x6;
      if (!const_0_to_255_mul_8_operand (operands[3], SImode))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V4TImode:
          if (pattern46 (x2, V4TImode) != 0
              || !(
#line 14534 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3) && 
#line 378 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return -1;
          return 3802; /* avx512bw_palignrv4ti */

        case V2TImode:
          if (pattern46 (x2, V2TImode) != 0
              || !(
#line 14534 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3) && 
#line 378 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
            return -1;
          return 3803; /* avx2_palignrv2ti */

        case TImode:
          if (pattern46 (x2, TImode) != 0
              || !
#line 14534 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3))
            return -1;
          return 3804; /* ssse3_palignrti */

        default:
          return -1;
        }

    case 111:
      if (GET_MODE (x2) != V2DImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!register_operand (operands[0], V2DImode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!register_operand (operands[1], V2DImode))
        return -1;
      x5 = XVECEXP (x2, 0, 1);
      operands[2] = x5;
      if (!const_0_to_255_operand (operands[2], VOIDmode))
        return -1;
      x6 = XVECEXP (x2, 0, 2);
      operands[3] = x6;
      if (!const_0_to_255_operand (operands[3], VOIDmode)
          || !
#line 14680 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4A))
        return -1;
      return 3837; /* sse4a_extrqi */

    case 115:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x2, 0, 1);
      operands[2] = x5;
      x6 = XVECEXP (x2, 0, 2);
      operands[3] = x6;
      switch (GET_MODE (operands[0]))
        {
        case V8SFmode:
          if (pattern358 (x2, V8SFmode) != 0
              || !(
#line 14761 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1) && 
#line 221 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 3845; /* avx_blendvps256 */

        case V4SFmode:
          if (pattern358 (x2, V4SFmode) != 0
              || !
#line 14761 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1))
            return -1;
          return 3846; /* sse4_1_blendvps */

        case V4DFmode:
          if (pattern358 (x2, V4DFmode) != 0
              || !(
#line 14761 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 3847; /* avx_blendvpd256 */

        case V2DFmode:
          if (pattern358 (x2, V2DFmode) != 0
              || !(
#line 14761 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return -1;
          return 3848; /* sse4_1_blendvpd */

        case V32QImode:
          if (pattern358 (x2, V32QImode) != 0
              || !(
#line 14858 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1) && 
#line 322 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
            return -1;
          return 3864; /* avx2_pblendvb */

        case V16QImode:
          if (pattern358 (x2, V16QImode) != 0
              || !
#line 14858 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1))
            return -1;
          return 3865; /* sse4_1_pblendvb */

        default:
          return -1;
        }

    case 117:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x2, 0, 1);
      operands[2] = x5;
      x6 = XVECEXP (x2, 0, 2);
      operands[3] = x6;
      if (!const_0_to_255_operand (operands[3], SImode))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V8SFmode:
          if (pattern432 (x2, V8SFmode) != 0
              || !(
#line 14782 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1) && 
#line 221 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 3849; /* avx_dpps256 */

        case V4SFmode:
          if (pattern432 (x2, V4SFmode) != 0
              || !
#line 14782 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1))
            return -1;
          return 3850; /* sse4_1_dpps */

        case V4DFmode:
          if (pattern432 (x2, V4DFmode) != 0
              || !(
#line 14782 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 3851; /* avx_dppd256 */

        case V2DFmode:
          if (pattern432 (x2, V2DFmode) != 0
              || !(
#line 14782 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return -1;
          return 3852; /* sse4_1_dppd */

        default:
          return -1;
        }

    case 119:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x2, 0, 1);
      operands[2] = x5;
      x6 = XVECEXP (x2, 0, 2);
      operands[3] = x6;
      if (!const_0_to_255_operand (operands[3], SImode))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V32QImode:
          if (pattern46 (x2, V32QImode) != 0
              || !(
#line 14819 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1) && 
#line 322 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
            return -1;
          return 3856; /* avx2_mpsadbw */

        case V16QImode:
          if (pattern46 (x2, V16QImode) != 0
              || !
#line 14819 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1))
            return -1;
          return 3857; /* sse4_1_mpsadbw */

        default:
          return -1;
        }

    case 123:
      if (pnum_clobbers == NULL
          || pattern124 (x1) != 0
          || !nonimmediate_operand (operands[3], V16QImode))
        return -1;
      x6 = XVECEXP (x2, 0, 2);
      operands[4] = x6;
      if (!const_0_to_255_operand (operands[4], SImode)
          || !
#line 15789 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_2))
        return -1;
      *pnum_clobbers = 2;
      return 3974; /* sse4_2_pcmpistr_cconly */

    case 127:
      if (pattern39 (x1, V16QImode) != 0)
        return -1;
      x6 = XVECEXP (x2, 0, 2);
      operands[3] = x6;
      if (!nonimmediate_operand (operands[3], V16QImode)
          || !
#line 16394 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP && !(MEM_P (operands[2]) && MEM_P (operands[3]))))
        return -1;
      return 4066; /* xop_pperm */

    case 126:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x2, 0, 1);
      operands[2] = x5;
      x6 = XVECEXP (x2, 0, 2);
      operands[3] = x6;
      if (!const_int_operand (operands[3], SImode))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V16QImode:
          if (pattern45 (x2, V16QImode) != 0
              || !
#line 16927 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
            return -1;
          return 4110; /* xop_pcom_tfv16qi3 */

        case V8HImode:
          if (pattern45 (x2, V8HImode) != 0
              || !
#line 16927 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
            return -1;
          return 4111; /* xop_pcom_tfv8hi3 */

        case V4SImode:
          if (pattern45 (x2, V4SImode) != 0
              || !
#line 16927 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
            return -1;
          return 4112; /* xop_pcom_tfv4si3 */

        case V2DImode:
          if (pattern45 (x2, V2DImode) != 0
              || !
#line 16927 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
            return -1;
          return 4113; /* xop_pcom_tfv2di3 */

        default:
          return -1;
        }

    case 135:
      if (pattern40 (x1, V2DImode) != 0)
        return -1;
      x6 = XVECEXP (x2, 0, 2);
      operands[3] = x6;
      if (!const_0_to_255_operand (operands[3], SImode)
          || !
#line 17049 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_PCLMUL))
        return -1;
      return 4124; /* pclmulqdq */

    case 145:
      if (pattern39 (x1, V4DImode) != 0)
        return -1;
      x6 = XVECEXP (x2, 0, 2);
      operands[3] = x6;
      if (!const_0_to_255_operand (operands[3], SImode)
          || !
#line 17230 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))
        return -1;
      return 4179; /* avx2_permv2ti */

    case 148:
      return recog_17 (x1, insn, pnum_clobbers);

    case 149:
      return recog_18 (x1, insn, pnum_clobbers);

    case 139:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x2, 0, 1);
      operands[2] = x5;
      x6 = XVECEXP (x2, 0, 2);
      operands[3] = x6;
      if (!const_0_to_255_operand (operands[3], SImode))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V8SImode:
          if (pattern45 (x2, V8SImode) != 0
              || !
#line 18038 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return -1;
          return 4455; /* *avx_vperm2f128v8si_full */

        case V8SFmode:
          if (pattern45 (x2, V8SFmode) != 0
              || !
#line 18038 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return -1;
          return 4456; /* *avx_vperm2f128v8sf_full */

        case V4DFmode:
          if (pattern45 (x2, V4DFmode) != 0
              || !
#line 18038 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return -1;
          return 4457; /* *avx_vperm2f128v4df_full */

        default:
          return -1;
        }

    case 146:
      return recog_14 (x1, insn, pnum_clobbers);

    case 165:
      return recog_20 (x1, insn, pnum_clobbers);

    case 166:
      return recog_19 (x1, insn, pnum_clobbers);

    case 167:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x2, 0, 1);
      operands[2] = x5;
      x6 = XVECEXP (x2, 0, 2);
      operands[3] = x6;
      switch (GET_MODE (operands[0]))
        {
        case V16SImode:
          if (pattern363 (x2, V16SImode, HImode) != 0
              || !
#line 19080 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 4829; /* avx512f_expandv16si_mask */

        case V16SFmode:
          if (pattern363 (x2, V16SFmode, HImode) != 0
              || !
#line 19080 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 4830; /* avx512f_expandv16sf_mask */

        case V8DImode:
          if (pattern363 (x2, V8DImode, QImode) != 0
              || !
#line 19080 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 4831; /* avx512f_expandv8di_mask */

        case V8DFmode:
          if (pattern363 (x2, V8DFmode, QImode) != 0
              || !
#line 19080 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 4832; /* avx512f_expandv8df_mask */

        case V8SImode:
          if (pattern363 (x2, V8SImode, QImode) != 0
              || !(
#line 19080 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4833; /* avx512vl_expandv8si_mask */

        case V8SFmode:
          if (pattern363 (x2, V8SFmode, QImode) != 0
              || !(
#line 19080 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4834; /* avx512vl_expandv8sf_mask */

        case V4DImode:
          if (pattern363 (x2, V4DImode, QImode) != 0
              || !(
#line 19080 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4835; /* avx512vl_expandv4di_mask */

        case V4DFmode:
          if (pattern363 (x2, V4DFmode, QImode) != 0
              || !(
#line 19080 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4836; /* avx512vl_expandv4df_mask */

        case V4SImode:
          if (pattern363 (x2, V4SImode, QImode) != 0
              || !(
#line 19080 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4837; /* avx512vl_expandv4si_mask */

        case V4SFmode:
          if (pattern363 (x2, V4SFmode, QImode) != 0
              || !(
#line 19080 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4838; /* avx512vl_expandv4sf_mask */

        case V2DImode:
          if (pattern363 (x2, V2DImode, QImode) != 0
              || !(
#line 19080 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4839; /* avx512vl_expandv2di_mask */

        case V2DFmode:
          if (pattern363 (x2, V2DFmode, QImode) != 0
              || !(
#line 19080 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4840; /* avx512vl_expandv2df_mask */

        default:
          return -1;
        }

    case 191:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x2, 0, 1);
      operands[2] = x5;
      x6 = XVECEXP (x2, 0, 2);
      operands[3] = x6;
      if (!const_0_to_15_operand (operands[3], SImode))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V16SFmode:
          if (pattern46 (x2, V16SFmode) != 0
              || !
#line 19094 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1))
            return -1;
          return 4841; /* avx512dq_rangepv16sf */

        case V8SFmode:
          if (pattern46 (x2, V8SFmode) != 0
              || !(
#line 19094 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4845; /* avx512dq_rangepv8sf */

        case V4SFmode:
          if (pattern46 (x2, V4SFmode) != 0
              || !(
#line 19094 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4847; /* avx512dq_rangepv4sf */

        case V8DFmode:
          if (pattern46 (x2, V8DFmode) != 0
              || !
#line 19094 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1))
            return -1;
          return 4849; /* avx512dq_rangepv8df */

        case V4DFmode:
          if (pattern46 (x2, V4DFmode) != 0
              || !(
#line 19094 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4853; /* avx512dq_rangepv4df */

        case V2DFmode:
          if (pattern46 (x2, V2DFmode) != 0
              || !(
#line 19094 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4855; /* avx512dq_rangepv2df */

        default:
          return -1;
        }

    case 183:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x2, 0, 1);
      operands[2] = x5;
      x6 = XVECEXP (x2, 0, 2);
      operands[3] = x6;
      if (!const_0_to_255_operand (operands[3], SImode))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V8HImode:
          if (pattern282 (x2, V8HImode, V16QImode) != 0
              || !(
#line 19179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4903; /* *avx512bw_dbpsadbwv8hi */

        case V16HImode:
          if (pattern282 (x2, V16HImode, V32QImode) != 0
              || !(
#line 19179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4905; /* *avx512bw_dbpsadbwv16hi */

        case V32HImode:
          if (pattern282 (x2, V32HImode, V64QImode) != 0
              || !
#line 19179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
            return -1;
          return 4907; /* *avx512bw_dbpsadbwv32hi */

        default:
          return -1;
        }

    case 179:
      if (pattern41 (x1) != 0
          || !const_0_to_3_operand (operands[3], SImode)
          || !
#line 19248 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SHA))
        return -1;
      return 4936; /* sha1rnds4 */

    case 182:
      if (pattern41 (x1) != 0
          || !register_operand (operands[3], V4SImode)
          || !
#line 19283 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SHA))
        return -1;
      return 4939; /* sha256rnds2 */

    case 192:
      switch (pattern43 (x1))
        {
        case 0:
          if (!
#line 19371 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512IFMA))
            return -1;
          return 4946; /* vpamdd52luqv8di */

        case 1:
          if (!(
#line 19371 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512IFMA) && 
#line 316 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4950; /* vpamdd52luqv4di */

        case 2:
          if (!(
#line 19371 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512IFMA) && 
#line 316 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4954; /* vpamdd52luqv2di */

        default:
          return -1;
        }

    case 193:
      switch (pattern43 (x1))
        {
        case 0:
          if (!
#line 19371 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512IFMA))
            return -1;
          return 4948; /* vpamdd52huqv8di */

        case 1:
          if (!(
#line 19371 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512IFMA) && 
#line 316 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4952; /* vpamdd52huqv4di */

        case 2:
          if (!(
#line 19371 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512IFMA) && 
#line 316 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4956; /* vpamdd52huqv2di */

        default:
          return -1;
        }

    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;
  rtx x10, x11, x12, x13;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (XVECLEN (x2, 0))
    {
    case 1:
      return recog_33 (x1, insn, pnum_clobbers);

    case 3:
      return recog_35 (x1, insn, pnum_clobbers);

    case 4:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      switch (XINT (x2, 1))
        {
        case 46:
          if (pnum_clobbers == NULL)
            return -1;
          x4 = XVECEXP (x2, 0, 0);
          operands[2] = x4;
          x5 = XVECEXP (x2, 0, 1);
          operands[3] = x5;
          x6 = XVECEXP (x2, 0, 2);
          operands[4] = x6;
          x7 = XVECEXP (x2, 0, 3);
          operands[5] = x7;
          switch (GET_MODE (operands[0]))
            {
            case SFmode:
              if (pattern482 (x2, V4SFmode, SFmode) != 0
                  || !
#line 9540 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)
   || (TARGET_SSE && (SFmode == TFmode))))
                return -1;
              *pnum_clobbers = 1;
              return 502; /* copysignsf3_var */

            case DFmode:
              if (pattern482 (x2, V2DFmode, DFmode) != 0
                  || !
#line 9540 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)
   || (TARGET_SSE && (DFmode == TFmode))))
                return -1;
              *pnum_clobbers = 1;
              return 503; /* copysigndf3_var */

            case TFmode:
              if (!register_operand (operands[0], TFmode)
                  || GET_MODE (x2) != TFmode
                  || !register_operand (operands[2], TFmode)
                  || !register_operand (operands[3], TFmode)
                  || !nonimmediate_operand (operands[4], TFmode)
                  || !nonimmediate_operand (operands[5], TFmode)
                  || !
#line 9540 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((SSE_FLOAT_MODE_P (TFmode) && TARGET_SSE_MATH)
   || (TARGET_SSE && (TFmode == TFmode))))
                return -1;
              *pnum_clobbers = 1;
              return 504; /* copysigntf3_var */

            default:
              return -1;
            }

        case 160:
          x4 = XVECEXP (x2, 0, 0);
          operands[1] = x4;
          x5 = XVECEXP (x2, 0, 1);
          operands[2] = x5;
          x6 = XVECEXP (x2, 0, 2);
          operands[3] = x6;
          x7 = XVECEXP (x2, 0, 3);
          operands[4] = x7;
          if (!const_0_to_255_operand (operands[4], SImode))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case V16SImode:
              if (pattern42 (x2, V16SImode) != 0
                  || !
#line 8143 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 2599; /* avx512f_vternlogv16si */

            case V8SImode:
              if (pattern42 (x2, V8SImode) != 0
                  || !(
#line 8143 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2601; /* avx512vl_vternlogv8si */

            case V4SImode:
              if (pattern42 (x2, V4SImode) != 0
                  || !(
#line 8143 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2603; /* avx512vl_vternlogv4si */

            case V8DImode:
              if (pattern42 (x2, V8DImode) != 0
                  || !
#line 8143 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 2605; /* avx512f_vternlogv8di */

            case V4DImode:
              if (pattern42 (x2, V4DImode) != 0
                  || !(
#line 8143 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2607; /* avx512vl_vternlogv4di */

            case V2DImode:
              if (pattern42 (x2, V2DImode) != 0
                  || !(
#line 8143 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2609; /* avx512vl_vternlogv2di */

            default:
              return -1;
            }

        case 158:
          x4 = XVECEXP (x2, 0, 0);
          operands[1] = x4;
          x5 = XVECEXP (x2, 0, 1);
          operands[2] = x5;
          x6 = XVECEXP (x2, 0, 2);
          operands[3] = x6;
          x7 = XVECEXP (x2, 0, 3);
          operands[4] = x7;
          if (!const_0_to_255_operand (operands[4], SImode))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case V16SFmode:
              if (pattern483 (x2, V16SImode, V16SFmode) != 0
                  || !
#line 8256 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 2657; /* avx512f_fixupimmv16sf */

            case V8SFmode:
              if (pattern483 (x2, V8SImode, V8SFmode) != 0
                  || !(
#line 8256 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2661; /* avx512vl_fixupimmv8sf */

            case V4SFmode:
              if (pattern483 (x2, V4SImode, V4SFmode) != 0
                  || !(
#line 8256 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2665; /* avx512vl_fixupimmv4sf */

            case V8DFmode:
              if (pattern483 (x2, V8DImode, V8DFmode) != 0
                  || !
#line 8256 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 2669; /* avx512f_fixupimmv8df */

            case V4DFmode:
              if (pattern483 (x2, V4DImode, V4DFmode) != 0
                  || !(
#line 8256 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2673; /* avx512vl_fixupimmv4df */

            case V2DFmode:
              if (pattern483 (x2, V2DImode, V2DFmode) != 0
                  || !(
#line 8256 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2677; /* avx512vl_fixupimmv2df */

            default:
              return -1;
            }

        case 113:
          if (GET_MODE (x2) != V2DImode
              || !register_operand (operands[0], V2DImode))
            return -1;
          x4 = XVECEXP (x2, 0, 0);
          operands[1] = x4;
          if (!register_operand (operands[1], V2DImode))
            return -1;
          x5 = XVECEXP (x2, 0, 1);
          operands[2] = x5;
          if (!register_operand (operands[2], V2DImode))
            return -1;
          x6 = XVECEXP (x2, 0, 2);
          operands[3] = x6;
          if (!const_0_to_255_operand (operands[3], VOIDmode))
            return -1;
          x7 = XVECEXP (x2, 0, 3);
          operands[4] = x7;
          if (!const_0_to_255_operand (operands[4], VOIDmode)
              || !
#line 14705 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4A))
            return -1;
          return 3839; /* sse4a_insertqi */

        case 138:
          x4 = XVECEXP (x2, 0, 0);
          operands[1] = x4;
          x5 = XVECEXP (x2, 0, 1);
          operands[2] = x5;
          x6 = XVECEXP (x2, 0, 2);
          operands[3] = x6;
          x7 = XVECEXP (x2, 0, 3);
          operands[4] = x7;
          if (!const_0_to_3_operand (operands[4], SImode))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case V8SFmode:
              if (pattern484 (x2, V8SImode, V8SFmode) != 0
                  || !(
#line 16947 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP) && 
#line 221 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
                return -1;
              return 4114; /* xop_vpermil2v8sf3 */

            case V4SFmode:
              if (pattern484 (x2, V4SImode, V4SFmode) != 0
                  || !
#line 16947 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
                return -1;
              return 4115; /* xop_vpermil2v4sf3 */

            case V4DFmode:
              if (pattern484 (x2, V4DImode, V4DFmode) != 0
                  || !(
#line 16947 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
                return -1;
              return 4116; /* xop_vpermil2v4df3 */

            case V2DFmode:
              if (pattern484 (x2, V2DImode, V2DFmode) != 0
                  || !(
#line 16947 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
                return -1;
              return 4117; /* xop_vpermil2v2df3 */

            default:
              return -1;
            }

        case 146:
          if (pnum_clobbers == NULL)
            return -1;
          x5 = XVECEXP (x2, 0, 1);
          if (GET_CODE (x5) != MEM)
            return -1;
          x8 = XEXP (x5, 0);
          if (GET_CODE (x8) != UNSPEC
              || XVECLEN (x8, 0) != 3
              || XINT (x8, 1) != 147)
            return -1;
          x6 = XVECEXP (x2, 0, 2);
          if (GET_CODE (x6) != MEM
              || GET_MODE (x6) != BLKmode)
            return -1;
          x9 = XEXP (x6, 0);
          if (GET_CODE (x9) != SCRATCH)
            return -1;
          x10 = XVECEXP (x8, 0, 2);
          if (!const1248_operand (x10, SImode))
            return -1;
          x4 = XVECEXP (x2, 0, 0);
          switch (GET_CODE (x4))
            {
            case REG:
            case SUBREG:
              operands[2] = x4;
              operands[7] = x5;
              x11 = XVECEXP (x8, 0, 0);
              operands[3] = x11;
              x12 = XVECEXP (x8, 0, 1);
              operands[4] = x12;
              operands[6] = x10;
              x7 = XVECEXP (x2, 0, 3);
              operands[5] = x7;
              switch (GET_MODE (operands[0]))
                {
                case V2DImode:
                  switch (pattern850 (x2, V2DImode, DImode))
                    {
                    case 0:
                      if (!(
#line 18703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4589; /* *avx2_gathersiv2di */

                    case 1:
                      if (!(
#line 18764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4621; /* *avx2_gatherdiv2di */

                    case 2:
                      if (!(
#line 18703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4590; /* *avx2_gathersiv2di */

                    case 3:
                      if (!(
#line 18764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4622; /* *avx2_gatherdiv2di */

                    default:
                      return -1;
                    }

                case V2DFmode:
                  switch (pattern850 (x2, V2DFmode, DFmode))
                    {
                    case 0:
                      if (!(
#line 18703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4591; /* *avx2_gathersiv2df */

                    case 1:
                      if (!(
#line 18764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4623; /* *avx2_gatherdiv2df */

                    case 2:
                      if (!(
#line 18703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4592; /* *avx2_gathersiv2df */

                    case 3:
                      if (!(
#line 18764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4624; /* *avx2_gatherdiv2df */

                    default:
                      return -1;
                    }

                case V4DImode:
                  switch (pattern852 (x2, V4DImode, DImode))
                    {
                    case 0:
                      if (!(
#line 18703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4593; /* *avx2_gathersiv4di */

                    case 1:
                      if (!(
#line 18764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4625; /* *avx2_gatherdiv4di */

                    case 2:
                      if (!(
#line 18703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4594; /* *avx2_gathersiv4di */

                    case 3:
                      if (!(
#line 18764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4626; /* *avx2_gatherdiv4di */

                    default:
                      return -1;
                    }

                case V4DFmode:
                  switch (pattern852 (x2, V4DFmode, DFmode))
                    {
                    case 0:
                      if (!(
#line 18703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4595; /* *avx2_gathersiv4df */

                    case 1:
                      if (!(
#line 18764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4627; /* *avx2_gatherdiv4df */

                    case 2:
                      if (!(
#line 18703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4596; /* *avx2_gathersiv4df */

                    case 3:
                      if (!(
#line 18764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4628; /* *avx2_gatherdiv4df */

                    default:
                      return -1;
                    }

                case V4SImode:
                  switch (pattern850 (x2, V4SImode, SImode))
                    {
                    case 0:
                      if (!(
#line 18703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4597; /* *avx2_gathersiv4si */

                    case 1:
                      if (!(
#line 18764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4629; /* *avx2_gatherdiv4si */

                    case 2:
                      if (!(
#line 18703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4598; /* *avx2_gathersiv4si */

                    case 3:
                      if (!(
#line 18764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4630; /* *avx2_gatherdiv4si */

                    default:
                      return -1;
                    }

                case V4SFmode:
                  switch (pattern850 (x2, V4SFmode, SFmode))
                    {
                    case 0:
                      if (!(
#line 18703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4599; /* *avx2_gathersiv4sf */

                    case 1:
                      if (!(
#line 18764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4631; /* *avx2_gatherdiv4sf */

                    case 2:
                      if (!(
#line 18703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4600; /* *avx2_gathersiv4sf */

                    case 3:
                      if (!(
#line 18764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4632; /* *avx2_gatherdiv4sf */

                    default:
                      return -1;
                    }

                case V8SImode:
                  if (!register_operand (operands[0], V8SImode)
                      || GET_MODE (x2) != V8SImode
                      || !vsib_mem_operator (operands[7], SImode))
                    return -1;
                  switch (GET_MODE (operands[2]))
                    {
                    case V8SImode:
                      if (!register_operand (operands[2], V8SImode)
                          || !register_operand (operands[4], V8SImode))
                        return -1;
                      switch (pattern904 (x8, V8SImode))
                        {
                        case 0:
                          if (!(
#line 18703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                            return -1;
                          *pnum_clobbers = 1;
                          return 4601; /* *avx2_gathersiv8si */

                        case 1:
                          if (!(
#line 18703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                            return -1;
                          *pnum_clobbers = 1;
                          return 4602; /* *avx2_gathersiv8si */

                        default:
                          return -1;
                        }

                    case V4SImode:
                      switch (pattern905 (x8, V4SImode, V4DImode))
                        {
                        case 0:
                          if (!(
#line 18764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                            return -1;
                          *pnum_clobbers = 1;
                          return 4633; /* *avx2_gatherdiv8si */

                        case 1:
                          if (!(
#line 18764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                            return -1;
                          *pnum_clobbers = 1;
                          return 4634; /* *avx2_gatherdiv8si */

                        default:
                          return -1;
                        }

                    default:
                      return -1;
                    }

                case V8SFmode:
                  if (!register_operand (operands[0], V8SFmode)
                      || GET_MODE (x2) != V8SFmode
                      || !vsib_mem_operator (operands[7], SFmode))
                    return -1;
                  switch (GET_MODE (operands[2]))
                    {
                    case V8SFmode:
                      switch (pattern905 (x8, V8SFmode, V8SImode))
                        {
                        case 0:
                          if (!(
#line 18703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                            return -1;
                          *pnum_clobbers = 1;
                          return 4603; /* *avx2_gathersiv8sf */

                        case 1:
                          if (!(
#line 18703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                            return -1;
                          *pnum_clobbers = 1;
                          return 4604; /* *avx2_gathersiv8sf */

                        default:
                          return -1;
                        }

                    case V4SFmode:
                      switch (pattern905 (x8, V4SFmode, V4DImode))
                        {
                        case 0:
                          if (!(
#line 18764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                            return -1;
                          *pnum_clobbers = 1;
                          return 4635; /* *avx2_gatherdiv8sf */

                        case 1:
                          if (!(
#line 18764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                            return -1;
                          *pnum_clobbers = 1;
                          return 4636; /* *avx2_gatherdiv8sf */

                        default:
                          return -1;
                        }

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            case PC:
              operands[6] = x5;
              x11 = XVECEXP (x8, 0, 0);
              operands[2] = x11;
              x12 = XVECEXP (x8, 0, 1);
              operands[3] = x12;
              operands[5] = x10;
              x7 = XVECEXP (x2, 0, 3);
              operands[4] = x7;
              switch (GET_MODE (operands[0]))
                {
                case V2DImode:
                  switch (pattern822 (x2, V2DImode, DImode))
                    {
                    case 0:
                      if (!(
#line 18723 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4605; /* *avx2_gathersiv2di_2 */

                    case 1:
                      if (!(
#line 18784 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4637; /* *avx2_gatherdiv2di_2 */

                    case 2:
                      if (!(
#line 18723 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4606; /* *avx2_gathersiv2di_2 */

                    case 3:
                      if (!(
#line 18784 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4638; /* *avx2_gatherdiv2di_2 */

                    default:
                      return -1;
                    }

                case V2DFmode:
                  switch (pattern822 (x2, V2DFmode, DFmode))
                    {
                    case 0:
                      if (!(
#line 18723 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4607; /* *avx2_gathersiv2df_2 */

                    case 1:
                      if (!(
#line 18784 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4639; /* *avx2_gatherdiv2df_2 */

                    case 2:
                      if (!(
#line 18723 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4608; /* *avx2_gathersiv2df_2 */

                    case 3:
                      if (!(
#line 18784 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4640; /* *avx2_gatherdiv2df_2 */

                    default:
                      return -1;
                    }

                case V4DImode:
                  switch (pattern824 (x2, V4DImode, DImode))
                    {
                    case 0:
                      if (!(
#line 18723 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4609; /* *avx2_gathersiv4di_2 */

                    case 1:
                      if (!(
#line 18784 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4641; /* *avx2_gatherdiv4di_2 */

                    case 2:
                      if (!(
#line 18723 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4610; /* *avx2_gathersiv4di_2 */

                    case 3:
                      if (!(
#line 18784 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4642; /* *avx2_gatherdiv4di_2 */

                    default:
                      return -1;
                    }

                case V4DFmode:
                  switch (pattern824 (x2, V4DFmode, DFmode))
                    {
                    case 0:
                      if (!(
#line 18723 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4611; /* *avx2_gathersiv4df_2 */

                    case 1:
                      if (!(
#line 18784 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4643; /* *avx2_gatherdiv4df_2 */

                    case 2:
                      if (!(
#line 18723 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4612; /* *avx2_gathersiv4df_2 */

                    case 3:
                      if (!(
#line 18784 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4644; /* *avx2_gatherdiv4df_2 */

                    default:
                      return -1;
                    }

                case V4SImode:
                  switch (pattern822 (x2, V4SImode, SImode))
                    {
                    case 0:
                      if (!(
#line 18723 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4613; /* *avx2_gathersiv4si_2 */

                    case 1:
                      if (!(
#line 18784 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4645; /* *avx2_gatherdiv4si_2 */

                    case 2:
                      if (!(
#line 18723 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4614; /* *avx2_gathersiv4si_2 */

                    case 3:
                      if (!(
#line 18784 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4646; /* *avx2_gatherdiv4si_2 */

                    default:
                      return -1;
                    }

                case V4SFmode:
                  switch (pattern822 (x2, V4SFmode, SFmode))
                    {
                    case 0:
                      if (!(
#line 18723 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4615; /* *avx2_gathersiv4sf_2 */

                    case 1:
                      if (!(
#line 18784 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4647; /* *avx2_gatherdiv4sf_2 */

                    case 2:
                      if (!(
#line 18723 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4616; /* *avx2_gathersiv4sf_2 */

                    case 3:
                      if (!(
#line 18784 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4648; /* *avx2_gatherdiv4sf_2 */

                    default:
                      return -1;
                    }

                case V8SImode:
                  switch (pattern825 (x2, SImode, V8SImode))
                    {
                    case 0:
                      switch (pattern891 (SImode))
                        {
                        case 0:
                          if (!(
#line 18723 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                            return -1;
                          *pnum_clobbers = 1;
                          return 4617; /* *avx2_gathersiv8si_2 */

                        case 1:
                          if (!(
#line 18784 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                            return -1;
                          *pnum_clobbers = 1;
                          return 4649; /* *avx2_gatherdiv8si_2 */

                        default:
                          return -1;
                        }

                    case 1:
                      switch (pattern891 (DImode))
                        {
                        case 0:
                          if (!(
#line 18723 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                            return -1;
                          *pnum_clobbers = 1;
                          return 4618; /* *avx2_gathersiv8si_2 */

                        case 1:
                          if (!(
#line 18784 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                            return -1;
                          *pnum_clobbers = 1;
                          return 4650; /* *avx2_gatherdiv8si_2 */

                        default:
                          return -1;
                        }

                    default:
                      return -1;
                    }

                case V8SFmode:
                  switch (pattern825 (x2, SFmode, V8SFmode))
                    {
                    case 0:
                      switch (pattern892 (SImode))
                        {
                        case 0:
                          if (!(
#line 18723 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                            return -1;
                          *pnum_clobbers = 1;
                          return 4619; /* *avx2_gathersiv8sf_2 */

                        case 1:
                          if (!(
#line 18784 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                            return -1;
                          *pnum_clobbers = 1;
                          return 4651; /* *avx2_gatherdiv8sf_2 */

                        default:
                          return -1;
                        }

                    case 1:
                      switch (pattern892 (DImode))
                        {
                        case 0:
                          if (!(
#line 18723 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                            return -1;
                          *pnum_clobbers = 1;
                          return 4620; /* *avx2_gathersiv8sf_2 */

                        case 1:
                          if (!(
#line 18784 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                            return -1;
                          *pnum_clobbers = 1;
                          return 4652; /* *avx2_gatherdiv8sf_2 */

                        default:
                          return -1;
                        }

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 2:
      return recog_34 (x1, insn, pnum_clobbers);

    case 5:
      if (pnum_clobbers == NULL
          || XINT (x2, 1) != 122
          || pattern124 (x1) != 0
          || !register_operand (operands[3], SImode))
        return -1;
      x6 = XVECEXP (x2, 0, 2);
      operands[4] = x6;
      if (!nonimmediate_operand (operands[4], V16QImode))
        return -1;
      x7 = XVECEXP (x2, 0, 3);
      operands[5] = x7;
      if (!register_operand (operands[5], SImode))
        return -1;
      x13 = XVECEXP (x2, 0, 4);
      operands[6] = x13;
      if (!const_0_to_255_operand (operands[6], SImode)
          || !
#line 15608 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_2))
        return -1;
      *pnum_clobbers = 2;
      return 3969; /* sse4_2_pcmpestr_cconly */

    default:
      return -1;
    }
}

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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  switch (GET_CODE (x3))
    {
    case CONST_INT:
    case CONST_WIDE_INT:
    case CONST_FIXED:
    case CONST_DOUBLE:
    case CONST_VECTOR:
    case CONST:
    case REG:
    case SUBREG:
    case LABEL_REF:
    case SYMBOL_REF:
    case HIGH:
      operands[0] = x3;
      if (x86_64_movabs_operand (operands[0], DImode))
        {
          x4 = XEXP (x1, 1);
          operands[1] = x4;
          switch (GET_MODE (x2))
            {
            case QImode:
              if (nonmemory_operand (operands[1], QImode)
                  && 
#line 2627 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LP64 && ix86_check_movabs (insn, 0)))
                return 90; /* *movabsqi_1 */
              break;

            case HImode:
              if (nonmemory_operand (operands[1], HImode)
                  && 
#line 2627 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LP64 && ix86_check_movabs (insn, 0)))
                return 91; /* *movabshi_1 */
              break;

            case SImode:
              if (nonmemory_operand (operands[1], SImode)
                  && 
#line 2627 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LP64 && ix86_check_movabs (insn, 0)))
                return 92; /* *movabssi_1 */
              break;

            case DImode:
              if (nonmemory_operand (operands[1], DImode)
                  && 
#line 2627 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LP64 && ix86_check_movabs (insn, 0)))
                return 93; /* *movabsdi_1 */
              break;

            default:
              break;
            }
        }
      break;

    case PRE_MODIFY:
      if (pattern125 (x3) == 0
          && GET_MODE (x2) == XFmode)
        {
          switch (pattern518 (x1))
            {
            case 0:
              if ((
#line 2947 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return 120; /* *pushxf_rounded */
              break;

            case 1:
              if ((
#line 2947 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return 121; /* *pushxf_rounded */
              break;

            default:
              break;
            }
        }
      break;

    default:
      break;
    }
  operands[0] = x2;
  if (!push_operand (operands[0], XFmode))
    return -1;
  x4 = XEXP (x1, 1);
  operands[1] = x4;
  if (!general_no_elim_operand (operands[1], XFmode))
    return -1;
  return 122; /* *pushxf */
}

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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  operands[1] = x3;
  switch (GET_MODE (operands[0]))
    {
    case DImode:
      if (push_operand (operands[0], DImode)
          && general_no_elim_operand (operands[1], DImode))
        {
          if (
#line 1021 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT))
            return 59; /* *pushdi2 */
          if (
#line 1749 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
            return 61; /* *pushdi2_rex64 */
        }
      if (nonimmediate_operand (operands[0], DImode)
          && pop_operand (operands[1], DImode)
          && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode))
        return 71; /* *popdi1 */
      if (push_operand (operands[0], DImode)
          && flags_reg_operand (operands[1], DImode)
          && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode))
        return 75; /* *pushfldi2 */
      if (flags_reg_operand (operands[0], DImode)
          && pop_operand (operands[1], DImode)
          && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode))
        return 77; /* *popfldi1 */
      if (pnum_clobbers != NULL
          && register_operand (operands[0], DImode))
        {
          if (const0_operand (operands[1], DImode)
              && (
#line 1970 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            {
              *pnum_clobbers = 1;
              return 79; /* *movdi_xor */
            }
          if (const_int_operand (operands[1], DImode)
              && (
#line 1981 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed
   && operands[1] == constm1_rtx) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            {
              *pnum_clobbers = 1;
              return 81; /* *movdi_or */
            }
        }
      if (nonimmediate_operand (operands[0], DImode)
          && general_operand (operands[1], DImode)
          && 
#line 2140 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[0]) && MEM_P (operands[1]))))
        return 85; /* *movdi_internal */
      break;

    case TImode:
      if (push_operand (operands[0], TImode)
          && general_no_elim_operand (operands[1], TImode)
          && 
#line 1022 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
        return 60; /* *pushti2 */
      if (nonimmediate_operand (operands[0], TImode)
          && general_operand (operands[1], TImode)
          && 
#line 2064 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_64BIT || TARGET_SSE)
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
        return 84; /* *movti_internal */
      break;

    case SImode:
      if (push_operand (operands[0], SImode))
        {
          if (general_no_elim_operand (operands[1], SImode)
              && 
#line 1815 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT))
            return 62; /* *pushsi2 */
          if (nonmemory_no_elim_operand (operands[1], SImode)
              && 
#line 1828 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
            return 65; /* *pushsi2_rex64 */
        }
      if (nonimmediate_operand (operands[0], SImode)
          && pop_operand (operands[1], SImode)
          && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode))
        return 70; /* *popsi1 */
      if (push_operand (operands[0], SImode)
          && flags_reg_operand (operands[1], SImode)
          && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode))
        return 74; /* *pushflsi2 */
      if (flags_reg_operand (operands[0], SImode)
          && pop_operand (operands[1], SImode)
          && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode))
        return 76; /* *popflsi1 */
      if (pnum_clobbers != NULL
          && register_operand (operands[0], SImode))
        {
          if (const0_operand (operands[1], SImode)
              && 
#line 1970 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
            {
              *pnum_clobbers = 1;
              return 78; /* *movsi_xor */
            }
          if (const_int_operand (operands[1], SImode)
              && 
#line 1981 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed
   && operands[1] == constm1_rtx))
            {
              *pnum_clobbers = 1;
              return 80; /* *movsi_or */
            }
        }
      if (nonimmediate_operand (operands[0], SImode)
          && general_operand (operands[1], SImode)
          && 
#line 2327 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[0]) && MEM_P (operands[1]))))
        return 86; /* *movsi_internal */
      break;

    case QImode:
      if (push_operand (operands[0], QImode)
          && nonmemory_no_elim_operand (operands[1], QImode))
        {
          if (
#line 1828 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
            return 63; /* *pushqi2_rex64 */
          if (
#line 1836 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT))
            return 66; /* *pushqi2 */
        }
      if (nonimmediate_operand (operands[0], QImode)
          && general_operand (operands[1], QImode)
          && 
#line 2544 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[0]) && MEM_P (operands[1]))))
        return 89; /* *movqi_internal */
      break;

    case HImode:
      if (push_operand (operands[0], HImode)
          && nonmemory_no_elim_operand (operands[1], HImode))
        {
          if (
#line 1828 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
            return 64; /* *pushhi2_rex64 */
          if (
#line 1836 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT))
            return 67; /* *pushhi2 */
        }
      if (nonimmediate_operand (operands[0], HImode)
          && general_operand (operands[1], HImode)
          && 
#line 2468 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[0]) && MEM_P (operands[1]))))
        return 88; /* *movhi_internal */
      break;

    case XImode:
      if (nonimmediate_operand (operands[0], XImode)
          && vector_move_operand (operands[1], XImode)
          && 
#line 1991 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
        return 82; /* *movxi_internal_avx512f */
      break;

    case OImode:
      if (nonimmediate_operand (operands[0], OImode)
          && vector_move_operand (operands[1], OImode)
          && 
#line 2015 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
        return 83; /* *movoi_internal_avx */
      break;

    case TFmode:
      if (push_operand (operands[0], TFmode)
          && general_no_elim_operand (operands[1], TFmode)
          && 
#line 2919 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT || TARGET_SSE))
        return 119; /* *pushtf */
      if (nonimmediate_operand (operands[0], TFmode)
          && general_operand (operands[1], TFmode)
          && 
#line 3129 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_64BIT || TARGET_SSE)
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))
   && (lra_in_progress || reload_completed
       || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
       || !CONST_DOUBLE_P (operands[1])
       || (optimize_function_for_size_p (cfun)
	   && standard_sse_constant_p (operands[1])
	   && !memory_operand (operands[0], TFmode))
       || (!TARGET_MEMORY_MISMATCH_STALL
	   && memory_operand (operands[0], TFmode)))))
        return 126; /* *movtf_internal */
      break;

    case DFmode:
      if (push_operand (operands[0], DFmode)
          && general_no_elim_operand (operands[1], DFmode))
        return 123; /* *pushdf */
      if (nonimmediate_operand (operands[0], DFmode)
          && general_operand (operands[1], DFmode)
          && 
#line 3281 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[0]) && MEM_P (operands[1]))
   && (lra_in_progress || reload_completed
       || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
       || !CONST_DOUBLE_P (operands[1])
       || (optimize_function_for_size_p (cfun)
	   && ((!(TARGET_SSE2 && TARGET_SSE_MATH)
		&& standard_80387_constant_p (operands[1]) > 0)
	       || (TARGET_SSE2 && TARGET_SSE_MATH
		   && standard_sse_constant_p (operands[1])))
	   && !memory_operand (operands[0], DFmode))
       || ((TARGET_64BIT || !TARGET_MEMORY_MISMATCH_STALL)
	   && memory_operand (operands[0], DFmode))
       || !TARGET_HARD_DF_REGS)))
        return 128; /* *movdf_internal */
      break;

    case SFmode:
      if (push_operand (operands[0], SFmode))
        {
          if (nonmemory_no_elim_operand (operands[1], SFmode)
              && 
#line 3042 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
            return 124; /* *pushsf_rex64 */
          if (general_no_elim_operand (operands[1], SFmode)
              && 
#line 3055 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT))
            return 125; /* *pushsf */
        }
      if (nonimmediate_operand (operands[0], SFmode)
          && general_operand (operands[1], SFmode)
          && 
#line 3483 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[0]) && MEM_P (operands[1]))
   && (lra_in_progress || reload_completed
       || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
       || !CONST_DOUBLE_P (operands[1])
       || (optimize_function_for_size_p (cfun)
	   && ((!TARGET_SSE_MATH
		&& standard_80387_constant_p (operands[1]) > 0)
	       || (TARGET_SSE_MATH
		   && standard_sse_constant_p (operands[1]))))
       || memory_operand (operands[0], SFmode)
       || !TARGET_HARD_SF_REGS)))
        return 129; /* *movsf_internal */
      break;

    case BND32mode:
      if (nonimmediate_operand (operands[0], BND32mode)
          && general_operand (operands[1], BND32mode)
          && (
#line 19509 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_MPX) && 
#line 1047 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_LP64)))
        return 1095; /* *movbnd32_internal_mpx */
      break;

    case BND64mode:
      if (nonimmediate_operand (operands[0], BND64mode)
          && general_operand (operands[1], BND64mode)
          && (
#line 19509 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_MPX) && 
#line 1048 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LP64)))
        return 1096; /* *movbnd64_internal_mpx */
      break;

    case V8QImode:
      if (nonimmediate_operand (operands[0], V8QImode)
          && vector_move_operand (operands[1], V8QImode)
          && 
#line 84 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
        return 1111; /* *movv8qi_internal */
      break;

    case V4HImode:
      if (nonimmediate_operand (operands[0], V4HImode)
          && vector_move_operand (operands[1], V4HImode)
          && 
#line 84 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
        return 1112; /* *movv4hi_internal */
      break;

    case V2SImode:
      if (nonimmediate_operand (operands[0], V2SImode)
          && vector_move_operand (operands[1], V2SImode)
          && 
#line 84 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
        return 1113; /* *movv2si_internal */
      break;

    case V1DImode:
      if (nonimmediate_operand (operands[0], V1DImode)
          && vector_move_operand (operands[1], V1DImode)
          && 
#line 84 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
        return 1114; /* *movv1di_internal */
      break;

    case V2SFmode:
      if (nonimmediate_operand (operands[0], V2SFmode)
          && vector_move_operand (operands[1], V2SFmode)
          && 
#line 84 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
        return 1115; /* *movv2sf_internal */
      break;

    case V64QImode:
      if (nonimmediate_operand (operands[0], V64QImode)
          && nonimmediate_or_sse_const_operand (operands[1], V64QImode)
          && (
#line 847 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (register_operand (operands[0], V64QImode)
       || register_operand (operands[1], V64QImode))) && 
#line 165 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
        return 1223; /* *movv64qi_internal */
      break;

    case V32QImode:
      if (nonimmediate_operand (operands[0], V32QImode)
          && nonimmediate_or_sse_const_operand (operands[1], V32QImode)
          && (
#line 847 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (register_operand (operands[0], V32QImode)
       || register_operand (operands[1], V32QImode))) && 
#line 165 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
        return 1224; /* *movv32qi_internal */
      break;

    case V16QImode:
      if (nonimmediate_operand (operands[0], V16QImode)
          && nonimmediate_or_sse_const_operand (operands[1], V16QImode)
          && 
#line 847 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (register_operand (operands[0], V16QImode)
       || register_operand (operands[1], V16QImode))))
        return 1225; /* *movv16qi_internal */
      break;

    case V32HImode:
      if (nonimmediate_operand (operands[0], V32HImode)
          && nonimmediate_or_sse_const_operand (operands[1], V32HImode)
          && (
#line 847 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (register_operand (operands[0], V32HImode)
       || register_operand (operands[1], V32HImode))) && 
#line 166 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
        return 1226; /* *movv32hi_internal */
      break;

    case V16HImode:
      if (nonimmediate_operand (operands[0], V16HImode)
          && nonimmediate_or_sse_const_operand (operands[1], V16HImode)
          && (
#line 847 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (register_operand (operands[0], V16HImode)
       || register_operand (operands[1], V16HImode))) && 
#line 166 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
        return 1227; /* *movv16hi_internal */
      break;

    case V8HImode:
      if (nonimmediate_operand (operands[0], V8HImode)
          && nonimmediate_or_sse_const_operand (operands[1], V8HImode)
          && 
#line 847 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (register_operand (operands[0], V8HImode)
       || register_operand (operands[1], V8HImode))))
        return 1228; /* *movv8hi_internal */
      break;

    case V16SImode:
      if (nonimmediate_operand (operands[0], V16SImode)
          && nonimmediate_or_sse_const_operand (operands[1], V16SImode)
          && (
#line 847 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (register_operand (operands[0], V16SImode)
       || register_operand (operands[1], V16SImode))) && 
#line 167 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
        return 1229; /* *movv16si_internal */
      break;

    case V8SImode:
      if (nonimmediate_operand (operands[0], V8SImode)
          && nonimmediate_or_sse_const_operand (operands[1], V8SImode)
          && (
#line 847 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (register_operand (operands[0], V8SImode)
       || register_operand (operands[1], V8SImode))) && 
#line 167 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
        return 1230; /* *movv8si_internal */
      break;

    case V4SImode:
      if (nonimmediate_operand (operands[0], V4SImode)
          && nonimmediate_or_sse_const_operand (operands[1], V4SImode)
          && 
#line 847 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (register_operand (operands[0], V4SImode)
       || register_operand (operands[1], V4SImode))))
        return 1231; /* *movv4si_internal */
      break;

    case V8DImode:
      if (nonimmediate_operand (operands[0], V8DImode)
          && nonimmediate_or_sse_const_operand (operands[1], V8DImode)
          && (
#line 847 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (register_operand (operands[0], V8DImode)
       || register_operand (operands[1], V8DImode))) && 
#line 168 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
        return 1232; /* *movv8di_internal */
      break;

    case V4DImode:
      if (nonimmediate_operand (operands[0], V4DImode)
          && nonimmediate_or_sse_const_operand (operands[1], V4DImode)
          && (
#line 847 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (register_operand (operands[0], V4DImode)
       || register_operand (operands[1], V4DImode))) && 
#line 168 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
        return 1233; /* *movv4di_internal */
      break;

    case V2DImode:
      if (nonimmediate_operand (operands[0], V2DImode)
          && nonimmediate_or_sse_const_operand (operands[1], V2DImode)
          && 
#line 847 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (register_operand (operands[0], V2DImode)
       || register_operand (operands[1], V2DImode))))
        return 1234; /* *movv2di_internal */
      break;

    case V4TImode:
      if (nonimmediate_operand (operands[0], V4TImode)
          && nonimmediate_or_sse_const_operand (operands[1], V4TImode)
          && (
#line 847 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (register_operand (operands[0], V4TImode)
       || register_operand (operands[1], V4TImode))) && 
#line 169 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
        return 1235; /* *movv4ti_internal */
      break;

    case V2TImode:
      if (nonimmediate_operand (operands[0], V2TImode)
          && nonimmediate_or_sse_const_operand (operands[1], V2TImode)
          && (
#line 847 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (register_operand (operands[0], V2TImode)
       || register_operand (operands[1], V2TImode))) && 
#line 169 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
        return 1236; /* *movv2ti_internal */
      break;

    case V1TImode:
      if (nonimmediate_operand (operands[0], V1TImode)
          && nonimmediate_or_sse_const_operand (operands[1], V1TImode)
          && 
#line 847 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (register_operand (operands[0], V1TImode)
       || register_operand (operands[1], V1TImode))))
        return 1237; /* *movv1ti_internal */
      break;

    case V16SFmode:
      if (nonimmediate_operand (operands[0], V16SFmode)
          && nonimmediate_or_sse_const_operand (operands[1], V16SFmode)
          && (
#line 847 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (register_operand (operands[0], V16SFmode)
       || register_operand (operands[1], V16SFmode))) && 
#line 170 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
        return 1238; /* *movv16sf_internal */
      break;

    case V8SFmode:
      if (nonimmediate_operand (operands[0], V8SFmode)
          && nonimmediate_or_sse_const_operand (operands[1], V8SFmode)
          && (
#line 847 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (register_operand (operands[0], V8SFmode)
       || register_operand (operands[1], V8SFmode))) && 
#line 170 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
        return 1239; /* *movv8sf_internal */
      break;

    case V4SFmode:
      if (nonimmediate_operand (operands[0], V4SFmode)
          && nonimmediate_or_sse_const_operand (operands[1], V4SFmode)
          && 
#line 847 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (register_operand (operands[0], V4SFmode)
       || register_operand (operands[1], V4SFmode))))
        return 1240; /* *movv4sf_internal */
      break;

    case V8DFmode:
      if (nonimmediate_operand (operands[0], V8DFmode)
          && nonimmediate_or_sse_const_operand (operands[1], V8DFmode)
          && (
#line 847 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (register_operand (operands[0], V8DFmode)
       || register_operand (operands[1], V8DFmode))) && 
#line 171 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
        return 1241; /* *movv8df_internal */
      break;

    case V4DFmode:
      if (nonimmediate_operand (operands[0], V4DFmode)
          && nonimmediate_or_sse_const_operand (operands[1], V4DFmode)
          && (
#line 847 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (register_operand (operands[0], V4DFmode)
       || register_operand (operands[1], V4DFmode))) && 
#line 171 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
        return 1242; /* *movv4df_internal */
      break;

    case V2DFmode:
      if (nonimmediate_operand (operands[0], V2DFmode)
          && nonimmediate_or_sse_const_operand (operands[1], V2DFmode)
          && 
#line 847 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (register_operand (operands[0], V2DFmode)
       || register_operand (operands[1], V2DFmode))))
        return 1243; /* *movv2df_internal */
      break;

    default:
      break;
    }
  if (GET_CODE (x2) == MEM)
    {
      res = recog_37 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  operands[0] = x2;
  if (!nonimmediate_operand (operands[0], XFmode))
    return -1;
  operands[1] = x3;
  if (!general_operand (operands[1], XFmode)
      || !
#line 3208 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[0]) && MEM_P (operands[1]))
   && (lra_in_progress || reload_completed
       || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
       || !CONST_DOUBLE_P (operands[1])
       || (optimize_function_for_size_p (cfun)
	   && standard_80387_constant_p (operands[1]) > 0
	   && !memory_operand (operands[0], XFmode))
       || (!TARGET_MEMORY_MISMATCH_STALL
	   && memory_operand (operands[0], XFmode))
       || !TARGET_HARD_XF_REGS)))
    return -1;
  return 127; /* *movxf_internal */
}

static int
recog_39 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 1);
  if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x4 = XEXP (x2, 2);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x5 = XEXP (x2, 0);
  operands[0] = x5;
  if (!ext_register_operand (operands[0], VOIDmode))
    return -1;
  x6 = XEXP (x1, 1);
  operands[1] = x6;
  switch (GET_MODE (x2))
    {
    case HImode:
      if (!general_x64nomem_operand (operands[1], HImode))
        return -1;
      return 115; /* insvhi_1 */

    case SImode:
      if (!general_x64nomem_operand (operands[1], SImode))
        return -1;
      return 116; /* insvsi_1 */

    case DImode:
      if (!general_x64nomem_operand (operands[1], DImode)
          || !
#line 991 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
        return -1;
      return 117; /* insvdi_1 */

    default:
      return -1;
    }
}

static int
recog_40 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  switch (GET_CODE (x2))
    {
    case REG:
    case SUBREG:
    case MEM:
      res = recog_38 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case STRICT_LOW_PART:
      x3 = XEXP (x2, 0);
      operands[0] = x3;
      x4 = XEXP (x1, 1);
      operands[1] = x4;
      switch (GET_MODE (operands[0]))
        {
        case QImode:
          if (nonimmediate_operand (operands[0], QImode)
              && general_operand (operands[1], QImode)
              && 
#line 2733 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
            return 104; /* *movstrictqi_1 */
          if (pnum_clobbers != NULL
              && register_operand (operands[0], QImode)
              && const0_operand (operands[1], QImode)
              && 
#line 2743 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
            {
              *pnum_clobbers = 1;
              return 106; /* *movstrictqi_xor */
            }
          break;

        case HImode:
          if (nonimmediate_operand (operands[0], HImode)
              && general_operand (operands[1], HImode)
              && 
#line 2733 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
            return 105; /* *movstricthi_1 */
          if (pnum_clobbers != NULL
              && register_operand (operands[0], HImode)
              && const0_operand (operands[1], HImode)
              && 
#line 2743 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
            {
              *pnum_clobbers = 1;
              return 107; /* *movstricthi_xor */
            }
          break;

        default:
          break;
        }
      break;

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

    case PC:
      x4 = XEXP (x1, 1);
      operands[0] = x4;
      switch (GET_MODE (operands[0]))
        {
        case SImode:
          if (indirect_branch_operand (operands[0], SImode)
              && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode))
            return 670; /* *indirect_jump */
          break;

        case DImode:
          if (indirect_branch_operand (operands[0], DImode)
              && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode))
            return 671; /* *indirect_jump */
          break;

        default:
          break;
        }
      break;

    default:
      break;
    }
  x4 = XEXP (x1, 1);
  switch (GET_CODE (x4))
    {
    case MEM:
      operands[0] = x2;
      x5 = XEXP (x4, 0);
      operands[1] = x5;
      if (!x86_64_movabs_operand (operands[1], DImode))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case QImode:
          if (!register_operand (operands[0], QImode)
              || GET_MODE (x4) != QImode
              || !
#line 2651 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LP64 && ix86_check_movabs (insn, 1)))
            return -1;
          return 94; /* *movabsqi_2 */

        case HImode:
          if (!register_operand (operands[0], HImode)
              || GET_MODE (x4) != HImode
              || !
#line 2651 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LP64 && ix86_check_movabs (insn, 1)))
            return -1;
          return 95; /* *movabshi_2 */

        case SImode:
          if (!register_operand (operands[0], SImode)
              || GET_MODE (x4) != SImode
              || !
#line 2651 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LP64 && ix86_check_movabs (insn, 1)))
            return -1;
          return 96; /* *movabssi_2 */

        case DImode:
          if (!register_operand (operands[0], DImode)
              || GET_MODE (x4) != DImode
              || !
#line 2651 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LP64 && ix86_check_movabs (insn, 1)))
            return -1;
          return 97; /* *movabsdi_2 */

        default:
          return -1;
        }

    case SUBREG:
      if (XINT (x4, 1) != 0)
        return -1;
      operands[0] = x2;
      x5 = XEXP (x4, 0);
      switch (GET_CODE (x5))
        {
        case ZERO_EXTRACT:
          if (GET_MODE (x5) != SImode)
            return -1;
          x6 = XEXP (x5, 1);
          if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
            return -1;
          x7 = XEXP (x5, 2);
          if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 8]
              || !nonimmediate_x64nomem_operand (operands[0], QImode)
              || GET_MODE (x4) != QImode)
            return -1;
          x8 = XEXP (x5, 0);
          operands[1] = x8;
          if (!ext_register_operand (operands[1], VOIDmode))
            return -1;
          return 114; /* *extzvqi */

        case REG:
        case SUBREG:
        case MEM:
          if (pnum_clobbers == NULL)
            return -1;
          operands[1] = x5;
          if (!nonimmediate_operand (operands[1], DImode)
              || !register_operand (operands[0], V4SImode)
              || GET_MODE (x4) != V4SImode
              || !
#line 1098 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(!TARGET_64BIT && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_TO_VEC))
            return -1;
          *pnum_clobbers = 1;
          return 1299; /* movdi_to_sse */

        default:
          return -1;
        }

    case CONST_INT:
      if (pnum_clobbers == NULL
          || pattern53 (x2) != 0)
        return -1;
      switch (XWINT (x4, 0))
        {
        case 1LL:
          if (!
#line 11081 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && (TARGET_USE_BT || reload_completed)))
            return -1;
          *pnum_clobbers = 1;
          return 619; /* *btsq */

        case 0LL:
          if (!
#line 11094 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && (TARGET_USE_BT || reload_completed)))
            return -1;
          *pnum_clobbers = 1;
          return 620; /* *btrq */

        default:
          return -1;
        }

    case LABEL_REF:
      if (GET_CODE (x2) != PC)
        return -1;
      x5 = XEXP (x4, 0);
      operands[0] = x5;
      return 669; /* jump */

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x4 = XEXP (x2, 2);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x5 = XEXP (x1, 0);
  operands[0] = x5;
  x6 = XEXP (x2, 0);
  operands[1] = x6;
  if (!ext_register_operand (operands[1], VOIDmode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case HImode:
      if (!register_operand (operands[0], HImode)
          || GET_MODE (x2) != HImode)
        return -1;
      return 108; /* *extvhi */

    case SImode:
      if (!register_operand (operands[0], SImode)
          || GET_MODE (x2) != SImode)
        return -1;
      return 109; /* *extvsi */

    case QImode:
      if (!nonimmediate_x64nomem_operand (operands[0], QImode)
          || GET_MODE (x2) != QImode)
        return -1;
      return 110; /* *extvqi */

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x4 = XEXP (x2, 2);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x5 = XEXP (x1, 0);
  operands[0] = x5;
  x6 = XEXP (x2, 0);
  operands[1] = x6;
  if (!ext_register_operand (operands[1], VOIDmode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case HImode:
      if (!register_operand (operands[0], HImode)
          || GET_MODE (x2) != HImode)
        return -1;
      return 111; /* *extzvhi */

    case SImode:
      if (!register_operand (operands[0], SImode)
          || GET_MODE (x2) != SImode)
        return -1;
      return 112; /* *extzvsi */

    case DImode:
      if (!register_operand (operands[0], DImode)
          || GET_MODE (x2) != DImode
          || !
#line 991 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
        return -1;
      return 113; /* *extzvdi */

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  operands[1] = x3;
  if (register_operand (operands[1], SImode))
    {
      x4 = XEXP (x2, 1);
      if (XWINT (x4, 0) == 8LL)
        {
          x5 = XEXP (x1, 0);
          if (pattern174 (x5) == 0
              && GET_MODE (x2) == SImode)
            return 118; /* *insvqi */
        }
    }
  x5 = XEXP (x1, 0);
  operands[0] = x5;
  x4 = XEXP (x2, 1);
  operands[2] = x4;
  if (!const_0_to_255_mul_8_operand (operands[2], SImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case V4TImode:
      if (!register_operand (operands[0], V4TImode)
          || GET_MODE (x2) != V4TImode
          || !register_operand (operands[1], V4TImode)
          || !(
#line 10658 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2) && 
#line 374 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
        return -1;
      return 3193; /* avx512bw_lshrv4ti3 */

    case V2TImode:
      if (!register_operand (operands[0], V2TImode)
          || GET_MODE (x2) != V2TImode
          || !register_operand (operands[1], V2TImode)
          || !(
#line 10658 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2) && 
#line 374 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
        return -1;
      return 3194; /* avx2_lshrv2ti3 */

    case V1TImode:
      if (!register_operand (operands[0], V1TImode)
          || GET_MODE (x2) != V1TImode
          || !register_operand (operands[1], V1TImode)
          || !
#line 10658 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))
        return -1;
      return 3195; /* sse2_lshrv1ti3 */

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT)
    {
      res = recog_43 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  x4 = XEXP (x1, 0);
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
    case MEM:
      operands[0] = x4;
      x5 = XEXP (x2, 0);
      operands[1] = x5;
      operands[2] = x3;
      switch (GET_MODE (operands[0]))
        {
        case QImode:
          if (GET_MODE (x2) != QImode)
            return -1;
          if (register_operand (operands[0], QImode)
              && register_operand (operands[1], QImode)
              && immediate_operand (operands[2], QImode)
              && (
#line 9707 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F) && 
#line 970 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512DQ)))
            return 516; /* *shiftrqi3 */
          if (pnum_clobbers == NULL
              || !nonimmediate_operand (operands[0], QImode)
              || !nonimmediate_operand (operands[1], QImode)
              || !nonmemory_operand (operands[2], QImode)
              || !
#line 10606 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (LSHIFTRT, QImode, operands)))
            return -1;
          *pnum_clobbers = 1;
          return 572; /* *lshrqi3_1 */

        case HImode:
          if (GET_MODE (x2) != HImode)
            return -1;
          if (register_operand (operands[0], HImode)
              && register_operand (operands[1], HImode)
              && immediate_operand (operands[2], QImode)
              && 
#line 9707 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F))
            return 518; /* *shiftrhi3 */
          if (pnum_clobbers == NULL
              || !nonimmediate_operand (operands[0], HImode)
              || !nonimmediate_operand (operands[1], HImode)
              || !nonmemory_operand (operands[2], QImode)
              || !
#line 10606 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (LSHIFTRT, HImode, operands)))
            return -1;
          *pnum_clobbers = 1;
          return 574; /* *lshrhi3_1 */

        case TImode:
          if (pnum_clobbers == NULL
              || pattern260 (x2, TImode, QImode) != 0
              || !
#line 1022 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
            return -1;
          *pnum_clobbers = 1;
          return 553; /* *lshrti3_doubleword */

        case V4HImode:
          if (pattern260 (x2, V4HImode, DImode) != 0
              || !
#line 949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX))
            return -1;
          return 1173; /* mmx_lshrv4hi3 */

        case V2SImode:
          if (pattern260 (x2, V2SImode, DImode) != 0
              || !
#line 949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX))
            return -1;
          return 1175; /* mmx_lshrv2si3 */

        case V1DImode:
          if (pattern260 (x2, V1DImode, DImode) != 0
              || !
#line 949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX))
            return -1;
          return 1177; /* mmx_lshrv1di3 */

        case V32HImode:
          if (!register_operand (operands[0], V32HImode)
              || GET_MODE (x2) != V32HImode
              || !register_operand (operands[1], V32HImode))
            return -1;
          if (nonmemory_operand (operands[2], DImode)
              && (
#line 10550 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1) && 
#line 399 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return 3156; /* lshrv32hi3 */
          if (!nonimmediate_operand (operands[2], V32HImode)
              || !
#line 18486 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
            return -1;
          return 4558; /* avx512bw_lshrvv32hi */

        case V16HImode:
          if (!register_operand (operands[0], V16HImode)
              || GET_MODE (x2) != V16HImode
              || !register_operand (operands[1], V16HImode))
            return -1;
          if (nonmemory_operand (operands[2], DImode)
              && (
#line 10550 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1) && 
#line 399 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
            return 3160; /* lshrv16hi3 */
          if (!nonimmediate_operand (operands[2], V16HImode)
              || !(
#line 18486 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4554; /* avx512vl_lshrvv16hi */

        case V8HImode:
          if (!register_operand (operands[0], V8HImode)
              || GET_MODE (x2) != V8HImode
              || !register_operand (operands[1], V8HImode))
            return -1;
          if (nonmemory_operand (operands[2], DImode)
              && 
#line 10550 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1))
            return 3164; /* lshrv8hi3 */
          if (!nonimmediate_operand (operands[2], V8HImode)
              || !(
#line 18486 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4550; /* avx512vl_lshrvv8hi */

        case V8SImode:
          if (!register_operand (operands[0], V8SImode)
              || GET_MODE (x2) != V8SImode
              || !register_operand (operands[1], V8SImode))
            return -1;
          if (nonmemory_operand (operands[2], DImode)
              && (
#line 10569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1) && 
#line 402 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
            return 3168; /* lshrv8si3 */
          if (!nonimmediate_operand (operands[2], V8SImode)
              || !
#line 18475 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1))
            return -1;
          return 4530; /* avx2_lshrvv8si */

        case V4SImode:
          if (!register_operand (operands[0], V4SImode)
              || GET_MODE (x2) != V4SImode
              || !register_operand (operands[1], V4SImode))
            return -1;
          if (nonmemory_operand (operands[2], DImode)
              && 
#line 10569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1))
            return 3172; /* lshrv4si3 */
          if (!nonimmediate_operand (operands[2], V4SImode)
              || !
#line 18475 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1))
            return -1;
          return 4534; /* avx2_lshrvv4si */

        case V4DImode:
          if (!register_operand (operands[0], V4DImode)
              || GET_MODE (x2) != V4DImode
              || !register_operand (operands[1], V4DImode))
            return -1;
          if (nonmemory_operand (operands[2], DImode)
              && (
#line 10569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1) && 
#line 403 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
            return 3176; /* lshrv4di3 */
          if (!nonimmediate_operand (operands[2], V4DImode)
              || !
#line 18475 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1))
            return -1;
          return 4542; /* avx2_lshrvv4di */

        case V2DImode:
          if (!register_operand (operands[0], V2DImode)
              || GET_MODE (x2) != V2DImode
              || !register_operand (operands[1], V2DImode))
            return -1;
          if (nonmemory_operand (operands[2], DImode)
              && 
#line 10569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1))
            return 3180; /* lshrv2di3 */
          if (!nonimmediate_operand (operands[2], V2DImode)
              || !
#line 18475 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1))
            return -1;
          return 4546; /* avx2_lshrvv2di */

        case V16SImode:
          if (!register_operand (operands[0], V16SImode)
              || GET_MODE (x2) != V16SImode)
            return -1;
          if (nonimmediate_operand (operands[1], V16SImode)
              && nonmemory_operand (operands[2], DImode)
              && 
#line 10589 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1))
            return 3184; /* lshrv16si3 */
          if (!register_operand (operands[1], V16SImode)
              || !nonimmediate_operand (operands[2], V16SImode)
              || !(
#line 18475 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1) && 
#line 420 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 4526; /* avx512f_lshrvv16si */

        case V8DImode:
          if (!register_operand (operands[0], V8DImode)
              || GET_MODE (x2) != V8DImode)
            return -1;
          if (nonimmediate_operand (operands[1], V8DImode)
              && nonmemory_operand (operands[2], DImode)
              && 
#line 10589 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1))
            return 3188; /* lshrv8di3 */
          if (!register_operand (operands[1], V8DImode)
              || !nonimmediate_operand (operands[2], V8DImode)
              || !(
#line 18475 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1) && 
#line 421 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 4538; /* avx512f_lshrvv8di */

        default:
          return -1;
        }

    case STRICT_LOW_PART:
      if (pattern4 (x1, pnum_clobbers) != 0
          || !
#line 10629 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_REG_STALL
    || (operands[1] == const1_rtx
	&& TARGET_SHIFT1))))
        return -1;
      *pnum_clobbers = 1;
      return 576; /* *lshrqi3_1_slp */

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case CONST_INT:
    case CONST:
    case REG:
    case SUBREG:
    case MEM:
    case LABEL_REF:
    case SYMBOL_REF:
      switch (pattern54 (x3))
        {
        case 0:
          if (nonimmediate_operand (operands[0], DImode)
              && x86_64_zext_operand (operands[1], SImode))
            return 133; /* *zero_extendsidi2 */
          if (!register_operand (operands[0], DImode))
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case QImode:
              if (!nonimmediate_operand (operands[1], QImode))
                return -1;
              if (
#line 3817 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                return 134; /* zero_extendqidi2 */
              if (
#line 3920 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_STV && TARGET_SSE2
   && TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)))
                return 142; /* *zextqi_doubleword_and */
              if (!
#line 3938 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_STV && TARGET_SSE2
   && !(TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun))))
                return -1;
              return 144; /* *zextqi_doubleword */

            case HImode:
              if (!nonimmediate_operand (operands[1], HImode))
                return -1;
              if (
#line 3817 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                return 135; /* zero_extendhidi2 */
              if (
#line 3920 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_STV && TARGET_SSE2
   && TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)))
                return 143; /* *zexthi_doubleword_and */
              if (!
#line 3938 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_STV && TARGET_SSE2
   && !(TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun))))
                return -1;
              return 145; /* *zexthi_doubleword */

            case SImode:
              if (!nonimmediate_operand (operands[1], SImode)
                  || !
#line 3949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_STV && TARGET_SSE2))
                return -1;
              return 146; /* *zextsi_doubleword */

            default:
              return -1;
            }

        case 1:
          switch (GET_MODE (operands[1]))
            {
            case QImode:
              if (!nonimmediate_operand (operands[1], QImode))
                return -1;
              if (pnum_clobbers != NULL
                  && 
#line 3840 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)))
                {
                  *pnum_clobbers = 1;
                  return 136; /* zero_extendqisi2_and */
                }
              if (!
#line 3865 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun))))
                return -1;
              return 138; /* *zero_extendqisi2 */

            case HImode:
              if (!nonimmediate_operand (operands[1], HImode))
                return -1;
              if (pnum_clobbers != NULL
                  && 
#line 3840 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)))
                {
                  *pnum_clobbers = 1;
                  return 137; /* zero_extendhisi2_and */
                }
              if (!
#line 3865 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun))))
                return -1;
              return 139; /* *zero_extendhisi2 */

            default:
              return -1;
            }

        case 2:
          if (pnum_clobbers != NULL
              && 
#line 3887 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)))
            {
              *pnum_clobbers = 1;
              return 140; /* zero_extendqihi2_and */
            }
          if (!
#line 3912 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun))))
            return -1;
          return 141; /* *zero_extendqihi2 */

        case 3:
          if (!
#line 14948 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1 && 1))
            return -1;
          return 3873; /* avx2_zero_extendv16qiv16hi2 */

        case 4:
          if (!
#line 14959 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
            return -1;
          return 3877; /* avx512bw_zero_extendv32qiv32hi2 */

        case 5:
          if (!
#line 14987 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 3885; /* *avx512f_zero_extendv16qiv16si2 */

        case 6:
          if (!
#line 15028 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 3897; /* avx512f_zero_extendv16hiv16si2 */

        case 7:
          if (!
#line 15038 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1))
            return -1;
          return 3901; /* avx2_zero_extendv8hiv8si2 */

        case 8:
          if (!
#line 15107 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 3921; /* avx512f_zero_extendv8hiv8di2 */

        case 9:
          if (!
#line 15145 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 3933; /* avx512f_zero_extendv8siv8di2 */

        case 10:
          if (!
#line 15155 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1))
            return -1;
          return 3937; /* avx2_zero_extendv4siv4di2 */

        default:
          return -1;
        }

    case SIGN_EXTEND:
      if (GET_MODE (x4) != SImode
          || !register_operand (operands[0], DImode)
          || GET_MODE (x3) != DImode)
        return -1;
      x5 = XEXP (x4, 0);
      operands[1] = x5;
      switch (GET_MODE (operands[1]))
        {
        case HImode:
          if (!nonimmediate_operand (operands[1], HImode)
              || !
#line 4133 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
            return -1;
          return 152; /* *extendhisi2_zext */

        case QImode:
          if (!nonimmediate_operand (operands[1], QImode)
              || !
#line 4168 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
            return -1;
          return 154; /* *extendqisi2_zext */

        default:
          return -1;
        }

    case VEC_SELECT:
      switch (pattern56 (x3))
        {
        case 0:
          if (!
#line 14975 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && 1 && 1))
            return -1;
          return 3881; /* sse4_1_zero_extendv8qiv8hi2 */

        case 1:
          if (!
#line 15002 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1))
            return -1;
          return 3889; /* avx2_zero_extendv8qiv8si2 */

        case 2:
          if (!
#line 15069 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 3909; /* avx512f_zero_extendv8qiv8di2 */

        case 3:
          if (!
#line 15016 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && 1))
            return -1;
          return 3893; /* sse4_1_zero_extendv4qiv4si2 */

        case 4:
          if (!
#line 15052 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && 1))
            return -1;
          return 3905; /* sse4_1_zero_extendv4hiv4si2 */

        case 5:
          if (!
#line 15082 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1))
            return -1;
          return 3913; /* avx2_zero_extendv4qiv4di2 */

        case 6:
          if (!
#line 15120 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1))
            return -1;
          return 3925; /* avx2_zero_extendv4hiv4di2 */

        case 7:
          if (!
#line 15095 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && 1))
            return -1;
          return 3917; /* sse4_1_zero_extendv2qiv2di2 */

        case 8:
          if (!
#line 15133 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && 1))
            return -1;
          return 3929; /* sse4_1_zero_extendv2hiv2di2 */

        case 9:
          if (!
#line 15168 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && 1))
            return -1;
          return 3941; /* sse4_1_zero_extendv2siv2di2 */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_46 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  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:
    case MEM:
      switch (pattern54 (x3))
        {
        case 0:
          if (register_operand (operands[0], DImode))
            {
              switch (GET_MODE (operands[1]))
                {
                case SImode:
                  if (nonimmediate_operand (operands[1], SImode)
                      && 
#line 3973 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                    return 147; /* *extendsidi2_rex64 */
                  break;

                case QImode:
                  if (nonimmediate_operand (operands[1], QImode)
                      && 
#line 4093 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                    return 149; /* extendqidi2 */
                  break;

                case HImode:
                  if (nonimmediate_operand (operands[1], HImode)
                      && 
#line 4093 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                    return 150; /* extendhidi2 */
                  break;

                default:
                  break;
                }
            }
          if (pnum_clobbers == NULL
              || !nonimmediate_operand (operands[0], DImode)
              || !register_operand (operands[1], SImode)
              || !
#line 3987 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT))
            return -1;
          *pnum_clobbers = 2;
          return 148; /* extendsidi2_1 */

        case 1:
          switch (GET_MODE (operands[1]))
            {
            case HImode:
              if (!nonimmediate_operand (operands[1], HImode))
                return -1;
              return 151; /* extendhisi2 */

            case QImode:
              if (!nonimmediate_operand (operands[1], QImode))
                return -1;
              return 153; /* extendqisi2 */

            default:
              return -1;
            }

        case 2:
          return 155; /* extendqihi2 */

        case 3:
          if (!
#line 14948 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1 && 1))
            return -1;
          return 3871; /* avx2_sign_extendv16qiv16hi2 */

        case 4:
          if (!
#line 14959 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
            return -1;
          return 3875; /* avx512bw_sign_extendv32qiv32hi2 */

        case 5:
          if (!
#line 14987 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 3883; /* *avx512f_sign_extendv16qiv16si2 */

        case 6:
          if (!
#line 15028 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 3895; /* avx512f_sign_extendv16hiv16si2 */

        case 7:
          if (!
#line 15038 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1))
            return -1;
          return 3899; /* avx2_sign_extendv8hiv8si2 */

        case 8:
          if (!
#line 15107 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 3919; /* avx512f_sign_extendv8hiv8di2 */

        case 9:
          if (!
#line 15145 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 3931; /* avx512f_sign_extendv8siv8di2 */

        case 10:
          if (!
#line 15155 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1))
            return -1;
          return 3935; /* avx2_sign_extendv4siv4di2 */

        default:
          return -1;
        }

    case SS_TRUNCATE:
      if (GET_MODE (x4) != V2HImode)
        return -1;
      x5 = XEXP (x4, 0);
      if (GET_CODE (x5) != FIX
          || GET_MODE (x5) != V2SImode
          || !register_operand (operands[0], V2SImode)
          || GET_MODE (x3) != V2SImode)
        return -1;
      x6 = XEXP (x5, 0);
      operands[1] = x6;
      if (!nonimmediate_operand (operands[1], V2SFmode)
          || !
#line 520 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_3DNOW_A))
        return -1;
      return 1136; /* mmx_pf2iw */

    case VEC_SELECT:
      switch (pattern56 (x3))
        {
        case 0:
          if (!
#line 14975 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && 1 && 1))
            return -1;
          return 3879; /* sse4_1_sign_extendv8qiv8hi2 */

        case 1:
          if (!
#line 15002 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1))
            return -1;
          return 3887; /* avx2_sign_extendv8qiv8si2 */

        case 2:
          if (!
#line 15069 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 3907; /* avx512f_sign_extendv8qiv8di2 */

        case 3:
          if (!
#line 15016 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && 1))
            return -1;
          return 3891; /* sse4_1_sign_extendv4qiv4si2 */

        case 4:
          if (!
#line 15052 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && 1))
            return -1;
          return 3903; /* sse4_1_sign_extendv4hiv4si2 */

        case 5:
          if (!
#line 15082 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1))
            return -1;
          return 3911; /* avx2_sign_extendv4qiv4di2 */

        case 6:
          if (!
#line 15120 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1))
            return -1;
          return 3923; /* avx2_sign_extendv4hiv4di2 */

        case 7:
          if (!
#line 15095 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && 1))
            return -1;
          return 3915; /* sse4_1_sign_extendv2qiv2di2 */

        case 8:
          if (!
#line 15133 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && 1))
            return -1;
          return 3927; /* sse4_1_sign_extendv2hiv2di2 */

        case 9:
          if (!
#line 15168 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && 1))
            return -1;
          return 3939; /* sse4_1_sign_extendv2siv2di2 */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_47 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  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:
    case MEM:
      operands[1] = x4;
      switch (GET_MODE (operands[0]))
        {
        case DFmode:
          if (!nonimmediate_operand (operands[0], DFmode)
              || GET_MODE (x3) != DFmode
              || !nonimmediate_operand (operands[1], SFmode))
            return -1;
          if (
#line 4315 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_SSE2 && TARGET_SSE_MATH))
            return 156; /* *extendsfdf2_mixed */
          if (!
#line 4342 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
            return -1;
          return 157; /* *extendsfdf2_i387 */

        case XFmode:
          if (!nonimmediate_operand (operands[0], XFmode)
              || GET_MODE (x3) != XFmode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case SFmode:
              if (!nonimmediate_operand (operands[1], SFmode)
                  || !
#line 4371 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
                return -1;
              return 158; /* *extendsfxf2_i387 */

            case DFmode:
              if (!nonimmediate_operand (operands[1], DFmode)
                  || !
#line 4371 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
                return -1;
              return 159; /* *extenddfxf2_i387 */

            default:
              return -1;
            }

        case V8DFmode:
          if (!register_operand (operands[0], V8DFmode)
              || GET_MODE (x3) != V8DFmode
              || !vector_operand (operands[1], V8SFmode)
              || !(
#line 5367 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && 1 && 1) && 
#line 244 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 2412; /* avx512f_cvtps2pd512 */

        case V4DFmode:
          if (!register_operand (operands[0], V4DFmode)
              || GET_MODE (x3) != V4DFmode
              || !vector_operand (operands[1], V4SFmode)
              || !
#line 5367 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && 1 && 1))
            return -1;
          return 2416; /* avx_cvtps2pd256 */

        default:
          return -1;
        }

    case VEC_SELECT:
      x5 = XEXP (x4, 1);
      if (GET_CODE (x5) != PARALLEL)
        return -1;
      x6 = XEXP (x4, 0);
      operands[1] = x6;
      switch (XVECLEN (x5, 0))
        {
        case 4:
          if (pattern262 (x3, V8SFmode, V4SFmode) != 0
              || !
#line 5380 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return -1;
          return 2418; /* *avx_cvtps2pd256_2 */

        case 8:
          if (pattern263 (x3, V16SFmode, V8SFmode) != 0
              || !
#line 5395 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2419; /* vec_unpacks_lo_v16sf */

        case 2:
          x7 = XVECEXP (x5, 0, 0);
          if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x8 = XVECEXP (x5, 0, 1);
          if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
              || !register_operand (operands[0], V2DFmode)
              || GET_MODE (x3) != V2DFmode
              || GET_MODE (x4) != V2SFmode
              || !vector_operand (operands[1], V4SFmode)
              || !
#line 5473 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1))
            return -1;
          return 2444; /* sse2_cvtps2pd */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_48 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  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 SFmode:
      if (GET_MODE (x3) != SFmode)
        return -1;
      if (nonimmediate_operand (operands[0], SFmode)
          && nonimmediate_operand (operands[1], DFmode))
        {
          if (
#line 4473 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_SSE2 && TARGET_SSE_MATH))
            return 160; /* *truncdfsf_fast_mixed */
          if (
#line 4499 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && flag_unsafe_math_optimizations))
            return 161; /* *truncdfsf_fast_i387 */
        }
      if (memory_operand (operands[0], SFmode)
          && register_operand (operands[1], DFmode)
          && 
#line 4552 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387
   && !(TARGET_SSE2 && TARGET_SSE_MATH)
   && !TARGET_MIX_SSE_I387))
        return 164; /* *truncdfsf2_i387_1 */
      if (!register_operand (operands[1], XFmode))
        return -1;
      if (register_operand (operands[0], SFmode)
          && 
#line 4623 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && flag_unsafe_math_optimizations))
        return 167; /* truncxfsf2_i387_noop */
      if (!memory_operand (operands[0], SFmode)
          || !
#line 4632 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
        return -1;
      return 169; /* *truncxfsf2_i387 */

    case DFmode:
      if (GET_MODE (x3) != DFmode
          || !register_operand (operands[1], XFmode))
        return -1;
      if (register_operand (operands[0], DFmode)
          && 
#line 4623 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && flag_unsafe_math_optimizations))
        return 168; /* truncxfdf2_i387_noop */
      if (!memory_operand (operands[0], DFmode)
          || !
#line 4632 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
        return -1;
      return 170; /* *truncxfdf2_i387 */

    case V8SFmode:
      if (!register_operand (operands[0], V8SFmode)
          || GET_MODE (x3) != V8SFmode
          || !vector_operand (operands[1], V8DFmode)
          || !
#line 5300 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 2404; /* *avx512f_cvtpd2ps512 */

    case V4SFmode:
      if (!register_operand (operands[0], V4SFmode)
          || GET_MODE (x3) != V4SFmode
          || !nonimmediate_operand (operands[1], V4DFmode)
          || !
#line 5310 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && 1))
        return -1;
      return 2408; /* avx_cvtpd2ps256 */

    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;
  int res ATTRIBUTE_UNUSED;
  switch (pattern1 (x1, V4SFmode, V2DImode, V2SFmode))
    {
    case 0:
      switch (GET_MODE (operands[0]))
        {
        case SImode:
          x2 = XEXP (x1, 1);
          if (GET_MODE (x2) != SImode)
            return -1;
          if (register_operand (operands[0], SImode))
            {
              switch (GET_MODE (operands[1]))
                {
                case SFmode:
                  if (nonimmediate_operand (operands[1], SFmode)
                      && 
#line 4803 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SSE_FLOAT_MODE_P (SFmode)
   && (!TARGET_FISTTP || TARGET_SSE_MATH)))
                    return 173; /* fix_truncsfsi_sse */
                  break;

                case DFmode:
                  if (nonimmediate_operand (operands[1], DFmode)
                      && 
#line 4803 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SSE_FLOAT_MODE_P (DFmode)
   && (!TARGET_FISTTP || TARGET_SSE_MATH)))
                    return 175; /* fix_truncdfsi_sse */
                  break;

                default:
                  break;
                }
            }
          if (!register_operand (operands[1], VOIDmode))
            return -1;
          if (nonimmediate_operand (operands[0], SImode)
              && 
#line 4832 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(X87_FLOAT_MODE_P (GET_MODE (operands[1]))
   && TARGET_FISTTP
   && !((SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
	 && (TARGET_64BIT || SImode != DImode))
	&& TARGET_SSE_MATH)
   && can_create_pseudo_p ()))
            return 178; /* fix_truncsi_fisttp_i387_1 */
          if (pnum_clobbers == NULL)
            return -1;
          if (memory_operand (operands[0], SImode)
              && 
#line 4860 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(X87_FLOAT_MODE_P (GET_MODE (operands[1]))
   && TARGET_FISTTP
   && !((SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
	 && (TARGET_64BIT || SImode != DImode))
	&& TARGET_SSE_MATH)))
            {
              *pnum_clobbers = 1;
              return 181; /* fix_truncsi_i387_fisttp */
            }
          if (!nonimmediate_operand (operands[0], SImode)
              || !
#line 4911 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(X87_FLOAT_MODE_P (GET_MODE (operands[1]))
   && !TARGET_FISTTP
   && !(SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
	 && (TARGET_64BIT || SImode != DImode))
   && can_create_pseudo_p ()))
            return -1;
          *pnum_clobbers = 1;
          return 187; /* *fix_truncsi_i387_1 */

        case DImode:
          x2 = XEXP (x1, 1);
          if (GET_MODE (x2) != DImode)
            return -1;
          if (register_operand (operands[0], DImode))
            {
              switch (GET_MODE (operands[1]))
                {
                case SFmode:
                  if (nonimmediate_operand (operands[1], SFmode)
                      && (
#line 4803 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SSE_FLOAT_MODE_P (SFmode)
   && (!TARGET_FISTTP || TARGET_SSE_MATH)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                    return 174; /* fix_truncsfdi_sse */
                  break;

                case DFmode:
                  if (nonimmediate_operand (operands[1], DFmode)
                      && (
#line 4803 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SSE_FLOAT_MODE_P (DFmode)
   && (!TARGET_FISTTP || TARGET_SSE_MATH)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                    return 176; /* fix_truncdfdi_sse */
                  break;

                default:
                  break;
                }
            }
          if (!register_operand (operands[1], VOIDmode))
            return -1;
          if (nonimmediate_operand (operands[0], DImode)
              && 
#line 4832 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(X87_FLOAT_MODE_P (GET_MODE (operands[1]))
   && TARGET_FISTTP
   && !((SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
	 && (TARGET_64BIT || DImode != DImode))
	&& TARGET_SSE_MATH)
   && can_create_pseudo_p ()))
            return 179; /* fix_truncdi_fisttp_i387_1 */
          if (pnum_clobbers == NULL)
            return -1;
          if (memory_operand (operands[0], DImode)
              && 
#line 4860 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(X87_FLOAT_MODE_P (GET_MODE (operands[1]))
   && TARGET_FISTTP
   && !((SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
	 && (TARGET_64BIT || DImode != DImode))
	&& TARGET_SSE_MATH)))
            {
              *pnum_clobbers = 1;
              return 182; /* fix_truncdi_i387_fisttp */
            }
          if (!nonimmediate_operand (operands[0], DImode)
              || !
#line 4911 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(X87_FLOAT_MODE_P (GET_MODE (operands[1]))
   && !TARGET_FISTTP
   && !(SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
	 && (TARGET_64BIT || DImode != DImode))
   && can_create_pseudo_p ()))
            return -1;
          *pnum_clobbers = 1;
          return 188; /* *fix_truncdi_i387_1 */

        case HImode:
          x2 = XEXP (x1, 1);
          if (GET_MODE (x2) != HImode
              || !register_operand (operands[1], VOIDmode))
            return -1;
          if (nonimmediate_operand (operands[0], HImode)
              && 
#line 4832 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(X87_FLOAT_MODE_P (GET_MODE (operands[1]))
   && TARGET_FISTTP
   && !((SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
	 && (TARGET_64BIT || HImode != DImode))
	&& TARGET_SSE_MATH)
   && can_create_pseudo_p ()))
            return 177; /* fix_trunchi_fisttp_i387_1 */
          if (pnum_clobbers == NULL)
            return -1;
          if (memory_operand (operands[0], HImode)
              && 
#line 4860 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(X87_FLOAT_MODE_P (GET_MODE (operands[1]))
   && TARGET_FISTTP
   && !((SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
	 && (TARGET_64BIT || HImode != DImode))
	&& TARGET_SSE_MATH)))
            {
              *pnum_clobbers = 1;
              return 180; /* fix_trunchi_i387_fisttp */
            }
          if (!nonimmediate_operand (operands[0], HImode)
              || !
#line 4911 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(X87_FLOAT_MODE_P (GET_MODE (operands[1]))
   && !TARGET_FISTTP
   && !(SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
	 && (TARGET_64BIT || HImode != DImode))
   && can_create_pseudo_p ()))
            return -1;
          *pnum_clobbers = 1;
          return 186; /* *fix_trunchi_i387_1 */

        case V2SImode:
          if (!register_operand (operands[0], V2SImode))
            return -1;
          x2 = XEXP (x1, 1);
          if (GET_MODE (x2) != V2SImode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V2SFmode:
              if (!nonimmediate_operand (operands[1], V2SFmode)
                  || !
#line 508 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_3DNOW))
                return -1;
              return 1135; /* mmx_pf2id */

            case V2DFmode:
              if (!nonimmediate_operand (operands[1], V2DFmode)
                  || !
#line 4628 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))
                return -1;
              return 2227; /* sse2_cvttpd2pi */

            default:
              return -1;
            }

        case V16SImode:
          if (!register_operand (operands[0], V16SImode))
            return -1;
          x2 = XEXP (x1, 1);
          if (GET_MODE (x2) != V16SImode
              || !vector_operand (operands[1], V16SFmode)
              || !
#line 4542 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2213; /* fix_truncv16sfv16si2 */

        case V8SImode:
          if (!register_operand (operands[0], V8SImode))
            return -1;
          x2 = XEXP (x1, 1);
          if (GET_MODE (x2) != V8SImode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V8SFmode:
              if (!nonimmediate_operand (operands[1], V8SFmode)
                  || !
#line 4551 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && 1))
                return -1;
              return 2221; /* fix_truncv8sfv8si2 */

            case V8DFmode:
              if (!vector_operand (operands[1], V8DFmode)
                  || !
#line 5125 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 2332; /* fix_truncv8dfv8si2 */

            default:
              return -1;
            }

        case V4SImode:
          if (!register_operand (operands[0], V4SImode))
            return -1;
          x2 = XEXP (x1, 1);
          if (GET_MODE (x2) != V4SImode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V4SFmode:
              if (!vector_operand (operands[1], V4SFmode)
                  || !
#line 4560 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1))
                return -1;
              return 2223; /* fix_truncv4sfv4si2 */

            case V4DFmode:
              if (!nonimmediate_operand (operands[1], V4DFmode)
                  || !
#line 5145 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX || (TARGET_AVX512VL && TARGET_AVX512F)))
                return -1;
              return 2342; /* fix_truncv4dfv4si2 */

            default:
              return -1;
            }

        case V8DImode:
          x2 = XEXP (x1, 1);
          switch (pattern175 (x2))
            {
            case 0:
              if (!
#line 5164 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1))
                return -1;
              return 2346; /* fix_truncv8dfv8di2 */

            case 1:
              if (!
#line 5196 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1))
                return -1;
              return 2378; /* fix_truncv8sfv8di2 */

            default:
              return -1;
            }

        case V4DImode:
          x2 = XEXP (x1, 1);
          switch (pattern176 (x2))
            {
            case 0:
              if (!(
#line 5164 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 270 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2354; /* fix_truncv4dfv4di2 */

            case 1:
              if (!(
#line 5196 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 233 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2386; /* fix_truncv4sfv4di2 */

            default:
              return -1;
            }

        case V2DImode:
          if (!register_operand (operands[0], V2DImode))
            return -1;
          x2 = XEXP (x1, 1);
          if (GET_MODE (x2) != V2DImode
              || !vector_operand (operands[1], V2DFmode)
              || !(
#line 5164 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 270 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 2358; /* fix_truncv2dfv2di2 */

        default:
          return -1;
        }

    case 1:
      if (!
#line 5208 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && TARGET_AVX512VL))
        return -1;
      return 2390; /* fix_truncv2sfv2di2 */

    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;
  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:
    case MEM:
      operands[1] = x4;
      switch (GET_MODE (operands[0]))
        {
        case SFmode:
          switch (pattern177 (x3, SFmode))
            {
            case 0:
              if (!
#line 5079 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387
   && (!(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)
       || TARGET_MIX_SSE_I387)))
                return -1;
              return 197; /* floathisf2 */

            case 1:
              if (
#line 5127 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH))
                return 202; /* *floatsisf2_mixed */
              if (!
#line 5162 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && X87_ENABLE_FLOAT (SFmode, SImode)))
                return -1;
              return 206; /* *floatsisf2_i387 */

            case 2:
              if ((
#line 5127 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return 203; /* *floatdisf2_mixed */
              if (!
#line 5162 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && X87_ENABLE_FLOAT (SFmode, DImode)))
                return -1;
              return 208; /* *floatdisf2_i387 */

            default:
              return -1;
            }

        case DFmode:
          switch (pattern177 (x3, DFmode))
            {
            case 0:
              if (!
#line 5079 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387
   && (!(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)
       || TARGET_MIX_SSE_I387)))
                return -1;
              return 198; /* floathidf2 */

            case 1:
              if (
#line 5127 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH))
                return 204; /* *floatsidf2_mixed */
              if (!
#line 5162 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && X87_ENABLE_FLOAT (DFmode, SImode)))
                return -1;
              return 207; /* *floatsidf2_i387 */

            case 2:
              if ((
#line 5127 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return 205; /* *floatdidf2_mixed */
              if (!
#line 5162 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && X87_ENABLE_FLOAT (DFmode, DImode)))
                return -1;
              return 209; /* *floatdidf2_i387 */

            default:
              return -1;
            }

        case XFmode:
          switch (pattern177 (x3, XFmode))
            {
            case 0:
              if (!
#line 5079 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387
   && (!(SSE_FLOAT_MODE_P (XFmode) && TARGET_SSE_MATH)
       || TARGET_MIX_SSE_I387)))
                return -1;
              return 199; /* floathixf2 */

            case 1:
              if (!
#line 5091 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
                return -1;
              return 200; /* floatsixf2 */

            case 2:
              if (!
#line 5091 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
                return -1;
              return 201; /* floatdixf2 */

            default:
              return -1;
            }

        case V2SFmode:
          if (!register_operand (operands[0], V2SFmode)
              || GET_MODE (x3) != V2SFmode
              || !nonimmediate_operand (operands[1], V2SImode)
              || !
#line 541 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_3DNOW))
            return -1;
          return 1138; /* mmx_floatv2si2 */

        case V16SFmode:
          if (!register_operand (operands[0], V16SFmode)
              || GET_MODE (x3) != V16SFmode
              || !vector_operand (operands[1], V16SImode)
              || !(
#line 4409 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1) && 
#line 226 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 2157; /* floatv16siv16sf2 */

        case V8SFmode:
          if (!register_operand (operands[0], V8SFmode)
              || GET_MODE (x3) != V8SFmode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V8SImode:
              if (!vector_operand (operands[1], V8SImode)
                  || !(
#line 4409 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1) && 
#line 226 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
                return -1;
              return 2161; /* floatv8siv8sf2 */

            case V8DImode:
              if (!nonimmediate_operand (operands[1], V8DImode)
                  || !
#line 4917 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1))
                return -1;
              return 2285; /* floatv8div8sf2 */

            default:
              return -1;
            }

        case V4SFmode:
          if (!register_operand (operands[0], V4SFmode)
              || GET_MODE (x3) != V4SFmode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V4SImode:
              if (!vector_operand (operands[1], V4SImode)
                  || !
#line 4409 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1))
                return -1;
              return 2163; /* floatv4siv4sf2 */

            case V4DImode:
              if (!nonimmediate_operand (operands[1], V4DImode)
                  || !(
#line 4917 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 233 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2293; /* floatv4div4sf2 */

            default:
              return -1;
            }

        case V2DFmode:
          if (!register_operand (operands[0], V2DFmode)
              || GET_MODE (x3) != V2DFmode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V2SImode:
              if (!nonimmediate_operand (operands[1], V2SImode)
                  || !
#line 4605 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))
                return -1;
              return 2225; /* sse2_cvtpi2pd */

            case V2DImode:
              if (!nonimmediate_operand (operands[1], V2DImode)
                  || !(
#line 4893 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 270 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2277; /* floatv2div2df2 */

            default:
              return -1;
            }

        case V8DFmode:
          switch (pattern178 (x3, V8DFmode))
            {
            case 0:
              if (!(
#line 4883 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && 1) && 
#line 244 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
                return -1;
              return 2257; /* floatv8siv8df2 */

            case 1:
              if (!
#line 4893 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ))
                return -1;
              return 2261; /* floatv8div8df2 */

            default:
              return -1;
            }

        case V4DFmode:
          switch (pattern179 (x3, V4DFmode))
            {
            case 0:
              if (!
#line 4883 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && 1))
                return -1;
              return 2259; /* floatv4siv4df2 */

            case 1:
              if (!(
#line 4893 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 270 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2269; /* floatv4div4df2 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case SIGN_EXTEND:
      if (GET_MODE (x4) != V2SImode)
        return -1;
      x5 = XEXP (x4, 0);
      if (GET_CODE (x5) != TRUNCATE
          || GET_MODE (x5) != V2HImode
          || !register_operand (operands[0], V2SFmode)
          || GET_MODE (x3) != V2SFmode)
        return -1;
      x6 = XEXP (x5, 0);
      operands[1] = x6;
      if (!nonimmediate_operand (operands[1], V2SImode)
          || !
#line 532 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_3DNOW_A))
        return -1;
      return 1137; /* mmx_pi2fw */

    case VEC_SELECT:
      x7 = XEXP (x4, 1);
      if (GET_CODE (x7) != PARALLEL)
        return -1;
      x5 = XEXP (x4, 0);
      operands[1] = x5;
      switch (XVECLEN (x7, 0))
        {
        case 8:
          if (pattern263 (x3, V16SImode, V8SImode) != 0
              || !
#line 4996 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2309; /* avx512f_cvtdq2pd512_2 */

        case 4:
          if (pattern262 (x3, V8SImode, V4SImode) != 0
              || !
#line 5009 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return -1;
          return 2310; /* avx_cvtdq2pd256_2 */

        case 2:
          x8 = XVECEXP (x7, 0, 0);
          if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x9 = XVECEXP (x7, 0, 1);
          if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
              || pattern261 (x3, V4SImode, V2SImode, V2DFmode) != 0
              || !
#line 5021 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1))
            return -1;
          return 2311; /* sse2_cvtdq2pd */

        default:
          return -1;
        }

    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, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  switch (GET_CODE (x3))
    {
    case ASHIFT:
      if (GET_MODE (x3) != HImode)
        return -1;
      x4 = XEXP (x3, 0);
      if (GET_CODE (x4) != ZERO_EXTEND
          || GET_MODE (x4) != HImode)
        return -1;
      x5 = XEXP (x3, 1);
      if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 8]
          || pattern185 (x1, ZERO_EXTEND) != 0)
        return -1;
      x6 = XEXP (x4, 0);
      switch (GET_CODE (x6))
        {
        case TRUNCATE:
          if (pnum_clobbers == NULL
              || GET_MODE (x6) != QImode)
            return -1;
          x7 = XEXP (x6, 0);
          if (GET_CODE (x7) != MOD
              || GET_MODE (x7) != HImode)
            return -1;
          x8 = XEXP (x2, 1);
          x9 = XEXP (x8, 0);
          if (GET_CODE (x9) != TRUNCATE
              || GET_MODE (x9) != QImode)
            return -1;
          x10 = XEXP (x9, 0);
          if (GET_CODE (x10) != DIV
              || GET_MODE (x10) != HImode)
            return -1;
          x11 = XEXP (x7, 0);
          operands[1] = x11;
          if (!register_operand (operands[1], HImode))
            return -1;
          x12 = XEXP (x7, 1);
          if (GET_MODE (x12) != HImode)
            return -1;
          x13 = XEXP (x10, 1);
          if (GET_MODE (x13) != HImode)
            return -1;
          x14 = XEXP (x10, 0);
          if (!rtx_equal_p (x14, operands[1]))
            return -1;
          switch (GET_CODE (x12))
            {
            case SIGN_EXTEND:
              if (GET_CODE (x13) != SIGN_EXTEND)
                return -1;
              x15 = XEXP (x12, 0);
              operands[2] = x15;
              if (!nonimmediate_operand (operands[2], QImode))
                return -1;
              x16 = XEXP (x13, 0);
              if (!rtx_equal_p (x16, operands[2])
                  || !
#line 7614 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_QIMODE_MATH))
                return -1;
              *pnum_clobbers = 1;
              return 355; /* divmodhiqi3 */

            case ZERO_EXTEND:
              if (GET_CODE (x13) != ZERO_EXTEND)
                return -1;
              x15 = XEXP (x12, 0);
              operands[2] = x15;
              if (!nonimmediate_operand (operands[2], QImode))
                return -1;
              x16 = XEXP (x13, 0);
              if (!rtx_equal_p (x16, operands[2])
                  || !
#line 7781 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_QIMODE_MATH))
                return -1;
              *pnum_clobbers = 1;
              return 366; /* udivmodhiqi3 */

            default:
              return -1;
            }

        case REG:
        case SUBREG:
          operands[1] = x6;
          if (!register_operand (operands[1], QImode))
            return -1;
          x8 = XEXP (x2, 1);
          x9 = XEXP (x8, 0);
          operands[2] = x9;
          if (!register_operand (operands[2], QImode)
              || !
#line 8951 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F))
            return -1;
          return 441; /* kunpckhi */

        default:
          return -1;
        }

    case REG:
    case SUBREG:
    case MEM:
      switch (pattern21 (x1, pnum_clobbers))
        {
        case 0:
          if (mask_reg_operand (operands[0], QImode)
              && mask_reg_operand (operands[1], QImode)
              && mask_reg_operand (operands[2], QImode)
              && 
#line 8095 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F))
            return 379; /* *korqi */
          if (pnum_clobbers == NULL
              || !nonimmediate_operand (operands[0], QImode)
              || !nonimmediate_operand (operands[1], QImode)
              || !general_operand (operands[2], QImode)
              || !
#line 8809 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (IOR, QImode, operands)))
            return -1;
          *pnum_clobbers = 1;
          return 419; /* *iorqi_1 */

        case 1:
          if (mask_reg_operand (operands[0], HImode)
              && mask_reg_operand (operands[1], HImode)
              && mask_reg_operand (operands[2], HImode)
              && 
#line 8095 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F))
            return 382; /* *korhi */
          if (pnum_clobbers == NULL
              || !nonimmediate_operand (operands[0], HImode)
              || !nonimmediate_operand (operands[1], HImode)
              || !general_operand (operands[2], HImode)
              || !
#line 8795 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (IOR, HImode, operands)))
            return -1;
          *pnum_clobbers = 1;
          return 417; /* *iorhi_1 */

        case 2:
          if (!
#line 1021 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX && ix86_binary_operator_ok (IOR, V8QImode, operands)))
            return -1;
          return 1188; /* *mmx_iorv8qi3 */

        case 3:
          if (!
#line 1021 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX && ix86_binary_operator_ok (IOR, V4HImode, operands)))
            return -1;
          return 1191; /* *mmx_iorv4hi3 */

        case 4:
          if (!
#line 1021 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX && ix86_binary_operator_ok (IOR, V2SImode, operands)))
            return -1;
          return 1194; /* *mmx_iorv2si3 */

        case 5:
          if (!(
#line 3216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1
   && ix86_binary_operator_ok (IOR, V8SFmode, operands)) && 
#line 221 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 1785; /* *iorv8sf3 */

        case 6:
          if (!
#line 3216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1
   && ix86_binary_operator_ok (IOR, V4SFmode, operands)))
            return -1;
          return 1791; /* *iorv4sf3 */

        case 7:
          if (!(
#line 3216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1
   && ix86_binary_operator_ok (IOR, V4DFmode, operands)) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 1797; /* *iorv4df3 */

        case 8:
          if (!(
#line 3216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1
   && ix86_binary_operator_ok (IOR, V2DFmode, operands)) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return -1;
          return 1803; /* *iorv2df3 */

        case 9:
          if (!
#line 3274 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (IOR, V16SFmode, operands)))
            return -1;
          return 1809; /* *iorv16sf3 */

        case 10:
          if (!
#line 3274 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (IOR, V8DFmode, operands)))
            return -1;
          return 1815; /* *iorv8df3 */

        case 11:
          if (!
#line 3416 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(SSE_FLOAT_MODE_P (SFmode)))
            return -1;
          return 1823; /* *iorsf3 */

        case 12:
          if (!
#line 3416 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(SSE_FLOAT_MODE_P (DFmode)))
            return -1;
          return 1826; /* *iordf3 */

        case 13:
          if (!
#line 3465 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && ix86_binary_operator_ok (IOR, TFmode, operands)))
            return -1;
          return 1829; /* *iortf3 */

        case 14:
          if (!(
#line 11493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1
   && ix86_binary_operator_ok (IOR, V16SImode, operands)) && 
#line 424 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 3456; /* *iorv16si3 */

        case 15:
          if (!(
#line 11493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1
   && ix86_binary_operator_ok (IOR, V8SImode, operands)) && 
#line 424 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 3462; /* *iorv8si3 */

        case 16:
          if (!
#line 11493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1
   && ix86_binary_operator_ok (IOR, V4SImode, operands)))
            return -1;
          return 3468; /* *iorv4si3 */

        case 17:
          if (!(
#line 11493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1
   && ix86_binary_operator_ok (IOR, V8DImode, operands)) && 
#line 425 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 3474; /* *iorv8di3 */

        case 18:
          if (!(
#line 11493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1
   && ix86_binary_operator_ok (IOR, V4DImode, operands)) && 
#line 425 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 3480; /* *iorv4di3 */

        case 19:
          if (!
#line 11493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1
   && ix86_binary_operator_ok (IOR, V2DImode, operands)))
            return -1;
          return 3486; /* *iorv2di3 */

        case 20:
          if (!(
#line 11588 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (IOR, V64QImode, operands)) && 
#line 428 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 3492; /* *iorv64qi3 */

        case 21:
          if (!(
#line 11588 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (IOR, V32QImode, operands)) && 
#line 428 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 3498; /* *iorv32qi3 */

        case 22:
          if (!
#line 11588 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (IOR, V16QImode, operands)))
            return -1;
          return 3504; /* *iorv16qi3 */

        case 23:
          if (!(
#line 11588 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (IOR, V32HImode, operands)) && 
#line 429 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 3510; /* *iorv32hi3 */

        case 24:
          if (!(
#line 11588 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (IOR, V16HImode, operands)) && 
#line 429 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 3516; /* *iorv16hi3 */

        case 25:
          if (!
#line 11588 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (IOR, V8HImode, operands)))
            return -1;
          return 3522; /* *iorv8hi3 */

        case 26:
          if (!
#line 8846 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
            return -1;
          *pnum_clobbers = 1;
          return 425; /* *iorqi_1_slp */

        default:
          return -1;
        }

    case ZERO_EXTRACT:
      switch (pattern23 (x1, pnum_clobbers))
        {
        case 0:
          if (!
#line 9046 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
            return -1;
          *pnum_clobbers = 1;
          return 458; /* *iorqi_ext_0 */

        case 1:
          if (!
#line 9065 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
            return -1;
          *pnum_clobbers = 1;
          return 460; /* *iorqi_ext_1 */

        case 2:
          if (!
#line 9084 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
            return -1;
          *pnum_clobbers = 1;
          return 462; /* *iorqi_ext_2 */

        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, 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 (XVECLEN (x4, 0))
    {
    case 3:
      x5 = XVECEXP (x4, 0, 0);
      operands[1] = x5;
      x6 = XVECEXP (x4, 0, 1);
      operands[2] = x6;
      x7 = XVECEXP (x4, 0, 2);
      operands[3] = x7;
      switch (XINT (x4, 1))
        {
        case 136:
          x8 = XEXP (x3, 1);
          switch (GET_CODE (x8))
            {
            case REG:
            case SUBREG:
              switch (pattern434 (x3))
                {
                case 0:
                  switch (GET_MODE (operands[1]))
                    {
                    case V16SImode:
                      if (!register_operand (operands[1], V16SImode)
                          || !nonimmediate_operand (operands[2], V16SImode)
                          || !const_0_to_7_operand (operands[3], SImode)
                          || !(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 2688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1)))
                        return -1;
                      return 1682; /* avx512f_cmpv16si3_mask */

                    case V16SFmode:
                      if (!register_operand (operands[1], V16SFmode)
                          || !nonimmediate_operand (operands[2], V16SFmode)
                          || !const_0_to_31_operand (operands[3], SImode)
                          || !(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 2688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1)))
                        return -1;
                      return 1698; /* avx512f_cmpv16sf3_mask */

                    case V16QImode:
                      if (!register_operand (operands[1], V16QImode)
                          || !nonimmediate_operand (operands[2], V16QImode)
                          || !const_0_to_7_operand (operands[3], SImode)
                          || !(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2702 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                        return -1;
                      return 1716; /* avx512vl_cmpv16qi3_mask */

                    case V16HImode:
                      if (!register_operand (operands[1], V16HImode)
                          || !nonimmediate_operand (operands[2], V16HImode)
                          || !const_0_to_7_operand (operands[3], SImode)
                          || !(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2702 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                        return -1;
                      return 1722; /* avx512vl_cmpv16hi3_mask */

                    default:
                      return -1;
                    }

                case 1:
                  switch (GET_MODE (operands[1]))
                    {
                    case V8SImode:
                      if (!register_operand (operands[1], V8SImode)
                          || !nonimmediate_operand (operands[2], V8SImode)
                          || !const_0_to_7_operand (operands[3], SImode)
                          || !(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 175 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                        return -1;
                      return 1686; /* avx512vl_cmpv8si3_mask */

                    case V4SImode:
                      if (!register_operand (operands[1], V4SImode)
                          || !nonimmediate_operand (operands[2], V4SImode)
                          || !const_0_to_7_operand (operands[3], SImode)
                          || !(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 175 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                        return -1;
                      return 1688; /* avx512vl_cmpv4si3_mask */

                    case V8DImode:
                      if (!register_operand (operands[1], V8DImode)
                          || !nonimmediate_operand (operands[2], V8DImode)
                          || !const_0_to_7_operand (operands[3], SImode)
                          || !(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 2688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1)))
                        return -1;
                      return 1690; /* avx512f_cmpv8di3_mask */

                    case V4DImode:
                      if (!register_operand (operands[1], V4DImode)
                          || !nonimmediate_operand (operands[2], V4DImode)
                          || !const_0_to_7_operand (operands[3], SImode)
                          || !(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 176 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                        return -1;
                      return 1694; /* avx512vl_cmpv4di3_mask */

                    case V2DImode:
                      if (!register_operand (operands[1], V2DImode)
                          || !nonimmediate_operand (operands[2], V2DImode)
                          || !const_0_to_7_operand (operands[3], SImode)
                          || !(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 176 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                        return -1;
                      return 1696; /* avx512vl_cmpv2di3_mask */

                    case V8SFmode:
                      if (!register_operand (operands[1], V8SFmode)
                          || !nonimmediate_operand (operands[2], V8SFmode)
                          || !const_0_to_31_operand (operands[3], SImode)
                          || !(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 177 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                        return -1;
                      return 1702; /* avx512vl_cmpv8sf3_mask */

                    case V4SFmode:
                      if (!register_operand (operands[1], V4SFmode)
                          || !nonimmediate_operand (operands[2], V4SFmode)
                          || !const_0_to_31_operand (operands[3], SImode)
                          || !(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 177 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                        return -1;
                      return 1704; /* avx512vl_cmpv4sf3_mask */

                    case V8DFmode:
                      if (!register_operand (operands[1], V8DFmode)
                          || !nonimmediate_operand (operands[2], V8DFmode)
                          || !const_0_to_31_operand (operands[3], SImode)
                          || !(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 2688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1)))
                        return -1;
                      return 1706; /* avx512f_cmpv8df3_mask */

                    case V4DFmode:
                      if (!register_operand (operands[1], V4DFmode)
                          || !nonimmediate_operand (operands[2], V4DFmode)
                          || !const_0_to_31_operand (operands[3], SImode)
                          || !(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                        return -1;
                      return 1710; /* avx512vl_cmpv4df3_mask */

                    case V2DFmode:
                      if (!register_operand (operands[1], V2DFmode)
                          || !nonimmediate_operand (operands[2], V2DFmode)
                          || !const_0_to_31_operand (operands[3], SImode)
                          || !(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                        return -1;
                      return 1712; /* avx512vl_cmpv2df3_mask */

                    case V8HImode:
                      if (!register_operand (operands[1], V8HImode)
                          || !nonimmediate_operand (operands[2], V8HImode)
                          || !const_0_to_7_operand (operands[3], SImode)
                          || !(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2702 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                        return -1;
                      return 1724; /* avx512vl_cmpv8hi3_mask */

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            case CONST_INT:
              if (XWINT (x8, 0) != 1LL
                  || pattern485 (x3) != 0)
                return -1;
              switch (pattern667 ())
                {
                case 0:
                  if (!
#line 2746 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                    return -1;
                  return 1749; /* avx512f_vmcmpv4sf3 */

                case 1:
                  if (!(
#line 2746 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
                    return -1;
                  return 1751; /* avx512f_vmcmpv2df3 */

                default:
                  return -1;
                }

            case AND:
              if (GET_MODE (x8) != QImode)
                return -1;
              x9 = XEXP (x8, 1);
              if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
                  || pattern485 (x3) != 0)
                return -1;
              x10 = XEXP (x8, 0);
              operands[4] = x10;
              if (!register_operand (operands[4], QImode))
                return -1;
              switch (pattern667 ())
                {
                case 0:
                  if (!
#line 2764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                    return -1;
                  return 1753; /* avx512f_vmcmpv4sf3_mask */

                case 1:
                  if (!(
#line 2764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
                    return -1;
                  return 1755; /* avx512f_vmcmpv2df3_mask */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case 152:
          if (!const_0_to_7_operand (operands[3], SImode))
            return -1;
          switch (pattern434 (x3))
            {
            case 0:
              switch (pattern316 ())
                {
                case 0:
                  if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2716 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 1728; /* avx512vl_ucmpv16qi3_mask */

                case 1:
                  if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2716 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 1734; /* avx512vl_ucmpv16hi3_mask */

                case 2:
                  if (!
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                    return -1;
                  return 1738; /* avx512f_ucmpv16si3_mask */

                default:
                  return -1;
                }

            case 1:
              switch (pattern317 ())
                {
                case 0:
                  if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2716 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 1736; /* avx512vl_ucmpv8hi3_mask */

                case 1:
                  if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2730 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 1740; /* avx512vl_ucmpv8si3_mask */

                case 2:
                  if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2730 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 1742; /* avx512vl_ucmpv4si3_mask */

                case 3:
                  if (!
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                    return -1;
                  return 1744; /* avx512f_ucmpv8di3_mask */

                case 4:
                  if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2730 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 1746; /* avx512vl_ucmpv4di3_mask */

                case 5:
                  if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2730 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 1748; /* avx512vl_ucmpv2di3_mask */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 2:
      x5 = XVECEXP (x4, 0, 0);
      operands[1] = x5;
      x6 = XVECEXP (x4, 0, 1);
      operands[2] = x6;
      switch (XINT (x4, 1))
        {
        case 168:
          switch (pattern318 (x3))
            {
            case 0:
              if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11003 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (EQ, V16QImode, operands)) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 3379; /* avx512vl_eqv16qi3_mask_1 */

            case 1:
              if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11003 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (EQ, V16HImode, operands)) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 3385; /* avx512vl_eqv16hi3_mask_1 */

            case 2:
              if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 11016 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (EQ, V16SImode, operands))))
                return -1;
              return 3389; /* avx512f_eqv16si3_mask_1 */

            case 3:
              if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11003 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (EQ, V8HImode, operands)) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 3387; /* avx512vl_eqv8hi3_mask_1 */

            case 4:
              if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11016 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (EQ, V8SImode, operands)) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 3391; /* avx512vl_eqv8si3_mask_1 */

            case 5:
              if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11016 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (EQ, V4SImode, operands)) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 3393; /* avx512vl_eqv4si3_mask_1 */

            case 6:
              if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 11016 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (EQ, V8DImode, operands))))
                return -1;
              return 3395; /* avx512f_eqv8di3_mask_1 */

            case 7:
              if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11016 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (EQ, V4DImode, operands)) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 3397; /* avx512vl_eqv4di3_mask_1 */

            case 8:
              if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11016 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (EQ, V2DImode, operands)) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 3399; /* avx512vl_eqv2di3_mask_1 */

            default:
              return -1;
            }

        case 169:
          x8 = XEXP (x3, 1);
          operands[3] = x8;
          switch (GET_MODE (operands[0]))
            {
            case HImode:
              if (pattern435 (x3, HImode) != 0)
                return -1;
              switch (GET_MODE (operands[1]))
                {
                case V16SImode:
                  if (!register_operand (operands[1], V16SImode)
                      || !nonimmediate_operand (operands[2], V16SImode)
                      || !
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                    return -1;
                  return 3410; /* avx512f_gtv16si3_mask */

                case V16QImode:
                  if (!register_operand (operands[1], V16QImode)
                      || !nonimmediate_operand (operands[2], V16QImode)
                      || !(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11116 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 3424; /* avx512vl_gtv16qi3_mask */

                case V16HImode:
                  if (!register_operand (operands[1], V16HImode)
                      || !nonimmediate_operand (operands[2], V16HImode)
                      || !(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11116 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 3430; /* avx512vl_gtv16hi3_mask */

                default:
                  return -1;
                }

            case QImode:
              if (pattern435 (x3, QImode) != 0)
                return -1;
              switch (GET_MODE (operands[1]))
                {
                case V8SImode:
                  if (!register_operand (operands[1], V8SImode)
                      || !nonimmediate_operand (operands[2], V8SImode)
                      || !(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11104 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 3412; /* avx512vl_gtv8si3_mask */

                case V4SImode:
                  if (!register_operand (operands[1], V4SImode)
                      || !nonimmediate_operand (operands[2], V4SImode)
                      || !(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11104 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 3414; /* avx512vl_gtv4si3_mask */

                case V8DImode:
                  if (!register_operand (operands[1], V8DImode)
                      || !nonimmediate_operand (operands[2], V8DImode)
                      || !
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                    return -1;
                  return 3416; /* avx512f_gtv8di3_mask */

                case V4DImode:
                  if (!register_operand (operands[1], V4DImode)
                      || !nonimmediate_operand (operands[2], V4DImode)
                      || !(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11104 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 3418; /* avx512vl_gtv4di3_mask */

                case V2DImode:
                  if (!register_operand (operands[1], V2DImode)
                      || !nonimmediate_operand (operands[2], V2DImode)
                      || !(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11104 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 3420; /* avx512vl_gtv2di3_mask */

                case V8HImode:
                  if (!register_operand (operands[1], V8HImode)
                      || !nonimmediate_operand (operands[2], V8HImode)
                      || !(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11116 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 3432; /* avx512vl_gtv8hi3_mask */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case 153:
          switch (pattern318 (x3))
            {
            case 0:
              if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 3529; /* avx512vl_testmv16qi3_mask */

            case 1:
              if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 3535; /* avx512vl_testmv16hi3_mask */

            case 2:
              if (!
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 3539; /* avx512f_testmv16si3_mask */

            case 3:
              if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 3537; /* avx512vl_testmv8hi3_mask */

            case 4:
              if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11699 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 3541; /* avx512vl_testmv8si3_mask */

            case 5:
              if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11699 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 3543; /* avx512vl_testmv4si3_mask */

            case 6:
              if (!
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 3545; /* avx512f_testmv8di3_mask */

            case 7:
              if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11699 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 3547; /* avx512vl_testmv4di3_mask */

            case 8:
              if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11699 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 3549; /* avx512vl_testmv2di3_mask */

            default:
              return -1;
            }

        case 154:
          switch (pattern318 (x3))
            {
            case 0:
              if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11710 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 3553; /* avx512vl_testnmv16qi3_mask */

            case 1:
              if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11710 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 3559; /* avx512vl_testnmv16hi3_mask */

            case 2:
              if (!
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 3563; /* avx512f_testnmv16si3_mask */

            case 3:
              if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11710 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 3561; /* avx512vl_testnmv8hi3_mask */

            case 4:
              if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11721 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 3565; /* avx512vl_testnmv8si3_mask */

            case 5:
              if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11721 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 3567; /* avx512vl_testnmv4si3_mask */

            case 6:
              if (!
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 3569; /* avx512f_testnmv8di3_mask */

            case 7:
              if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11721 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 3571; /* avx512vl_testnmv4di3_mask */

            case 8:
              if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11721 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 3573; /* avx512vl_testnmv2di3_mask */

            default:
              return -1;
            }

        case 190:
          if (!const_0_to_255_operand (operands[2], QImode))
            return -1;
          x8 = XEXP (x3, 1);
          switch (GET_CODE (x8))
            {
            case REG:
            case SUBREG:
              operands[3] = x8;
              switch (GET_MODE (operands[0]))
                {
                case HImode:
                  if (!register_operand (operands[0], HImode)
                      || GET_MODE (x3) != HImode
                      || GET_MODE (x4) != HImode
                      || !register_operand (operands[1], V16SFmode)
                      || !register_operand (operands[3], HImode)
                      || !(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 19122 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ)))
                    return -1;
                  return 4862; /* avx512dq_fpclassv16sf_mask */

                case QImode:
                  if (pattern435 (x3, QImode) != 0)
                    return -1;
                  switch (GET_MODE (operands[1]))
                    {
                    case V8SFmode:
                      if (!register_operand (operands[1], V8SFmode)
                          || !(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 19122 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                        return -1;
                      return 4864; /* avx512dq_fpclassv8sf_mask */

                    case V4SFmode:
                      if (!register_operand (operands[1], V4SFmode)
                          || !(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 19122 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                        return -1;
                      return 4866; /* avx512dq_fpclassv4sf_mask */

                    case V8DFmode:
                      if (!register_operand (operands[1], V8DFmode)
                          || !(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 19122 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ)))
                        return -1;
                      return 4868; /* avx512dq_fpclassv8df_mask */

                    case V4DFmode:
                      if (!register_operand (operands[1], V4DFmode)
                          || !(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 19122 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                        return -1;
                      return 4870; /* avx512dq_fpclassv4df_mask */

                    case V2DFmode:
                      if (!register_operand (operands[1], V2DFmode)
                          || !(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 19122 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                        return -1;
                      return 4872; /* avx512dq_fpclassv2df_mask */

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            case CONST_INT:
              if (XWINT (x8, 0) != 1LL
                  || !register_operand (operands[0], QImode)
                  || GET_MODE (x3) != QImode
                  || GET_MODE (x4) != QImode)
                return -1;
              switch (GET_MODE (operands[1]))
                {
                case V4SFmode:
                  if (!register_operand (operands[1], V4SFmode)
                      || !
#line 19137 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ))
                    return -1;
                  return 4873; /* avx512dq_vmfpclassv4sf */

                case V2DFmode:
                  if (!register_operand (operands[1], V2DFmode)
                      || !(
#line 19137 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
                    return -1;
                  return 4874; /* avx512dq_vmfpclassv2df */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    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, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  switch (GET_CODE (x3))
    {
    case REG:
    case SUBREG:
    case MEM:
      switch (pattern21 (x1, pnum_clobbers))
        {
        case 0:
          if (mask_reg_operand (operands[0], QImode)
              && mask_reg_operand (operands[1], QImode)
              && mask_reg_operand (operands[2], QImode)
              && 
#line 8095 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F))
            return 378; /* *kandqi */
          if (pnum_clobbers == NULL
              || !nonimmediate_operand (operands[0], QImode)
              || !nonimmediate_operand (operands[1], QImode)
              || !general_operand (operands[2], QImode)
              || !
#line 8302 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (AND, QImode, operands)))
            return -1;
          *pnum_clobbers = 1;
          return 395; /* *andqi_1 */

        case 1:
          if (mask_reg_operand (operands[0], HImode)
              && mask_reg_operand (operands[1], HImode)
              && mask_reg_operand (operands[2], HImode)
              && 
#line 8095 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F))
            return 381; /* *kandhi */
          if (pnum_clobbers == NULL
              || !nonimmediate_operand (operands[0], HImode)
              || !nonimmediate_operand (operands[1], HImode)
              || !general_operand (operands[2], HImode)
              || !
#line 8271 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (AND, HImode, operands)))
            return -1;
          *pnum_clobbers = 1;
          return 394; /* *andhi_1 */

        case 2:
          if (!
#line 1021 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX && ix86_binary_operator_ok (AND, V8QImode, operands)))
            return -1;
          return 1187; /* *mmx_andv8qi3 */

        case 3:
          if (!
#line 1021 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX && ix86_binary_operator_ok (AND, V4HImode, operands)))
            return -1;
          return 1190; /* *mmx_andv4hi3 */

        case 4:
          if (!
#line 1021 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX && ix86_binary_operator_ok (AND, V2SImode, operands)))
            return -1;
          return 1193; /* *mmx_andv2si3 */

        case 5:
          if (!(
#line 3216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1
   && ix86_binary_operator_ok (AND, V8SFmode, operands)) && 
#line 221 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 1783; /* *andv8sf3 */

        case 6:
          if (!
#line 3216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1
   && ix86_binary_operator_ok (AND, V4SFmode, operands)))
            return -1;
          return 1789; /* *andv4sf3 */

        case 7:
          if (!(
#line 3216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1
   && ix86_binary_operator_ok (AND, V4DFmode, operands)) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 1795; /* *andv4df3 */

        case 8:
          if (!(
#line 3216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1
   && ix86_binary_operator_ok (AND, V2DFmode, operands)) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return -1;
          return 1801; /* *andv2df3 */

        case 9:
          if (!
#line 3274 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (AND, V16SFmode, operands)))
            return -1;
          return 1807; /* *andv16sf3 */

        case 10:
          if (!
#line 3274 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (AND, V8DFmode, operands)))
            return -1;
          return 1813; /* *andv8df3 */

        case 11:
          if (!
#line 3416 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(SSE_FLOAT_MODE_P (SFmode)))
            return -1;
          return 1822; /* *andsf3 */

        case 12:
          if (!
#line 3416 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(SSE_FLOAT_MODE_P (DFmode)))
            return -1;
          return 1825; /* *anddf3 */

        case 13:
          if (!
#line 3465 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && ix86_binary_operator_ok (AND, TFmode, operands)))
            return -1;
          return 1828; /* *andtf3 */

        case 14:
          if (!(
#line 11493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1
   && ix86_binary_operator_ok (AND, V16SImode, operands)) && 
#line 424 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 3454; /* *andv16si3 */

        case 15:
          if (!(
#line 11493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1
   && ix86_binary_operator_ok (AND, V8SImode, operands)) && 
#line 424 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 3460; /* *andv8si3 */

        case 16:
          if (!
#line 11493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1
   && ix86_binary_operator_ok (AND, V4SImode, operands)))
            return -1;
          return 3466; /* *andv4si3 */

        case 17:
          if (!(
#line 11493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1
   && ix86_binary_operator_ok (AND, V8DImode, operands)) && 
#line 425 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 3472; /* *andv8di3 */

        case 18:
          if (!(
#line 11493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1
   && ix86_binary_operator_ok (AND, V4DImode, operands)) && 
#line 425 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 3478; /* *andv4di3 */

        case 19:
          if (!
#line 11493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1
   && ix86_binary_operator_ok (AND, V2DImode, operands)))
            return -1;
          return 3484; /* *andv2di3 */

        case 20:
          if (!(
#line 11588 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (AND, V64QImode, operands)) && 
#line 428 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 3490; /* *andv64qi3 */

        case 21:
          if (!(
#line 11588 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (AND, V32QImode, operands)) && 
#line 428 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 3496; /* *andv32qi3 */

        case 22:
          if (!
#line 11588 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (AND, V16QImode, operands)))
            return -1;
          return 3502; /* *andv16qi3 */

        case 23:
          if (!(
#line 11588 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (AND, V32HImode, operands)) && 
#line 429 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 3508; /* *andv32hi3 */

        case 24:
          if (!(
#line 11588 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (AND, V16HImode, operands)) && 
#line 429 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 3514; /* *andv16hi3 */

        case 25:
          if (!
#line 11588 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (AND, V8HImode, operands)))
            return -1;
          return 3520; /* *andv8hi3 */

        case 26:
          if (!
#line 8326 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
            return -1;
          *pnum_clobbers = 1;
          return 396; /* *andqi_1_slp */

        default:
          return -1;
        }

    case NOT:
      x4 = XEXP (x1, 0);
      operands[0] = x4;
      x5 = XEXP (x3, 0);
      operands[1] = x5;
      x6 = XEXP (x2, 1);
      operands[2] = x6;
      switch (GET_MODE (operands[0]))
        {
        case QImode:
          if (pnum_clobbers == NULL
              || pattern266 (x2, QImode) != 0
              || !
#line 8339 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F))
            return -1;
          *pnum_clobbers = 1;
          return 397; /* kandnqi */

        case HImode:
          if (pnum_clobbers == NULL
              || pattern266 (x2, HImode) != 0
              || !
#line 8339 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F))
            return -1;
          *pnum_clobbers = 1;
          return 398; /* kandnhi */

        case V8QImode:
          if (pattern264 (x2, V8QImode) != 0
              || !
#line 1003 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX))
            return -1;
          return 1184; /* mmx_andnotv8qi3 */

        case V4HImode:
          if (pattern264 (x2, V4HImode) != 0
              || !
#line 1003 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX))
            return -1;
          return 1185; /* mmx_andnotv4hi3 */

        case V2SImode:
          if (pattern264 (x2, V2SImode) != 0
              || !
#line 1003 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX))
            return -1;
          return 1186; /* mmx_andnotv2si3 */

        case V8SFmode:
          if (pattern265 (x2, V8SFmode) != 0
              || !(
#line 3111 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1) && 
#line 221 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 1771; /* avx_andnotv8sf3 */

        case V4SFmode:
          if (pattern265 (x2, V4SFmode) != 0
              || !
#line 3111 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1))
            return -1;
          return 1773; /* sse_andnotv4sf3 */

        case V4DFmode:
          if (pattern265 (x2, V4DFmode) != 0
              || !(
#line 3111 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 1775; /* avx_andnotv4df3 */

        case V2DFmode:
          if (pattern265 (x2, V2DFmode) != 0
              || !(
#line 3111 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return -1;
          return 1777; /* sse2_andnotv2df3 */

        case V16SFmode:
          if (pattern264 (x2, V16SFmode) != 0
              || !
#line 3170 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 1779; /* avx512f_andnotv16sf3 */

        case V8DFmode:
          if (pattern264 (x2, V8DFmode) != 0
              || !
#line 3170 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 1781; /* avx512f_andnotv8df3 */

        case SFmode:
          if (pattern266 (x2, SFmode) != 0
              || !
#line 3328 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(SSE_FLOAT_MODE_P (SFmode)))
            return -1;
          return 1819; /* *andnotsf3 */

        case DFmode:
          if (pattern266 (x2, DFmode) != 0
              || !
#line 3328 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(SSE_FLOAT_MODE_P (DFmode)))
            return -1;
          return 1820; /* *andnotdf3 */

        case TFmode:
          if (pattern265 (x2, TFmode) != 0
              || !
#line 3369 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
            return -1;
          return 1821; /* *andnottf3 */

        case V16SImode:
          if (pattern265 (x2, V16SImode) != 0
              || !(
#line 11369 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 277 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 3436; /* *andnotv16si3 */

        case V8DImode:
          if (pattern265 (x2, V8DImode) != 0
              || !(
#line 11369 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 277 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 3437; /* *andnotv8di3 */

        case V64QImode:
          if (pattern265 (x2, V64QImode) != 0
              || !(
#line 11369 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 278 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return -1;
          return 3438; /* *andnotv64qi3 */

        case V32QImode:
          if (pattern265 (x2, V32QImode) != 0
              || !(
#line 11369 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 278 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 3439; /* *andnotv32qi3 */

        case V16QImode:
          if (pattern265 (x2, V16QImode) != 0
              || !
#line 11369 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
            return -1;
          return 3440; /* *andnotv16qi3 */

        case V32HImode:
          if (pattern265 (x2, V32HImode) != 0
              || !(
#line 11369 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 279 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return -1;
          return 3441; /* *andnotv32hi3 */

        case V16HImode:
          if (pattern265 (x2, V16HImode) != 0
              || !(
#line 11369 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 279 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 3442; /* *andnotv16hi3 */

        case V8HImode:
          if (pattern265 (x2, V8HImode) != 0
              || !
#line 11369 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
            return -1;
          return 3443; /* *andnotv8hi3 */

        case V8SImode:
          if (pattern265 (x2, V8SImode) != 0
              || !(
#line 11369 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 280 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 3444; /* *andnotv8si3 */

        case V4SImode:
          if (pattern265 (x2, V4SImode) != 0
              || !
#line 11369 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
            return -1;
          return 3445; /* *andnotv4si3 */

        case V4DImode:
          if (pattern265 (x2, V4DImode) != 0
              || !(
#line 11369 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 281 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 3446; /* *andnotv4di3 */

        case V2DImode:
          if (pattern265 (x2, V2DImode) != 0
              || !
#line 11369 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
            return -1;
          return 3447; /* *andnotv2di3 */

        default:
          return -1;
        }

    case ZERO_EXTRACT:
      switch (pattern23 (x1, pnum_clobbers))
        {
        case 0:
          *pnum_clobbers = 1;
          return 406; /* andqi_ext_0 */

        case 1:
          *pnum_clobbers = 1;
          return 408; /* *andqi_ext_1 */

        case 2:
          *pnum_clobbers = 1;
          return 409; /* *andqi_ext_2 */

        default:
          return -1;
        }

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

    default:
      return -1;
    }
}

static int
recog_54 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  switch (GET_CODE (x3))
    {
    case XOR:
      if (pnum_clobbers == NULL)
        return -1;
      x4 = XEXP (x1, 0);
      operands[0] = x4;
      x5 = XEXP (x3, 0);
      operands[1] = x5;
      x6 = XEXP (x3, 1);
      operands[2] = x6;
      switch (GET_MODE (operands[0]))
        {
        case QImode:
          if (pattern319 (x2, QImode) != 0
              || !
#line 8873 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F))
            return -1;
          *pnum_clobbers = 1;
          return 435; /* kxnorqi */

        case HImode:
          if (pattern319 (x2, HImode) != 0
              || !
#line 8873 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F))
            return -1;
          *pnum_clobbers = 1;
          return 436; /* kxnorhi */

        default:
          return -1;
        }

    case REG:
    case SUBREG:
    case MEM:
      operands[1] = x3;
      x4 = XEXP (x1, 0);
      operands[0] = x4;
      switch (GET_MODE (operands[0]))
        {
        case HImode:
          if (!nonimmediate_operand (operands[0], HImode)
              || GET_MODE (x2) != HImode
              || !nonimmediate_operand (operands[1], HImode)
              || !
#line 9582 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_unary_operator_ok (NOT, HImode, operands)))
            return -1;
          return 507; /* *one_cmplhi2_1 */

        case QImode:
          if (!nonimmediate_operand (operands[0], QImode)
              || GET_MODE (x2) != QImode
              || !nonimmediate_operand (operands[1], QImode)
              || !
#line 9595 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_unary_operator_ok (NOT, QImode, operands)))
            return -1;
          return 508; /* *one_cmplqi2_1 */

        default:
          return -1;
        }

    case ZERO_EXTRACT:
      if (pnum_clobbers == NULL
          || GET_MODE (x3) != DImode)
        return -1;
      x6 = XEXP (x3, 1);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x4 = XEXP (x1, 0);
      if (pattern53 (x4) != 0
          || GET_MODE (x2) != DImode)
        return -1;
      x5 = XEXP (x3, 0);
      if (!rtx_equal_p (x5, operands[0]))
        return -1;
      x7 = XEXP (x3, 2);
      if (!rtx_equal_p (x7, operands[1])
          || !
#line 11107 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && (TARGET_USE_BT || reload_completed)))
        return -1;
      *pnum_clobbers = 1;
      return 621; /* *btcq */

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  switch (GET_CODE (x2))
    {
    case REG:
    case SUBREG:
    case MEM:
      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 QImode:
          if (GET_MODE (x3) != QImode)
            return -1;
          if (register_operand (operands[0], QImode)
              && register_operand (operands[1], QImode)
              && immediate_operand (operands[2], QImode)
              && (
#line 9707 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F) && 
#line 970 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512DQ)))
            return 515; /* *shiftlqi3 */
          if (pnum_clobbers == NULL
              || !nonimmediate_operand (operands[0], QImode)
              || !nonimmediate_operand (operands[1], QImode)
              || !nonmemory_operand (operands[2], QImode)
              || !
#line 10039 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ASHIFT, QImode, operands)))
            return -1;
          *pnum_clobbers = 1;
          return 536; /* *ashlqi3_1 */

        case HImode:
          if (GET_MODE (x3) != HImode)
            return -1;
          if (register_operand (operands[0], HImode)
              && register_operand (operands[1], HImode)
              && immediate_operand (operands[2], QImode)
              && 
#line 9707 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F))
            return 517; /* *shiftlhi3 */
          if (pnum_clobbers == NULL
              || !nonimmediate_operand (operands[0], HImode)
              || !nonimmediate_operand (operands[1], HImode)
              || !nonmemory_operand (operands[2], QImode)
              || !
#line 9994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ASHIFT, HImode, operands)))
            return -1;
          *pnum_clobbers = 1;
          return 535; /* *ashlhi3_1 */

        case TImode:
          if (pnum_clobbers == NULL
              || !register_operand (operands[0], TImode)
              || GET_MODE (x3) != TImode
              || !reg_or_pm1_operand (operands[1], TImode)
              || !nonmemory_operand (operands[2], QImode)
              || !
#line 1022 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
            return -1;
          *pnum_clobbers = 1;
          return 524; /* *ashlti3_doubleword */

        case V4HImode:
          if (pattern260 (x3, V4HImode, DImode) != 0
              || !
#line 949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX))
            return -1;
          return 1172; /* mmx_ashlv4hi3 */

        case V2SImode:
          if (pattern260 (x3, V2SImode, DImode) != 0
              || !
#line 949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX))
            return -1;
          return 1174; /* mmx_ashlv2si3 */

        case V1DImode:
          if (pattern260 (x3, V1DImode, DImode) != 0
              || !
#line 949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX))
            return -1;
          return 1176; /* mmx_ashlv1di3 */

        case V32HImode:
          if (!register_operand (operands[0], V32HImode)
              || GET_MODE (x3) != V32HImode
              || !register_operand (operands[1], V32HImode))
            return -1;
          if (nonmemory_operand (operands[2], DImode)
              && (
#line 10550 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1) && 
#line 399 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return 3154; /* ashlv32hi3 */
          if (!nonimmediate_operand (operands[2], V32HImode)
              || !
#line 18486 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
            return -1;
          return 4556; /* avx512bw_ashlvv32hi */

        case V16HImode:
          if (!register_operand (operands[0], V16HImode)
              || GET_MODE (x3) != V16HImode
              || !register_operand (operands[1], V16HImode))
            return -1;
          if (nonmemory_operand (operands[2], DImode)
              && (
#line 10550 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1) && 
#line 399 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
            return 3158; /* ashlv16hi3 */
          if (!nonimmediate_operand (operands[2], V16HImode)
              || !(
#line 18486 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4552; /* avx512vl_ashlvv16hi */

        case V8HImode:
          if (!register_operand (operands[0], V8HImode)
              || GET_MODE (x3) != V8HImode
              || !register_operand (operands[1], V8HImode))
            return -1;
          if (nonmemory_operand (operands[2], DImode)
              && 
#line 10550 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1))
            return 3162; /* ashlv8hi3 */
          if (!nonimmediate_operand (operands[2], V8HImode)
              || !(
#line 18486 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4548; /* avx512vl_ashlvv8hi */

        case V8SImode:
          if (!register_operand (operands[0], V8SImode)
              || GET_MODE (x3) != V8SImode
              || !register_operand (operands[1], V8SImode))
            return -1;
          if (nonmemory_operand (operands[2], DImode)
              && (
#line 10569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1) && 
#line 402 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
            return 3166; /* ashlv8si3 */
          if (!nonimmediate_operand (operands[2], V8SImode)
              || !
#line 18475 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1))
            return -1;
          return 4528; /* avx2_ashlvv8si */

        case V4SImode:
          if (!register_operand (operands[0], V4SImode)
              || GET_MODE (x3) != V4SImode
              || !register_operand (operands[1], V4SImode))
            return -1;
          if (nonmemory_operand (operands[2], DImode)
              && 
#line 10569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1))
            return 3170; /* ashlv4si3 */
          if (!nonimmediate_operand (operands[2], V4SImode)
              || !
#line 18475 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1))
            return -1;
          return 4532; /* avx2_ashlvv4si */

        case V4DImode:
          if (!register_operand (operands[0], V4DImode)
              || GET_MODE (x3) != V4DImode
              || !register_operand (operands[1], V4DImode))
            return -1;
          if (nonmemory_operand (operands[2], DImode)
              && (
#line 10569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1) && 
#line 403 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
            return 3174; /* ashlv4di3 */
          if (!nonimmediate_operand (operands[2], V4DImode)
              || !
#line 18475 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1))
            return -1;
          return 4540; /* avx2_ashlvv4di */

        case V2DImode:
          if (!register_operand (operands[0], V2DImode)
              || GET_MODE (x3) != V2DImode
              || !register_operand (operands[1], V2DImode))
            return -1;
          if (nonmemory_operand (operands[2], DImode)
              && 
#line 10569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1))
            return 3178; /* ashlv2di3 */
          if (!nonimmediate_operand (operands[2], V2DImode)
              || !
#line 18475 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1))
            return -1;
          return 4544; /* avx2_ashlvv2di */

        case V16SImode:
          if (!register_operand (operands[0], V16SImode)
              || GET_MODE (x3) != V16SImode)
            return -1;
          if (nonimmediate_operand (operands[1], V16SImode)
              && nonmemory_operand (operands[2], DImode)
              && 
#line 10589 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1))
            return 3182; /* ashlv16si3 */
          if (!register_operand (operands[1], V16SImode)
              || !nonimmediate_operand (operands[2], V16SImode)
              || !(
#line 18475 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1) && 
#line 420 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 4524; /* avx512f_ashlvv16si */

        case V8DImode:
          if (!register_operand (operands[0], V8DImode)
              || GET_MODE (x3) != V8DImode)
            return -1;
          if (nonimmediate_operand (operands[1], V8DImode)
              && nonmemory_operand (operands[2], DImode)
              && 
#line 10589 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1))
            return 3186; /* ashlv8di3 */
          if (!register_operand (operands[1], V8DImode)
              || !nonimmediate_operand (operands[2], V8DImode)
              || !(
#line 18475 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1) && 
#line 421 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 4536; /* avx512f_ashlvv8di */

        case V4TImode:
          if (pattern267 (x3, V4TImode) != 0
              || !(
#line 10619 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2) && 
#line 374 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return -1;
          return 3190; /* avx512bw_ashlv4ti3 */

        case V2TImode:
          if (pattern267 (x3, V2TImode) != 0
              || !(
#line 10619 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2) && 
#line 374 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
            return -1;
          return 3191; /* avx2_ashlv2ti3 */

        case V1TImode:
          if (pattern267 (x3, V1TImode) != 0
              || !
#line 10619 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))
            return -1;
          return 3192; /* sse2_ashlv1ti3 */

        default:
          return -1;
        }

    case STRICT_LOW_PART:
      if (pattern4 (x1, pnum_clobbers) != 0
          || !
#line 10096 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[1] == const1_rtx
	&& (TARGET_SHIFT1
	    || (TARGET_DOUBLE_WITH_ADD && REG_P (operands[0])))))))
        return -1;
      *pnum_clobbers = 1;
      return 537; /* *ashlqi3_1_slp */

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  switch (GET_CODE (x2))
    {
    case REG:
    case SUBREG:
    case MEM:
      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 TImode:
          if (pnum_clobbers == NULL
              || pattern260 (x3, TImode, QImode) != 0
              || !
#line 1022 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
            return -1;
          *pnum_clobbers = 1;
          return 554; /* *ashrti3_doubleword */

        case QImode:
          if (pattern3 (x3, pnum_clobbers, QImode) != 0
              || !
#line 10606 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ASHIFTRT, QImode, operands)))
            return -1;
          *pnum_clobbers = 1;
          return 573; /* *ashrqi3_1 */

        case HImode:
          if (pattern3 (x3, pnum_clobbers, HImode) != 0
              || !
#line 10606 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ASHIFTRT, HImode, operands)))
            return -1;
          *pnum_clobbers = 1;
          return 575; /* *ashrhi3_1 */

        case V4HImode:
          if (pattern260 (x3, V4HImode, DImode) != 0
              || !
#line 935 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX))
            return -1;
          return 1170; /* mmx_ashrv4hi3 */

        case V2SImode:
          if (pattern260 (x3, V2SImode, DImode) != 0
              || !
#line 935 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX))
            return -1;
          return 1171; /* mmx_ashrv2si3 */

        case V16HImode:
          if (!register_operand (operands[0], V16HImode)
              || GET_MODE (x3) != V16HImode)
            return -1;
          if (nonmemory_operand (operands[2], DImode))
            {
              if (register_operand (operands[1], V16HImode)
                  && (
#line 10489 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2) && 
#line 385 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
                return 3132; /* ashrv16hi3 */
              if (nonimmediate_operand (operands[1], V16HImode)
                  && (
#line 10508 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 416 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
                return 3136; /* *ashrv16hi3 */
            }
          if (!register_operand (operands[1], V16HImode)
              || !nonimmediate_operand (operands[2], V16HImode)
              || !(
#line 18464 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4520; /* avx512vl_ashrvv16hi */

        case V8HImode:
          if (!register_operand (operands[0], V8HImode)
              || GET_MODE (x3) != V8HImode)
            return -1;
          if (nonmemory_operand (operands[2], DImode))
            {
              if (register_operand (operands[1], V8HImode)
                  && 
#line 10489 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))
                return 3133; /* ashrv8hi3 */
              if (nonimmediate_operand (operands[1], V8HImode)
                  && (
#line 10508 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 416 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
                return 3138; /* *ashrv8hi3 */
            }
          if (!register_operand (operands[1], V8HImode)
              || !nonimmediate_operand (operands[2], V8HImode)
              || !(
#line 18464 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4518; /* avx512vl_ashrvv8hi */

        case V8SImode:
          if (!register_operand (operands[0], V8SImode)
              || GET_MODE (x3) != V8SImode)
            return -1;
          if (nonmemory_operand (operands[2], DImode))
            {
              if (register_operand (operands[1], V8SImode)
                  && (
#line 10489 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2) && 
#line 386 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
                return 3134; /* ashrv8si3 */
              if (nonimmediate_operand (operands[1], V8SImode)
                  && 
#line 10508 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return 3140; /* *ashrv8si3 */
            }
          if (!register_operand (operands[1], V8SImode)
              || !nonimmediate_operand (operands[2], V8SImode)
              || !
#line 18453 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1))
            return -1;
          return 4508; /* avx2_ashrvv8si */

        case V4SImode:
          if (!register_operand (operands[0], V4SImode)
              || GET_MODE (x3) != V4SImode)
            return -1;
          if (nonmemory_operand (operands[2], DImode))
            {
              if (register_operand (operands[1], V4SImode)
                  && 
#line 10489 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))
                return 3135; /* ashrv4si3 */
              if (nonimmediate_operand (operands[1], V4SImode)
                  && 
#line 10508 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return 3142; /* *ashrv4si3 */
            }
          if (!register_operand (operands[1], V4SImode)
              || !nonimmediate_operand (operands[2], V4SImode)
              || !
#line 18453 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1))
            return -1;
          return 4506; /* avx2_ashrvv4si */

        case V2DImode:
          if (!register_operand (operands[0], V2DImode)
              || GET_MODE (x3) != V2DImode)
            return -1;
          if (nonimmediate_operand (operands[1], V2DImode)
              && nonmemory_operand (operands[2], DImode)
              && 
#line 10522 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return 3144; /* *ashrv2di3 */
          if (!register_operand (operands[1], V2DImode)
              || !nonimmediate_operand (operands[2], V2DImode)
              || !(
#line 18453 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1) && 
#line 347 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4512; /* avx2_ashrvv2di */

        case V32HImode:
          if (!register_operand (operands[0], V32HImode)
              || GET_MODE (x3) != V32HImode)
            return -1;
          if (nonimmediate_operand (operands[1], V32HImode)
              && nonmemory_operand (operands[2], DImode)
              && (
#line 10536 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 411 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return 3146; /* ashrv32hi3 */
          if (!register_operand (operands[1], V32HImode)
              || !nonimmediate_operand (operands[2], V32HImode)
              || !
#line 18464 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
            return -1;
          return 4522; /* avx512bw_ashrvv32hi */

        case V4DImode:
          if (!register_operand (operands[0], V4DImode)
              || GET_MODE (x3) != V4DImode)
            return -1;
          if (nonimmediate_operand (operands[1], V4DImode)
              && nonmemory_operand (operands[2], DImode)
              && (
#line 10536 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 412 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return 3148; /* ashrv4di3 */
          if (!register_operand (operands[1], V4DImode)
              || !nonimmediate_operand (operands[2], V4DImode)
              || !(
#line 18453 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1) && 
#line 347 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4514; /* avx2_ashrvv4di */

        case V16SImode:
          if (!register_operand (operands[0], V16SImode)
              || GET_MODE (x3) != V16SImode)
            return -1;
          if (nonimmediate_operand (operands[1], V16SImode)
              && nonmemory_operand (operands[2], DImode)
              && 
#line 10536 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return 3150; /* ashrv16si3 */
          if (!register_operand (operands[1], V16SImode)
              || !nonimmediate_operand (operands[2], V16SImode)
              || !(
#line 18453 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1) && 
#line 346 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 4510; /* avx512f_ashrvv16si */

        case V8DImode:
          if (!register_operand (operands[0], V8DImode)
              || GET_MODE (x3) != V8DImode)
            return -1;
          if (nonimmediate_operand (operands[1], V8DImode)
              && nonmemory_operand (operands[2], DImode)
              && 
#line 10536 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return 3152; /* ashrv8di3 */
          if (!register_operand (operands[1], V8DImode)
              || !nonimmediate_operand (operands[2], V8DImode)
              || !(
#line 18453 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1) && 
#line 347 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 4516; /* avx512f_ashrvv8di */

        default:
          return -1;
        }

    case STRICT_LOW_PART:
      if (pattern4 (x1, pnum_clobbers) != 0
          || !
#line 10629 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_REG_STALL
    || (operands[1] == const1_rtx
	&& TARGET_SHIFT1))))
        return -1;
      *pnum_clobbers = 1;
      return 577; /* *ashrqi3_1_slp */

    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, x11, x12, x13, x14;
  int res ATTRIBUTE_UNUSED;
  if (pnum_clobbers == NULL)
    return -1;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  operands[0] = x3;
  if (!bt_comparison_operator (operands[0], VOIDmode))
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != ZERO_EXTRACT)
    return -1;
  x5 = XEXP (x4, 1);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x6 = XEXP (x2, 1);
  if (GET_CODE (x6) != LABEL_REF)
    return -1;
  x7 = XEXP (x2, 2);
  if (GET_CODE (x7) != PC)
    return -1;
  x8 = XEXP (x1, 0);
  if (GET_CODE (x8) != PC)
    return -1;
  x9 = XEXP (x4, 0);
  operands[1] = x9;
  x10 = XEXP (x4, 2);
  switch (GET_CODE (x10))
    {
    case CONST_INT:
    case CONST_WIDE_INT:
    case CONST_FIXED:
    case CONST_DOUBLE:
    case CONST_VECTOR:
    case CONST:
    case REG:
    case SUBREG:
    case LABEL_REF:
    case SYMBOL_REF:
    case HIGH:
      operands[2] = x10;
      if (!nonmemory_operand (operands[2], SImode))
        return -1;
      x11 = XEXP (x3, 1);
      if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x12 = XEXP (x6, 0);
      operands[3] = x12;
      switch (GET_MODE (x4))
        {
        case SImode:
          if (!register_operand (operands[1], SImode)
              || !
#line 11231 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_USE_BT || optimize_function_for_size_p (cfun))
   && (CONST_INT_P (operands[2])
       ? (INTVAL (operands[2]) < GET_MODE_BITSIZE (SImode)
	  && INTVAL (operands[2])
	       >= (optimize_function_for_size_p (cfun) ? 8 : 32))
       : register_operand (operands[2], SImode))
   && can_create_pseudo_p ()))
            return -1;
          *pnum_clobbers = 1;
          return 624; /* *jcc_btsi */

        case DImode:
          if (!register_operand (operands[1], DImode)
              || !(
#line 11231 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_USE_BT || optimize_function_for_size_p (cfun))
   && (CONST_INT_P (operands[2])
       ? (INTVAL (operands[2]) < GET_MODE_BITSIZE (DImode)
	  && INTVAL (operands[2])
	       >= (optimize_function_for_size_p (cfun) ? 8 : 32))
       : register_operand (operands[2], SImode))
   && can_create_pseudo_p ()) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          *pnum_clobbers = 1;
          return 625; /* *jcc_btdi */

        default:
          return -1;
        }

    case ZERO_EXTEND:
      if (GET_MODE (x10) != SImode)
        return -1;
      x11 = XEXP (x3, 1);
      if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x13 = XEXP (x10, 0);
      operands[2] = x13;
      if (!register_operand (operands[2], QImode))
        return -1;
      x12 = XEXP (x6, 0);
      operands[3] = x12;
      switch (GET_MODE (x4))
        {
        case SImode:
          if (!register_operand (operands[1], SImode)
              || !
#line 11268 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_USE_BT || optimize_function_for_size_p (cfun))
   && can_create_pseudo_p ()))
            return -1;
          *pnum_clobbers = 1;
          return 626; /* *jcc_btsi_1 */

        case DImode:
          if (!register_operand (operands[1], DImode)
              || !(
#line 11268 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_USE_BT || optimize_function_for_size_p (cfun))
   && can_create_pseudo_p ()) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          *pnum_clobbers = 1;
          return 627; /* *jcc_btdi_1 */

        default:
          return -1;
        }

    case AND:
      if (GET_MODE (x10) != SImode)
        return -1;
      x13 = XEXP (x10, 0);
      operands[2] = x13;
      if (!register_operand (operands[2], SImode))
        return -1;
      x14 = XEXP (x10, 1);
      operands[3] = x14;
      if (!const_int_operand (operands[3], VOIDmode))
        return -1;
      x12 = XEXP (x6, 0);
      operands[4] = x12;
      switch (GET_MODE (x4))
        {
        case SImode:
          if (!register_operand (operands[1], SImode)
              || !
#line 11302 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_USE_BT || optimize_function_for_size_p (cfun))
   && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
      == GET_MODE_BITSIZE (SImode)-1
   && can_create_pseudo_p ()))
            return -1;
          *pnum_clobbers = 1;
          return 628; /* *jcc_btsi_mask */

        case DImode:
          if (!register_operand (operands[1], DImode)
              || !(
#line 11302 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_USE_BT || optimize_function_for_size_p (cfun))
   && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
      == GET_MODE_BITSIZE (DImode)-1
   && can_create_pseudo_p ()) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          *pnum_clobbers = 1;
          return 629; /* *jcc_btdi_mask */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

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, x9;
  rtx x10, x11;
  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;
  x6 = XEXP (x3, 0);
  operands[2] = x6;
  x7 = XEXP (x2, 1);
  switch (GET_CODE (x7))
    {
    case ROTATE:
      x8 = XEXP (x2, 2);
      if (GET_CODE (x8) != ROTATERT)
        return -1;
      x9 = XEXP (x8, 1);
      if (GET_CODE (x9) != NEG)
        return -1;
      x10 = XEXP (x7, 0);
      operands[1] = x10;
      x11 = XEXP (x7, 1);
      if (!rtx_equal_p (x11, operands[2]))
        return -1;
      switch (pattern522 (x2))
        {
        case 0:
          if (!
#line 16564 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
            return -1;
          return 4078; /* xop_vrotlv16qi3 */

        case 1:
          if (!
#line 16564 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
            return -1;
          return 4079; /* xop_vrotlv8hi3 */

        case 2:
          if (!
#line 16564 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
            return -1;
          return 4080; /* xop_vrotlv4si3 */

        case 3:
          if (!
#line 16564 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
            return -1;
          return 4081; /* xop_vrotlv2di3 */

        default:
          return -1;
        }

    case ASHIFT:
      x10 = XEXP (x7, 0);
      operands[1] = x10;
      x11 = XEXP (x7, 1);
      if (!rtx_equal_p (x11, operands[2]))
        return -1;
      x8 = XEXP (x2, 2);
      switch (GET_CODE (x8))
        {
        case ASHIFTRT:
          x9 = XEXP (x8, 1);
          if (GET_CODE (x9) != NEG)
            return -1;
          switch (pattern522 (x2))
            {
            case 0:
              if (!
#line 16739 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                return -1;
              return 4082; /* xop_shav16qi3 */

            case 1:
              if (!
#line 16739 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                return -1;
              return 4083; /* xop_shav8hi3 */

            case 2:
              if (!
#line 16739 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                return -1;
              return 4084; /* xop_shav4si3 */

            case 3:
              if (!
#line 16739 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                return -1;
              return 4085; /* xop_shav2di3 */

            default:
              return -1;
            }

        case LSHIFTRT:
          x9 = XEXP (x8, 1);
          if (GET_CODE (x9) != NEG)
            return -1;
          switch (pattern522 (x2))
            {
            case 0:
              if (!
#line 16758 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                return -1;
              return 4086; /* xop_shlv16qi3 */

            case 1:
              if (!
#line 16758 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                return -1;
              return 4087; /* xop_shlv8hi3 */

            case 2:
              if (!
#line 16758 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                return -1;
              return 4088; /* xop_shlv4si3 */

            case 3:
              if (!
#line 16758 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                return -1;
              return 4089; /* xop_shlv2di3 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_59 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, 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;
  operands[1] = x3;
  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
          || !ix86_comparison_operator (operands[1], VOIDmode))
        return -1;
      x8 = XEXP (x5, 0);
      operands[0] = x8;
      return 637; /* *jcc_1 */

    case PC:
      x6 = XEXP (x2, 2);
      if (GET_CODE (x6) != LABEL_REF)
        return -1;
      x7 = XEXP (x1, 0);
      if (GET_CODE (x7) != PC
          || !ix86_comparison_operator (operands[1], VOIDmode))
        return -1;
      x9 = XEXP (x6, 0);
      operands[0] = x9;
      return 638; /* *jcc_2 */

    case REG:
    case SUBREG:
    case MEM:
      operands[2] = x5;
      x7 = XEXP (x1, 0);
      operands[0] = x7;
      x6 = XEXP (x2, 2);
      operands[3] = x6;
      switch (GET_MODE (operands[0]))
        {
        case HImode:
          if (pattern520 (x2, HImode) != 0
              || !
#line 17254 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_CMOVE && !(MEM_P (operands[2]) && MEM_P (operands[3]))))
            return -1;
          return 983; /* *movhicc_noc */

        case QImode:
          if (pattern519 (x2) != 0
              || !
#line 17305 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_CMOVE && !TARGET_PARTIAL_REG_STALL))
            return -1;
          return 987; /* *movqicc_noc */

        case XFmode:
          if (!register_operand (operands[0], XFmode)
              || GET_MODE (x2) != XFmode
              || !fcmov_comparison_operator (operands[1], VOIDmode)
              || !register_operand (operands[2], XFmode)
              || !register_operand (operands[3], XFmode)
              || !
#line 17404 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_CMOVE))
            return -1;
          return 988; /* *movxfcc_1 */

        case DFmode:
          if (!register_operand (operands[0], DFmode)
              || pattern609 (x2, DFmode) != 0
              || !
#line 17419 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_CMOVE
   && !(MEM_P (operands[2]) && MEM_P (operands[3]))))
            return -1;
          return 989; /* *movdfcc_1 */

        case SFmode:
          if (!register_operand (operands[0], SFmode)
              || pattern609 (x2, SFmode) != 0
              || !
#line 17454 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_CMOVE
   && !(MEM_P (operands[2]) && MEM_P (operands[3]))))
            return -1;
          return 990; /* *movsfcc_1_387 */

        default:
          return -1;
        }

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  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:
          res = recog_57 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

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

        default:
          break;
        }
      x4 = XEXP (x3, 0);
      switch (GET_CODE (x4))
        {
        case REG:
        case SUBREG:
          if (GET_CODE (x4) == REG
              && REGNO (x4) == 17)
            {
              res = recog_59 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
            }
          if (pnum_clobbers == NULL)
            return -1;
          operands[1] = x4;
          x5 = XEXP (x1, 0);
          if (GET_CODE (x5) != PC)
            return -1;
          operands[0] = x3;
          x6 = XEXP (x3, 1);
          operands[2] = x6;
          switch (GET_CODE (operands[2]))
            {
            case CONST_INT:
            case CONST_WIDE_INT:
            case CONST_DOUBLE:
            case CONST_VECTOR:
              if (!ix86_fp_comparison_operator (operands[0], CCFPmode))
                return -1;
              x7 = XEXP (x2, 1);
              switch (GET_CODE (x7))
                {
                case LABEL_REF:
                  x8 = XEXP (x2, 2);
                  if (GET_CODE (x8) != PC)
                    return -1;
                  x9 = XEXP (x7, 0);
                  operands[3] = x9;
                  switch (pattern612 ())
                    {
                    case 0:
                      if (!
#line 11594 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE))
                        return -1;
                      *pnum_clobbers = 3;
                      return 639; /* *jccsf_0_i387 */

                    case 1:
                      if (!
#line 11594 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE))
                        return -1;
                      *pnum_clobbers = 3;
                      return 640; /* *jccdf_0_i387 */

                    case 2:
                      if (!
#line 11594 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE))
                        return -1;
                      *pnum_clobbers = 3;
                      return 641; /* *jccxf_0_i387 */

                    default:
                      return -1;
                    }

                case PC:
                  x8 = XEXP (x2, 2);
                  if (GET_CODE (x8) != LABEL_REF)
                    return -1;
                  x10 = XEXP (x8, 0);
                  operands[3] = x10;
                  switch (pattern612 ())
                    {
                    case 0:
                      if (!
#line 11607 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE))
                        return -1;
                      *pnum_clobbers = 3;
                      return 642; /* *jccsf_0_r_i387 */

                    case 1:
                      if (!
#line 11607 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE))
                        return -1;
                      *pnum_clobbers = 3;
                      return 643; /* *jccdf_0_r_i387 */

                    case 2:
                      if (!
#line 11607 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE))
                        return -1;
                      *pnum_clobbers = 3;
                      return 644; /* *jccxf_0_r_i387 */

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            case REG:
            case SUBREG:
            case MEM:
              x7 = XEXP (x2, 1);
              switch (GET_CODE (x7))
                {
                case LABEL_REF:
                  x8 = XEXP (x2, 2);
                  if (GET_CODE (x8) != PC)
                    return -1;
                  x9 = XEXP (x7, 0);
                  operands[3] = x9;
                  switch (pattern553 ())
                    {
                    case 0:
                      if (!
#line 11620 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE))
                        return -1;
                      *pnum_clobbers = 3;
                      return 645; /* *jccxf_i387 */

                    case 1:
                      if (!
#line 11646 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE))
                        return -1;
                      *pnum_clobbers = 3;
                      return 647; /* *jccsf_i387 */

                    case 2:
                      if (!
#line 11646 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE))
                        return -1;
                      *pnum_clobbers = 3;
                      return 648; /* *jccdf_i387 */

                    case 3:
                      if (!
#line 11672 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE))
                        return -1;
                      *pnum_clobbers = 3;
                      return 651; /* *jccusf_i387 */

                    case 4:
                      if (!
#line 11672 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE))
                        return -1;
                      *pnum_clobbers = 3;
                      return 652; /* *jccudf_i387 */

                    case 5:
                      if (!
#line 11672 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE))
                        return -1;
                      *pnum_clobbers = 3;
                      return 653; /* *jccuxf_i387 */

                    default:
                      return -1;
                    }

                case PC:
                  x8 = XEXP (x2, 2);
                  if (GET_CODE (x8) != LABEL_REF)
                    return -1;
                  x10 = XEXP (x8, 0);
                  operands[3] = x10;
                  switch (pattern553 ())
                    {
                    case 0:
                      if (!
#line 11633 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE))
                        return -1;
                      *pnum_clobbers = 3;
                      return 646; /* *jccxf_r_i387 */

                    case 1:
                      if (!
#line 11659 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE))
                        return -1;
                      *pnum_clobbers = 3;
                      return 649; /* *jccsf_r_i387 */

                    case 2:
                      if (!
#line 11659 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE))
                        return -1;
                      *pnum_clobbers = 3;
                      return 650; /* *jccdf_r_i387 */

                    case 3:
                      if (!
#line 11685 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE))
                        return -1;
                      *pnum_clobbers = 3;
                      return 654; /* *jccusf_r_i387 */

                    case 4:
                      if (!
#line 11685 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE))
                        return -1;
                      *pnum_clobbers = 3;
                      return 655; /* *jccudf_r_i387 */

                    case 5:
                      if (!
#line 11685 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE))
                        return -1;
                      *pnum_clobbers = 3;
                      return 656; /* *jccuxf_r_i387 */

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case FLOAT:
          if (pnum_clobbers == NULL)
            return -1;
          operands[1] = x4;
          x5 = XEXP (x1, 0);
          if (GET_CODE (x5) != PC)
            return -1;
          operands[0] = x3;
          if (!ix86_swapped_fp_comparison_operator (operands[0], CCFPmode))
            return -1;
          x11 = XEXP (x4, 0);
          operands[2] = x11;
          x6 = XEXP (x3, 1);
          operands[3] = x6;
          x7 = XEXP (x2, 1);
          switch (GET_CODE (x7))
            {
            case LABEL_REF:
              x8 = XEXP (x2, 2);
              if (GET_CODE (x8) != PC)
                return -1;
              x9 = XEXP (x7, 0);
              operands[4] = x9;
              switch (GET_MODE (operands[1]))
                {
                case SFmode:
                  switch (pattern668 (SFmode))
                    {
                    case 0:
                      if (!
#line 11742 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE
   && (TARGET_USE_HIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                        return -1;
                      *pnum_clobbers = 3;
                      return 657; /* *jccsf_hi_i387 */

                    case 1:
                      if (!
#line 11742 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE
   && (TARGET_USE_SIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                        return -1;
                      *pnum_clobbers = 3;
                      return 660; /* *jccsf_si_i387 */

                    default:
                      return -1;
                    }

                case DFmode:
                  switch (pattern668 (DFmode))
                    {
                    case 0:
                      if (!
#line 11742 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE
   && (TARGET_USE_HIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                        return -1;
                      *pnum_clobbers = 3;
                      return 658; /* *jccdf_hi_i387 */

                    case 1:
                      if (!
#line 11742 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE
   && (TARGET_USE_SIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                        return -1;
                      *pnum_clobbers = 3;
                      return 661; /* *jccdf_si_i387 */

                    default:
                      return -1;
                    }

                case XFmode:
                  switch (pattern668 (XFmode))
                    {
                    case 0:
                      if (!
#line 11742 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE
   && (TARGET_USE_HIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                        return -1;
                      *pnum_clobbers = 3;
                      return 659; /* *jccxf_hi_i387 */

                    case 1:
                      if (!
#line 11742 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE
   && (TARGET_USE_SIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                        return -1;
                      *pnum_clobbers = 3;
                      return 662; /* *jccxf_si_i387 */

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            case PC:
              x8 = XEXP (x2, 2);
              if (GET_CODE (x8) != LABEL_REF)
                return -1;
              x10 = XEXP (x8, 0);
              operands[4] = x10;
              switch (GET_MODE (operands[1]))
                {
                case SFmode:
                  switch (pattern668 (SFmode))
                    {
                    case 0:
                      if (!
#line 11759 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE
   && (TARGET_USE_HIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                        return -1;
                      *pnum_clobbers = 3;
                      return 663; /* *jccsf_hi_r_i387 */

                    case 1:
                      if (!
#line 11759 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE
   && (TARGET_USE_SIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                        return -1;
                      *pnum_clobbers = 3;
                      return 666; /* *jccsf_si_r_i387 */

                    default:
                      return -1;
                    }

                case DFmode:
                  switch (pattern668 (DFmode))
                    {
                    case 0:
                      if (!
#line 11759 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE
   && (TARGET_USE_HIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                        return -1;
                      *pnum_clobbers = 3;
                      return 664; /* *jccdf_hi_r_i387 */

                    case 1:
                      if (!
#line 11759 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE
   && (TARGET_USE_SIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                        return -1;
                      *pnum_clobbers = 3;
                      return 667; /* *jccdf_si_r_i387 */

                    default:
                      return -1;
                    }

                case XFmode:
                  switch (pattern668 (XFmode))
                    {
                    case 0:
                      if (!
#line 11759 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE
   && (TARGET_USE_HIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                        return -1;
                      *pnum_clobbers = 3;
                      return 665; /* *jccxf_hi_r_i387 */

                    case 1:
                      if (!
#line 11759 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE
   && (TARGET_USE_SIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                        return -1;
                      *pnum_clobbers = 3;
                      return 668; /* *jccxf_si_r_i387 */

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    case REG:
    case SUBREG:
    case MEM:
      x5 = XEXP (x1, 0);
      operands[0] = x5;
      switch (GET_MODE (operands[0]))
        {
        case SFmode:
          if (pattern126 (x2, SFmode) != 0
              || !
#line 17527 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_XOP))
            return -1;
          return 991; /* *xop_pcmov_sf */

        case DFmode:
          if (pattern126 (x2, DFmode) != 0
              || !
#line 17527 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_XOP))
            return -1;
          return 992; /* *xop_pcmov_df */

        case V32QImode:
          if (pattern127 (x2, V32QImode) != 0
              || !(
#line 16176 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP) && 
#line 190 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 4035; /* xop_pcmov_v32qi256 */

        case V16QImode:
          if (pattern127 (x2, V16QImode) != 0
              || !
#line 16176 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
            return -1;
          return 4036; /* xop_pcmov_v16qi */

        case V16HImode:
          if (pattern127 (x2, V16HImode) != 0
              || !(
#line 16176 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP) && 
#line 191 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 4037; /* xop_pcmov_v16hi256 */

        case V8HImode:
          if (pattern127 (x2, V8HImode) != 0
              || !
#line 16176 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
            return -1;
          return 4038; /* xop_pcmov_v8hi */

        case V16SImode:
          if (pattern127 (x2, V16SImode) != 0
              || !(
#line 16176 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP) && 
#line 192 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 4039; /* xop_pcmov_v16si512 */

        case V8SImode:
          if (pattern127 (x2, V8SImode) != 0
              || !(
#line 16176 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP) && 
#line 192 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 4040; /* xop_pcmov_v8si256 */

        case V4SImode:
          if (pattern127 (x2, V4SImode) != 0
              || !
#line 16176 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
            return -1;
          return 4041; /* xop_pcmov_v4si */

        case V8DImode:
          if (pattern127 (x2, V8DImode) != 0
              || !(
#line 16176 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP) && 
#line 193 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 4042; /* xop_pcmov_v8di512 */

        case V4DImode:
          if (pattern127 (x2, V4DImode) != 0
              || !(
#line 16176 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP) && 
#line 193 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 4043; /* xop_pcmov_v4di256 */

        case V2DImode:
          if (pattern127 (x2, V2DImode) != 0
              || !
#line 16176 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
            return -1;
          return 4044; /* xop_pcmov_v2di */

        case V16SFmode:
          if (pattern127 (x2, V16SFmode) != 0
              || !(
#line 16176 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP) && 
#line 194 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 4045; /* xop_pcmov_v16sf512 */

        case V8SFmode:
          if (pattern127 (x2, V8SFmode) != 0
              || !(
#line 16176 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP) && 
#line 194 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 4046; /* xop_pcmov_v8sf256 */

        case V4SFmode:
          if (pattern127 (x2, V4SFmode) != 0
              || !
#line 16176 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
            return -1;
          return 4047; /* xop_pcmov_v4sf */

        case V8DFmode:
          if (pattern127 (x2, V8DFmode) != 0
              || !(
#line 16176 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP) && 
#line 195 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 4048; /* xop_pcmov_v8df512 */

        case V4DFmode:
          if (pattern127 (x2, V4DFmode) != 0
              || !(
#line 16176 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP) && 
#line 195 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 4049; /* xop_pcmov_v4df256 */

        case V2DFmode:
          if (pattern127 (x2, V2DFmode) != 0
              || !(
#line 16176 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP) && 
#line 195 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return -1;
          return 4050; /* xop_pcmov_v2df */

        default:
          return -1;
        }

    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;
  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 SFmode:
      if (pattern320 (SFmode) != 0
          || !
#line 11478 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SSE_FLOAT_MODE_P (SFmode)))
        return -1;
      return 635; /* setcc_sf_sse */

    case DFmode:
      if (pattern320 (DFmode) != 0
          || !
#line 11478 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SSE_FLOAT_MODE_P (DFmode)))
        return -1;
      return 636; /* setcc_df_sse */

    case V8SFmode:
      if (pattern321 (V8SFmode) != 0)
        return -1;
      if ((
#line 2626 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && GET_RTX_CLASS (GET_CODE (operands[3])) == RTX_COMM_COMPARE) && 
#line 221 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
        return 1671; /* *avx_maskcmpv8sf3_comm */
      if (!(
#line 2642 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 221 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
        return -1;
      return 1675; /* avx_maskcmpv8sf3 */

    case V4SFmode:
      if (pattern321 (V4SFmode) != 0)
        return -1;
      if (
#line 2626 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && GET_RTX_CLASS (GET_CODE (operands[3])) == RTX_COMM_COMPARE))
        return 1672; /* *sse_maskcmpv4sf3_comm */
      if (!
#line 2642 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
        return -1;
      return 1676; /* sse_maskcmpv4sf3 */

    case V4DFmode:
      if (pattern321 (V4DFmode) != 0)
        return -1;
      if ((
#line 2626 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && GET_RTX_CLASS (GET_CODE (operands[3])) == RTX_COMM_COMPARE) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
        return 1673; /* *avx_maskcmpv4df3_comm */
      if (!(
#line 2642 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
        return -1;
      return 1677; /* avx_maskcmpv4df3 */

    case V2DFmode:
      if (pattern321 (V2DFmode) != 0)
        return -1;
      if ((
#line 2626 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && GET_RTX_CLASS (GET_CODE (operands[3])) == RTX_COMM_COMPARE) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
        return 1674; /* *sse2_maskcmpv2df3_comm */
      if (!(
#line 2642 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
        return -1;
      return 1678; /* sse2_maskcmpv2df3 */

    case HImode:
      if (!register_operand (operands[0], HImode)
          || !sse_comparison_operator (operands[3], HImode)
          || !register_operand (operands[1], V16SFmode)
          || !nonimmediate_operand (operands[2], V16SFmode)
          || !
#line 2776 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 1757; /* avx512f_maskcmpv16sf3 */

    case QImode:
      if (!register_operand (operands[0], QImode)
          || !sse_comparison_operator (operands[3], QImode))
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case V8SFmode:
          if (!register_operand (operands[1], V8SFmode)
              || !nonimmediate_operand (operands[2], V8SFmode)
              || !(
#line 2776 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 1758; /* avx512f_maskcmpv8sf3 */

        case V4SFmode:
          if (!register_operand (operands[1], V4SFmode)
              || !nonimmediate_operand (operands[2], V4SFmode)
              || !
#line 2776 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 1759; /* avx512f_maskcmpv4sf3 */

        case V8DFmode:
          if (!register_operand (operands[1], V8DFmode)
              || !nonimmediate_operand (operands[2], V8DFmode)
              || !
#line 2776 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 1760; /* avx512f_maskcmpv8df3 */

        case V4DFmode:
          if (!register_operand (operands[1], V4DFmode)
              || !nonimmediate_operand (operands[2], V4DFmode)
              || !(
#line 2776 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 1761; /* avx512f_maskcmpv4df3 */

        case V2DFmode:
          if (!register_operand (operands[1], V2DFmode)
              || !nonimmediate_operand (operands[2], V2DFmode)
              || !(
#line 2776 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return -1;
          return 1762; /* avx512f_maskcmpv2df3 */

        default:
          return -1;
        }

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  operands[2] = x3;
  switch (GET_CODE (x2))
    {
    case EQ:
      switch (GET_MODE (operands[0]))
        {
        case V2SImode:
          if (!register_operand (operands[0], V2SImode)
              || GET_MODE (x2) != V2SImode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V2SFmode:
              if (!nonimmediate_operand (operands[1], V2SFmode)
                  || !nonimmediate_operand (operands[2], V2SFmode)
                  || !
#line 473 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_3DNOW && ix86_binary_operator_ok (EQ, V2SFmode, operands)))
                return -1;
              return 1132; /* *mmx_eqv2sf3 */

            case V2SImode:
              if (!nonimmediate_operand (operands[1], V2SImode)
                  || !nonimmediate_operand (operands[2], V2SImode)
                  || !
#line 977 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX && ix86_binary_operator_ok (EQ, V2SImode, operands)))
                return -1;
              return 1180; /* *mmx_eqv2si3 */

            default:
              return -1;
            }

        case V8QImode:
          if (pattern7 (x2, V8QImode) != 0
              || !
#line 977 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX && ix86_binary_operator_ok (EQ, V8QImode, operands)))
            return -1;
          return 1178; /* *mmx_eqv8qi3 */

        case V4HImode:
          if (pattern7 (x2, V4HImode) != 0
              || !
#line 977 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX && ix86_binary_operator_ok (EQ, V4HImode, operands)))
            return -1;
          return 1179; /* *mmx_eqv4hi3 */

        case V32QImode:
          if (pattern7 (x2, V32QImode) != 0
              || !
#line 10972 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && ix86_binary_operator_ok (EQ, V32QImode, operands)))
            return -1;
          return 3372; /* *avx2_eqv32qi3 */

        case V16HImode:
          if (pattern7 (x2, V16HImode) != 0
              || !
#line 10972 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && ix86_binary_operator_ok (EQ, V16HImode, operands)))
            return -1;
          return 3373; /* *avx2_eqv16hi3 */

        case V8SImode:
          if (pattern7 (x2, V8SImode) != 0
              || !
#line 10972 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && ix86_binary_operator_ok (EQ, V8SImode, operands)))
            return -1;
          return 3374; /* *avx2_eqv8si3 */

        case V4DImode:
          if (pattern7 (x2, V4DImode) != 0
              || !
#line 10972 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && ix86_binary_operator_ok (EQ, V4DImode, operands)))
            return -1;
          return 3375; /* *avx2_eqv4di3 */

        case V2DImode:
          if (pattern8 (x2, V2DImode) != 0
              || !
#line 11028 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && ix86_binary_operator_ok (EQ, V2DImode, operands)))
            return -1;
          return 3400; /* *sse4_1_eqv2di3 */

        case V16QImode:
          if (pattern8 (x2, V16QImode) != 0
              || !
#line 11044 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && !TARGET_XOP
   && ix86_binary_operator_ok (EQ, V16QImode, operands)))
            return -1;
          return 3401; /* *sse2_eqv16qi3 */

        case V8HImode:
          if (pattern8 (x2, V8HImode) != 0
              || !
#line 11044 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && !TARGET_XOP
   && ix86_binary_operator_ok (EQ, V8HImode, operands)))
            return -1;
          return 3402; /* *sse2_eqv8hi3 */

        case V4SImode:
          if (pattern8 (x2, V4SImode) != 0
              || !
#line 11044 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && !TARGET_XOP
   && ix86_binary_operator_ok (EQ, V4SImode, operands)))
            return -1;
          return 3403; /* *sse2_eqv4si3 */

        default:
          return -1;
        }

    case GT:
      switch (GET_MODE (operands[0]))
        {
        case V2SImode:
          if (!register_operand (operands[0], V2SImode)
              || GET_MODE (x2) != V2SImode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V2SFmode:
              if (!register_operand (operands[1], V2SFmode)
                  || !nonimmediate_operand (operands[2], V2SFmode)
                  || !
#line 483 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_3DNOW))
                return -1;
              return 1133; /* mmx_gtv2sf3 */

            case V2SImode:
              if (!register_operand (operands[1], V2SImode)
                  || !nonimmediate_operand (operands[2], V2SImode)
                  || !
#line 987 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX))
                return -1;
              return 1183; /* mmx_gtv2si3 */

            default:
              return -1;
            }

        case V8QImode:
          if (pattern9 (x2, V8QImode) != 0
              || !
#line 987 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX))
            return -1;
          return 1181; /* mmx_gtv8qi3 */

        case V4HImode:
          if (pattern9 (x2, V4HImode) != 0
              || !
#line 987 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX))
            return -1;
          return 1182; /* mmx_gtv4hi3 */

        case V2DImode:
          if (pattern268 (x2, V2DImode) != 0
              || !
#line 11076 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_2))
            return -1;
          return 3404; /* sse4_2_gtv2di3 */

        case V32QImode:
          if (pattern9 (x2, V32QImode) != 0
              || !
#line 11092 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))
            return -1;
          return 3405; /* avx2_gtv32qi3 */

        case V16HImode:
          if (pattern9 (x2, V16HImode) != 0
              || !
#line 11092 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))
            return -1;
          return 3406; /* avx2_gtv16hi3 */

        case V8SImode:
          if (pattern9 (x2, V8SImode) != 0
              || !
#line 11092 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))
            return -1;
          return 3407; /* avx2_gtv8si3 */

        case V4DImode:
          if (pattern9 (x2, V4DImode) != 0
              || !
#line 11092 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))
            return -1;
          return 3408; /* avx2_gtv4di3 */

        case V16QImode:
          if (pattern268 (x2, V16QImode) != 0
              || !
#line 11128 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && !TARGET_XOP))
            return -1;
          return 3433; /* sse2_gtv16qi3 */

        case V8HImode:
          if (pattern268 (x2, V8HImode) != 0
              || !
#line 11128 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && !TARGET_XOP))
            return -1;
          return 3434; /* sse2_gtv8hi3 */

        case V4SImode:
          if (pattern268 (x2, V4SImode) != 0
              || !
#line 11128 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && !TARGET_XOP))
            return -1;
          return 3435; /* sse2_gtv4si3 */

        default:
          return -1;
        }

    case GE:
      if (GET_MODE (x2) != V2SImode
          || !register_operand (operands[0], V2SImode)
          || !register_operand (operands[1], V2SFmode)
          || !nonimmediate_operand (operands[2], V2SFmode)
          || !
#line 493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_3DNOW))
        return -1;
      return 1134; /* mmx_gev2sf3 */

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  operands[3] = x2;
  res = recog_61 (x1, insn, pnum_clobbers);
  if (res >= 0)
    return res;
  switch (GET_CODE (x2))
    {
    case NE:
    case EQ:
    case GE:
    case GT:
    case LE:
    case LT:
      x3 = XEXP (x2, 0);
      operands[1] = x3;
      res = recog_62 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      operands[1] = x2;
      operands[2] = x3;
      x4 = XEXP (x2, 1);
      operands[3] = x4;
      switch (GET_MODE (operands[0]))
        {
        case V16QImode:
          if (pattern364 (V16QImode) != 0
              || !
#line 16877 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
            return -1;
          return 4098; /* xop_maskcmpv16qi3 */

        case V8HImode:
          if (pattern364 (V8HImode) != 0
              || !
#line 16877 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
            return -1;
          return 4099; /* xop_maskcmpv8hi3 */

        case V4SImode:
          if (pattern364 (V4SImode) != 0
              || !
#line 16877 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
            return -1;
          return 4100; /* xop_maskcmpv4si3 */

        case V2DImode:
          if (pattern364 (V2DImode) != 0
              || !
#line 16877 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
            return -1;
          return 4101; /* xop_maskcmpv2di3 */

        default:
          return -1;
        }

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  operands[1] = x2;
  if (ix86_comparison_operator (operands[1], QImode))
    {
      x3 = XEXP (x2, 0);
      if (GET_CODE (x3) == REG
          && REGNO (x3) == 17)
        {
          switch (pattern17 (x1))
            {
            case 0:
              return 633; /* *setcc_qi */

            case 1:
              return 634; /* *setcc_qi_slp */

            default:
              break;
            }
        }
    }
  x4 = XEXP (x1, 0);
  operands[0] = x4;
  switch (GET_CODE (x2))
    {
    case NE:
    case EQ:
    case GE:
    case GT:
    case LE:
    case LT:
    case UNORDERED:
    case ORDERED:
    case UNEQ:
    case UNGE:
    case UNGT:
    case UNLE:
    case UNLT:
    case LTGT:
      res = recog_63 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    default:
      break;
    }
  switch (GET_CODE (x2))
    {
    case NE:
    case EQ:
    case GEU:
    case GTU:
    case LEU:
    case LTU:
      operands[1] = x2;
      x3 = XEXP (x2, 0);
      operands[2] = x3;
      x5 = XEXP (x2, 1);
      operands[3] = x5;
      switch (GET_MODE (operands[0]))
        {
        case V16QImode:
          if (pattern322 (V16QImode) != 0
              || !
#line 16891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
            return -1;
          return 4102; /* xop_maskcmp_unsv16qi3 */

        case V8HImode:
          if (pattern322 (V8HImode) != 0
              || !
#line 16891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
            return -1;
          return 4103; /* xop_maskcmp_unsv8hi3 */

        case V4SImode:
          if (pattern322 (V4SImode) != 0
              || !
#line 16891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
            return -1;
          return 4104; /* xop_maskcmp_unsv4si3 */

        case V2DImode:
          if (pattern322 (V2DImode) != 0
              || !
#line 16891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
            return -1;
          return 4105; /* xop_maskcmp_unsv2di3 */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_65 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  if (pnum_clobbers == NULL)
    return -1;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != HImode)
    return -1;
  x3 = XEXP (x1, 0);
  if (GET_CODE (x3) != STRICT_LOW_PART)
    return -1;
  x4 = XEXP (x3, 0);
  operands[0] = x4;
  if (!register_operand (operands[0], HImode))
    return -1;
  x5 = XEXP (x2, 0);
  if (!rtx_equal_p (x5, operands[0]))
    return -1;
  if (
#line 13600 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_XCHGB || optimize_function_for_size_p (cfun)))
    {
      *pnum_clobbers = 1;
      return 804; /* *bswaphi_lowpart_1 */
    }
  *pnum_clobbers = 1;
  return 805; /* bswaphi_lowpart */
}

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, 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, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  switch (GET_CODE (x5))
    {
    case SIGN_EXTEND:
      if (pattern136 (x4) != 0)
        return -1;
      x6 = XEXP (x5, 0);
      x7 = XEXP (x6, 1);
      switch (XVECLEN (x7, 0))
        {
        case 2:
          if (pattern614 (x4) != 0)
            return -1;
          switch (pattern771 (x4))
            {
            case 0:
              x8 = XEXP (x3, 1);
              switch (GET_CODE (x8))
                {
                case MULT:
                  if (pattern876 (x8, V2HImode, V2SImode) != 0)
                    return -1;
                  x9 = XEXP (x8, 0);
                  x10 = XEXP (x9, 0);
                  x11 = XEXP (x10, 1);
                  if (XVECLEN (x11, 0) != 2)
                    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 + 3])
                    return -1;
                  x14 = XEXP (x8, 1);
                  if (pattern937 (x14, V2HImode, V2SImode) != 0)
                    return -1;
                  x15 = XEXP (x14, 0);
                  x16 = XEXP (x15, 1);
                  if (XVECLEN (x16, 0) != 2)
                    return -1;
                  x17 = XVECEXP (x16, 0, 0);
                  if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
                    return -1;
                  x18 = XVECEXP (x16, 0, 1);
                  if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 3]
                      || pattern948 (x3, V4HImode, V2HImode, V2SImode) != 0
                      || !
#line 822 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX && ix86_binary_operator_ok (MULT, V4HImode, operands)))
                    return -1;
                  return 1163; /* *mmx_pmaddwd */

                case REG:
                case SUBREG:
                  operands[3] = x8;
                  if (!register_operand (operands[3], V2DImode)
                      || !register_operand (operands[0], V2DImode)
                      || GET_MODE (x3) != V2DImode
                      || GET_MODE (x4) != V2DImode
                      || GET_MODE (x5) != V2DImode
                      || GET_MODE (x6) != V2SImode
                      || !nonimmediate_operand (operands[1], V4SImode))
                    return -1;
                  x19 = XEXP (x4, 1);
                  if (GET_MODE (x19) != V2DImode)
                    return -1;
                  x20 = XEXP (x19, 0);
                  if (GET_MODE (x20) != V2SImode
                      || !nonimmediate_operand (operands[2], V4SImode)
                      || !
#line 16093 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
                    return -1;
                  return 4027; /* xop_pmacsdql */

                default:
                  return -1;
                }

            case 1:
              if (pattern867 (x3, V2DImode) != 0
                  || GET_MODE (x6) != V2SImode
                  || !nonimmediate_operand (operands[1], V4SImode))
                return -1;
              x19 = XEXP (x4, 1);
              if (GET_MODE (x19) != V2DImode)
                return -1;
              x20 = XEXP (x19, 0);
              if (GET_MODE (x20) != V2SImode
                  || !nonimmediate_operand (operands[2], V4SImode))
                return -1;
              x8 = XEXP (x3, 1);
              operands[3] = x8;
              if (!register_operand (operands[3], V2DImode)
                  || !
#line 16111 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
                return -1;
              return 4029; /* xop_pmacsdqh */

            default:
              return -1;
            }

        case 8:
          if (pattern616 (x4) != 0)
            return -1;
          x8 = XEXP (x3, 1);
          if (GET_CODE (x8) != MULT
              || pattern876 (x8, V8HImode, V8SImode) != 0)
            return -1;
          x9 = XEXP (x8, 0);
          x10 = XEXP (x9, 0);
          x11 = XEXP (x10, 1);
          if (pattern946 (x11, 8) != 0)
            return -1;
          x14 = XEXP (x8, 1);
          if (pattern937 (x14, V8HImode, V8SImode) != 0)
            return -1;
          x15 = XEXP (x14, 0);
          x16 = XEXP (x15, 1);
          if (pattern951 (x16, 8) != 0
              || pattern948 (x3, V16HImode, V8HImode, V8SImode) != 0
              || !
#line 10245 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && ix86_binary_operator_ok (MULT, V16HImode, operands)))
            return -1;
          return 3118; /* *avx2_pmaddwd */

        case 4:
          x21 = XVECEXP (x7, 0, 0);
          if (GET_CODE (x21) != CONST_INT)
            return -1;
          x22 = XVECEXP (x7, 0, 1);
          if (GET_CODE (x22) != CONST_INT)
            return -1;
          x23 = XVECEXP (x7, 0, 2);
          if (GET_CODE (x23) != CONST_INT)
            return -1;
          x24 = XVECEXP (x7, 0, 3);
          if (GET_CODE (x24) != CONST_INT)
            return -1;
          x19 = XEXP (x4, 1);
          x20 = XEXP (x19, 0);
          x25 = XEXP (x20, 1);
          if (XVECLEN (x25, 0) != 4)
            return -1;
          x26 = XVECEXP (x25, 0, 0);
          if (GET_CODE (x26) != CONST_INT)
            return -1;
          x27 = XVECEXP (x25, 0, 1);
          if (GET_CODE (x27) != CONST_INT)
            return -1;
          x28 = XVECEXP (x25, 0, 2);
          if (GET_CODE (x28) != CONST_INT)
            return -1;
          x29 = XVECEXP (x25, 0, 3);
          if (GET_CODE (x29) != CONST_INT
              || !register_operand (operands[0], V4SImode)
              || GET_MODE (x3) != V4SImode
              || GET_MODE (x4) != V4SImode
              || GET_MODE (x5) != V4SImode
              || GET_MODE (x6) != V4HImode
              || GET_MODE (x19) != V4SImode
              || GET_MODE (x20) != V4HImode)
            return -1;
          switch (XWINT (x21, 0))
            {
            case 0LL:
              if (XWINT (x22, 0) != 2LL
                  || XWINT (x23, 0) != 4LL
                  || XWINT (x24, 0) != 6LL
                  || XWINT (x26, 0) != 0LL
                  || XWINT (x27, 0) != 2LL
                  || XWINT (x28, 0) != 4LL
                  || XWINT (x29, 0) != 6LL)
                return -1;
              x8 = XEXP (x3, 1);
              if (GET_CODE (x8) != MULT
                  || pattern876 (x8, V4HImode, V4SImode) != 0)
                return -1;
              x9 = XEXP (x8, 0);
              x10 = XEXP (x9, 0);
              x11 = XEXP (x10, 1);
              if (pattern933 (x11, 7, 5, 3, 1) != 0)
                return -1;
              x14 = XEXP (x8, 1);
              if (pattern937 (x14, V4HImode, V4SImode) != 0)
                return -1;
              x15 = XEXP (x14, 0);
              x16 = XEXP (x15, 1);
              if (pattern944 (x16, 7, 5, 3, 1) != 0
                  || !vector_operand (operands[1], V8HImode)
                  || !vector_operand (operands[2], V8HImode))
                return -1;
              x30 = XEXP (x10, 0);
              if (!rtx_equal_p (x30, operands[1]))
                return -1;
              x31 = XEXP (x15, 0);
              if (!rtx_equal_p (x31, operands[2])
                  || !
#line 10300 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && ix86_binary_operator_ok (MULT, V8HImode, operands)))
                return -1;
              return 3119; /* *sse2_pmaddwd */

            case 1LL:
              if (XWINT (x22, 0) != 3LL
                  || XWINT (x23, 0) != 5LL
                  || XWINT (x24, 0) != 7LL
                  || XWINT (x26, 0) != 1LL
                  || XWINT (x27, 0) != 3LL
                  || XWINT (x28, 0) != 5LL
                  || XWINT (x29, 0) != 7LL
                  || !nonimmediate_operand (operands[1], V8HImode)
                  || !nonimmediate_operand (operands[2], V8HImode))
                return -1;
              x8 = XEXP (x3, 1);
              operands[3] = x8;
              if (!register_operand (operands[3], V4SImode)
                  || !
#line 16132 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
                return -1;
              return 4031; /* xop_pmacswd */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case REG:
    case SUBREG:
    case MEM:
      switch (pattern135 (x3))
        {
        case 0:
          if (!
#line 16075 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
            return -1;
          return 4023; /* xop_pmacsww */

        case 1:
          if (!
#line 16075 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
            return -1;
          return 4025; /* xop_pmacsdd */

        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, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  switch (GET_CODE (x3))
    {
    case REG:
    case SUBREG:
    case MEM:
      x4 = XEXP (x1, 0);
      switch (GET_CODE (x4))
        {
        case REG:
        case SUBREG:
        case MEM:
          operands[0] = x4;
          operands[1] = x3;
          x5 = XEXP (x2, 1);
          operands[2] = x5;
          switch (GET_MODE (operands[0]))
            {
            case TImode:
              if (pnum_clobbers == NULL
                  || pattern137 (x2, TImode) != 0
                  || !(
#line 5475 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, TImode, operands)) && 
#line 1044 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              *pnum_clobbers = 1;
              return 219; /* *addti3_doubleword */

            case HImode:
              if (pattern365 (x2, pnum_clobbers, HImode) != 0
                  || !
#line 5609 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, HImode, operands)))
                return -1;
              *pnum_clobbers = 1;
              return 223; /* *addhi_1 */

            case QImode:
              if (pattern365 (x2, pnum_clobbers, QImode) != 0
                  || !
#line 5659 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, QImode, operands)))
                return -1;
              *pnum_clobbers = 1;
              return 224; /* *addqi_1 */

            case V2SFmode:
              if (pattern7 (x2, V2SFmode) != 0
                  || !
#line 252 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_3DNOW && ix86_binary_operator_ok (PLUS, V2SFmode, operands)))
                return -1;
              return 1117; /* *mmx_addv2sf3 */

            case V8QImode:
              if (pattern7 (x2, V8QImode) != 0
                  || !
#line 684 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
((TARGET_MMX || (TARGET_SSE2 && V8QImode == V1DImode))
   && ix86_binary_operator_ok (PLUS, V8QImode, operands)))
                return -1;
              return 1144; /* *mmx_addv8qi3 */

            case V4HImode:
              if (pattern7 (x2, V4HImode) != 0
                  || !
#line 684 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
((TARGET_MMX || (TARGET_SSE2 && V4HImode == V1DImode))
   && ix86_binary_operator_ok (PLUS, V4HImode, operands)))
                return -1;
              return 1146; /* *mmx_addv4hi3 */

            case V2SImode:
              if (pattern7 (x2, V2SImode) != 0
                  || !
#line 684 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
((TARGET_MMX || (TARGET_SSE2 && V2SImode == V1DImode))
   && ix86_binary_operator_ok (PLUS, V2SImode, operands)))
                return -1;
              return 1148; /* *mmx_addv2si3 */

            case V1DImode:
              if (pattern7 (x2, V1DImode) != 0
                  || !
#line 684 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
((TARGET_MMX || (TARGET_SSE2 && V1DImode == V1DImode))
   && ix86_binary_operator_ok (PLUS, V1DImode, operands)))
                return -1;
              return 1150; /* *mmx_addv1di3 */

            case V16SFmode:
              if (pattern8 (x2, V16SFmode) != 0
                  || !(
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (PLUS, V16SFmode, operands) && 1 && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
                return -1;
              return 1391; /* *addv16sf3 */

            case V8SFmode:
              if (pattern8 (x2, V8SFmode) != 0
                  || !(
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (PLUS, V8SFmode, operands) && 1 && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
                return -1;
              return 1399; /* *addv8sf3 */

            case V4SFmode:
              if (pattern8 (x2, V4SFmode) != 0
                  || !
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (PLUS, V4SFmode, operands) && 1 && 1))
                return -1;
              return 1407; /* *addv4sf3 */

            case V8DFmode:
              if (pattern8 (x2, V8DFmode) != 0
                  || !(
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (PLUS, V8DFmode, operands) && 1 && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
                return -1;
              return 1415; /* *addv8df3 */

            case V4DFmode:
              if (pattern8 (x2, V4DFmode) != 0
                  || !(
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (PLUS, V4DFmode, operands) && 1 && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
                return -1;
              return 1423; /* *addv4df3 */

            case V2DFmode:
              if (pattern8 (x2, V2DFmode) != 0
                  || !(
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (PLUS, V2DFmode, operands) && 1 && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
                return -1;
              return 1431; /* *addv2df3 */

            case V64QImode:
              if (pattern8 (x2, V64QImode) != 0
                  || !(
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (PLUS, V64QImode, operands)) && 
#line 284 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
                return -1;
              return 2962; /* *addv64qi3 */

            case V32QImode:
              if (pattern8 (x2, V32QImode) != 0
                  || !(
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (PLUS, V32QImode, operands)) && 
#line 284 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
                return -1;
              return 2966; /* *addv32qi3 */

            case V16QImode:
              if (pattern8 (x2, V16QImode) != 0
                  || !
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (PLUS, V16QImode, operands)))
                return -1;
              return 2970; /* *addv16qi3 */

            case V32HImode:
              if (pattern8 (x2, V32HImode) != 0
                  || !(
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (PLUS, V32HImode, operands)) && 
#line 285 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
                return -1;
              return 2974; /* *addv32hi3 */

            case V16HImode:
              if (pattern8 (x2, V16HImode) != 0
                  || !(
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (PLUS, V16HImode, operands)) && 
#line 285 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
                return -1;
              return 2978; /* *addv16hi3 */

            case V8HImode:
              if (pattern8 (x2, V8HImode) != 0
                  || !
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (PLUS, V8HImode, operands)))
                return -1;
              return 2982; /* *addv8hi3 */

            case V16SImode:
              if (pattern8 (x2, V16SImode) != 0
                  || !(
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (PLUS, V16SImode, operands)) && 
#line 286 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
                return -1;
              return 2986; /* *addv16si3 */

            case V8SImode:
              if (pattern8 (x2, V8SImode) != 0
                  || !(
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (PLUS, V8SImode, operands)) && 
#line 286 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
                return -1;
              return 2990; /* *addv8si3 */

            case V4SImode:
              if (pattern8 (x2, V4SImode) != 0
                  || !
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (PLUS, V4SImode, operands)))
                return -1;
              return 2994; /* *addv4si3 */

            case V8DImode:
              if (pattern8 (x2, V8DImode) != 0
                  || !(
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (PLUS, V8DImode, operands)) && 
#line 287 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
                return -1;
              return 2998; /* *addv8di3 */

            case V4DImode:
              if (pattern8 (x2, V4DImode) != 0
                  || !(
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (PLUS, V4DImode, operands)) && 
#line 287 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
                return -1;
              return 3002; /* *addv4di3 */

            case V2DImode:
              if (pattern8 (x2, V2DImode) != 0
                  || !
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (PLUS, V2DImode, operands)))
                return -1;
              return 3006; /* *addv2di3 */

            default:
              return -1;
            }

        case STRICT_LOW_PART:
          if (pattern20 (x1, pnum_clobbers) != 0
              || !
#line 5717 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((! TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
            return -1;
          *pnum_clobbers = 1;
          return 225; /* *addqi_1_slp */

        default:
          return -1;
        }

    case ZERO_EXTRACT:
      if (pnum_clobbers == NULL
          || GET_MODE (x3) != SImode)
        return -1;
      x6 = XEXP (x3, 1);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
        return -1;
      x7 = XEXP (x3, 2);
      if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
        return -1;
      x4 = XEXP (x1, 0);
      if (pattern174 (x4) != 0
          || GET_MODE (x2) != SImode)
        return -1;
      x8 = XEXP (x3, 0);
      operands[1] = x8;
      if (!ext_register_operand (operands[1], VOIDmode))
        return -1;
      x5 = XEXP (x2, 1);
      switch (GET_CODE (x5))
        {
        case CONST_INT:
        case CONST_WIDE_INT:
        case CONST_FIXED:
        case CONST_DOUBLE:
        case CONST_VECTOR:
        case CONST:
        case REG:
        case SUBREG:
        case MEM:
        case LABEL_REF:
        case SYMBOL_REF:
        case HIGH:
          operands[2] = x5;
          if (!general_x64nomem_operand (operands[2], QImode))
            return -1;
          *pnum_clobbers = 1;
          return 244; /* addqi_ext_1 */

        case ZERO_EXTRACT:
          if (pattern22 (x5) != 0)
            return -1;
          *pnum_clobbers = 1;
          return 245; /* *addqi_ext_2 */

        default:
          return -1;
        }

    case PLUS:
      x4 = XEXP (x1, 0);
      operands[0] = x4;
      x8 = XEXP (x3, 0);
      switch (GET_CODE (x8))
        {
        case GE:
        case GT:
        case LE:
        case LT:
        case GTU:
        case LTU:
        case UNEQ:
        case UNGE:
        case UNGT:
        case UNLE:
        case UNLT:
        case LTGT:
          if (pnum_clobbers == NULL)
            return -1;
          operands[4] = x8;
          x9 = XEXP (x8, 1);
          if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x10 = XEXP (x8, 0);
          operands[3] = x10;
          if (!flags_reg_operand (operands[3], VOIDmode))
            return -1;
          x6 = XEXP (x3, 1);
          operands[1] = x6;
          x5 = XEXP (x2, 1);
          operands[2] = x5;
          switch (GET_MODE (operands[0]))
            {
            case QImode:
              if (pattern613 (x2, QImode) != 0
                  || !
#line 6620 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, QImode, operands)))
                return -1;
              *pnum_clobbers = 1;
              return 285; /* addqi3_carry */

            case HImode:
              if (pattern613 (x2, HImode) != 0
                  || !
#line 6620 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, HImode, operands)))
                return -1;
              *pnum_clobbers = 1;
              return 286; /* addhi3_carry */

            default:
              return -1;
            }

        case MULT:
          if (pattern181 (x3) != 0
              || !register_operand (operands[0], V4SImode)
              || GET_MODE (x2) != V4SImode
              || GET_MODE (x3) != V4SImode
              || pattern953 (x2) != 0
              || !
#line 16164 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
            return -1;
          return 4033; /* xop_pmadcswd */

        case SIGN_EXTEND:
          switch (pattern184 (x2, SIGN_EXTEND))
            {
            case 0:
              if (!
#line 16227 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
                return -1;
              return 4053; /* xop_phaddbd */

            case 1:
              if (!
#line 16314 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
                return -1;
              return 4059; /* xop_phaddwq */

            default:
              return -1;
            }

        case ZERO_EXTEND:
          switch (pattern184 (x2, ZERO_EXTEND))
            {
            case 0:
              if (!
#line 16227 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
                return -1;
              return 4054; /* xop_phaddubd */

            case 1:
              if (!
#line 16314 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
                return -1;
              return 4060; /* xop_phadduwq */

            default:
              return -1;
            }

        case PLUS:
          if (GET_MODE (x8) != V2DImode)
            return -1;
          x6 = XEXP (x3, 1);
          if (GET_CODE (x6) != PLUS
              || GET_MODE (x6) != V2DImode)
            return -1;
          x5 = XEXP (x2, 1);
          if (GET_CODE (x5) != PLUS
              || GET_MODE (x5) != V2DImode)
            return -1;
          x11 = XEXP (x5, 0);
          if (GET_CODE (x11) != PLUS
              || GET_MODE (x11) != V2DImode)
            return -1;
          x12 = XEXP (x5, 1);
          if (GET_CODE (x12) != PLUS
              || GET_MODE (x12) != V2DImode
              || !register_operand (operands[0], V2DImode)
              || GET_MODE (x2) != V2DImode
              || GET_MODE (x3) != V2DImode)
            return -1;
          x10 = XEXP (x8, 0);
          if (GET_MODE (x10) != V2DImode)
            return -1;
          x9 = XEXP (x8, 1);
          if (GET_MODE (x9) != V2DImode)
            return -1;
          x13 = XEXP (x6, 0);
          if (GET_MODE (x13) != V2DImode)
            return -1;
          x14 = XEXP (x6, 1);
          if (GET_MODE (x14) != V2DImode)
            return -1;
          x15 = XEXP (x11, 0);
          if (GET_MODE (x15) != V2DImode)
            return -1;
          x16 = XEXP (x11, 1);
          if (GET_MODE (x16) != V2DImode)
            return -1;
          x17 = XEXP (x12, 0);
          if (GET_MODE (x17) != V2DImode)
            return -1;
          x18 = XEXP (x12, 1);
          if (GET_MODE (x18) != V2DImode)
            return -1;
          switch (GET_CODE (x10))
            {
            case SIGN_EXTEND:
              if (pattern913 (x2, SIGN_EXTEND) != 0
                  || !
#line 16272 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
                return -1;
              return 4055; /* xop_phaddbq */

            case ZERO_EXTEND:
              if (pattern913 (x2, ZERO_EXTEND) != 0
                  || !
#line 16272 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
                return -1;
              return 4056; /* xop_phaddubq */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case MULT:
      return recog_66 (x1, insn, pnum_clobbers);

    case VEC_SELECT:
      if (GET_MODE (x3) != DFmode)
        return -1;
      x6 = XEXP (x3, 1);
      if (GET_CODE (x6) != PARALLEL
          || XVECLEN (x6, 0) != 1)
        return -1;
      x5 = XEXP (x2, 1);
      if (GET_CODE (x5) != VEC_SELECT
          || GET_MODE (x5) != DFmode)
        return -1;
      x12 = XEXP (x5, 1);
      if (GET_CODE (x12) != PARALLEL
          || XVECLEN (x12, 0) != 1)
        return -1;
      x4 = XEXP (x1, 0);
      operands[0] = x4;
      if (!register_operand (operands[0], DFmode)
          || GET_MODE (x2) != DFmode)
        return -1;
      x8 = XEXP (x3, 0);
      operands[1] = x8;
      if (!register_operand (operands[1], V2DFmode))
        return -1;
      x19 = XVECEXP (x6, 0, 0);
      operands[2] = x19;
      if (!const_0_to_1_operand (operands[2], SImode))
        return -1;
      x20 = XVECEXP (x12, 0, 0);
      operands[3] = x20;
      if (!const_0_to_1_operand (operands[3], SImode))
        return -1;
      x11 = XEXP (x5, 0);
      if (!rtx_equal_p (x11, operands[1])
          || !
#line 2313 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE3
   && INTVAL (operands[2]) != INTVAL (operands[3])))
        return -1;
      return 1645; /* *sse3_haddv2df3_low */

    case SIGN_EXTEND:
      switch (pattern58 (x1, SIGN_EXTEND))
        {
        case 0:
          if (!
#line 16198 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
            return -1;
          return 4051; /* xop_phaddbw */

        case 1:
          if (!
#line 16289 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
            return -1;
          return 4057; /* xop_phaddwd */

        case 2:
          if (!
#line 16329 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
            return -1;
          return 4061; /* xop_phadddq */

        default:
          return -1;
        }

    case ZERO_EXTEND:
      switch (pattern58 (x1, ZERO_EXTEND))
        {
        case 0:
          if (!
#line 16198 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
            return -1;
          return 4052; /* xop_phaddubw */

        case 1:
          if (!
#line 16289 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
            return -1;
          return 4058; /* xop_phadduwd */

        case 2:
          if (!
#line 16329 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
            return -1;
          return 4062; /* xop_phaddudq */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_68 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, 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:
    case MEM:
      x4 = XEXP (x1, 0);
      switch (GET_CODE (x4))
        {
        case REG:
        case SUBREG:
        case MEM:
          operands[0] = x4;
          operands[1] = x3;
          x5 = XEXP (x2, 1);
          operands[2] = x5;
          switch (GET_MODE (operands[0]))
            {
            case TImode:
              if (pnum_clobbers == NULL
                  || pattern137 (x2, TImode) != 0
                  || !(
#line 6414 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (MINUS, DImode, operands)) && 
#line 1044 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              *pnum_clobbers = 1;
              return 260; /* *subti3_doubleword */

            case QImode:
              if (pattern365 (x2, pnum_clobbers, QImode) != 0
                  || !
#line 6443 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (MINUS, QImode, operands)))
                return -1;
              *pnum_clobbers = 1;
              return 261; /* *subqi_1 */

            case HImode:
              if (pattern365 (x2, pnum_clobbers, HImode) != 0
                  || !
#line 6443 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (MINUS, HImode, operands)))
                return -1;
              *pnum_clobbers = 1;
              return 262; /* *subhi_1 */

            case V2SFmode:
              if (pattern7 (x2, V2SFmode) != 0
                  || !
#line 274 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_3DNOW && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
                return -1;
              return 1118; /* *mmx_subv2sf3 */

            case V8QImode:
              if (pattern7 (x2, V8QImode) != 0
                  || !
#line 684 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
((TARGET_MMX || (TARGET_SSE2 && V8QImode == V1DImode))
   && ix86_binary_operator_ok (MINUS, V8QImode, operands)))
                return -1;
              return 1145; /* *mmx_subv8qi3 */

            case V4HImode:
              if (pattern7 (x2, V4HImode) != 0
                  || !
#line 684 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
((TARGET_MMX || (TARGET_SSE2 && V4HImode == V1DImode))
   && ix86_binary_operator_ok (MINUS, V4HImode, operands)))
                return -1;
              return 1147; /* *mmx_subv4hi3 */

            case V2SImode:
              if (pattern7 (x2, V2SImode) != 0
                  || !
#line 684 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
((TARGET_MMX || (TARGET_SSE2 && V2SImode == V1DImode))
   && ix86_binary_operator_ok (MINUS, V2SImode, operands)))
                return -1;
              return 1149; /* *mmx_subv2si3 */

            case V1DImode:
              if (pattern7 (x2, V1DImode) != 0
                  || !
#line 684 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
((TARGET_MMX || (TARGET_SSE2 && V1DImode == V1DImode))
   && ix86_binary_operator_ok (MINUS, V1DImode, operands)))
                return -1;
              return 1151; /* *mmx_subv1di3 */

            case V16SFmode:
              if (pattern8 (x2, V16SFmode) != 0
                  || !(
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MINUS, V16SFmode, operands) && 1 && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
                return -1;
              return 1395; /* *subv16sf3 */

            case V8SFmode:
              if (pattern8 (x2, V8SFmode) != 0
                  || !(
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MINUS, V8SFmode, operands) && 1 && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
                return -1;
              return 1403; /* *subv8sf3 */

            case V4SFmode:
              if (pattern8 (x2, V4SFmode) != 0
                  || !
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MINUS, V4SFmode, operands) && 1 && 1))
                return -1;
              return 1411; /* *subv4sf3 */

            case V8DFmode:
              if (pattern8 (x2, V8DFmode) != 0
                  || !(
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MINUS, V8DFmode, operands) && 1 && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
                return -1;
              return 1419; /* *subv8df3 */

            case V4DFmode:
              if (pattern8 (x2, V4DFmode) != 0
                  || !(
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MINUS, V4DFmode, operands) && 1 && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
                return -1;
              return 1427; /* *subv4df3 */

            case V2DFmode:
              if (pattern8 (x2, V2DFmode) != 0
                  || !(
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MINUS, V2DFmode, operands) && 1 && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
                return -1;
              return 1435; /* *subv2df3 */

            case V64QImode:
              if (pattern8 (x2, V64QImode) != 0
                  || !(
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MINUS, V64QImode, operands)) && 
#line 284 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
                return -1;
              return 2964; /* *subv64qi3 */

            case V32QImode:
              if (pattern8 (x2, V32QImode) != 0
                  || !(
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MINUS, V32QImode, operands)) && 
#line 284 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
                return -1;
              return 2968; /* *subv32qi3 */

            case V16QImode:
              if (pattern8 (x2, V16QImode) != 0
                  || !
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MINUS, V16QImode, operands)))
                return -1;
              return 2972; /* *subv16qi3 */

            case V32HImode:
              if (pattern8 (x2, V32HImode) != 0
                  || !(
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MINUS, V32HImode, operands)) && 
#line 285 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
                return -1;
              return 2976; /* *subv32hi3 */

            case V16HImode:
              if (pattern8 (x2, V16HImode) != 0
                  || !(
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MINUS, V16HImode, operands)) && 
#line 285 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
                return -1;
              return 2980; /* *subv16hi3 */

            case V8HImode:
              if (pattern8 (x2, V8HImode) != 0
                  || !
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MINUS, V8HImode, operands)))
                return -1;
              return 2984; /* *subv8hi3 */

            case V16SImode:
              if (pattern8 (x2, V16SImode) != 0
                  || !(
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MINUS, V16SImode, operands)) && 
#line 286 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
                return -1;
              return 2988; /* *subv16si3 */

            case V8SImode:
              if (pattern8 (x2, V8SImode) != 0
                  || !(
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MINUS, V8SImode, operands)) && 
#line 286 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
                return -1;
              return 2992; /* *subv8si3 */

            case V4SImode:
              if (pattern8 (x2, V4SImode) != 0
                  || !
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MINUS, V4SImode, operands)))
                return -1;
              return 2996; /* *subv4si3 */

            case V8DImode:
              if (pattern8 (x2, V8DImode) != 0
                  || !(
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MINUS, V8DImode, operands)) && 
#line 287 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
                return -1;
              return 3000; /* *subv8di3 */

            case V4DImode:
              if (pattern8 (x2, V4DImode) != 0
                  || !(
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MINUS, V4DImode, operands)) && 
#line 287 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
                return -1;
              return 3004; /* *subv4di3 */

            case V2DImode:
              if (pattern8 (x2, V2DImode) != 0
                  || !
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MINUS, V2DImode, operands)))
                return -1;
              return 3008; /* *subv2di3 */

            default:
              return -1;
            }

        case STRICT_LOW_PART:
          if (pattern20 (x1, pnum_clobbers) != 0
              || !
#line 6464 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((! TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
            return -1;
          *pnum_clobbers = 1;
          return 266; /* *subqi_1_slp */

        default:
          return -1;
        }

    case MINUS:
      if (pnum_clobbers == NULL)
        return -1;
      x6 = XEXP (x3, 1);
      switch (GET_CODE (x6))
        {
        case GE:
        case GT:
        case LE:
        case LT:
        case GTU:
        case LTU:
        case UNEQ:
        case UNGE:
        case UNGT:
        case UNLE:
        case UNLT:
        case LTGT:
          operands[4] = x6;
          x7 = XEXP (x6, 1);
          if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x4 = XEXP (x1, 0);
          operands[0] = x4;
          x8 = XEXP (x3, 0);
          operands[1] = x8;
          x9 = XEXP (x6, 0);
          operands[3] = x9;
          if (!flags_reg_operand (operands[3], VOIDmode))
            return -1;
          x5 = XEXP (x2, 1);
          operands[2] = x5;
          switch (GET_MODE (operands[0]))
            {
            case QImode:
              if (pattern617 (x2, QImode) != 0
                  || !
#line 6676 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (MINUS, QImode, operands)))
                return -1;
              *pnum_clobbers = 1;
              return 292; /* subqi3_carry */

            case HImode:
              if (pattern617 (x2, HImode) != 0
                  || !
#line 6676 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (MINUS, HImode, operands)))
                return -1;
              *pnum_clobbers = 1;
              return 293; /* subhi3_carry */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case CONST_INT:
      if (pnum_clobbers == NULL
          || XWINT (x3, 0) != 15LL
          || pattern185 (x1, CLZ) != 0)
        return -1;
      x5 = XEXP (x2, 1);
      x10 = XEXP (x5, 0);
      operands[1] = x10;
      if (!nonimmediate_operand (operands[1], HImode))
        return -1;
      *pnum_clobbers = 1;
      return 792; /* *bsrhi */

    case VEC_SELECT:
      if (pattern59 (x3) != 0)
        return -1;
      x5 = XEXP (x2, 1);
      if (pattern323 (x5) != 0)
        return -1;
      x4 = XEXP (x1, 0);
      operands[0] = x4;
      if (!register_operand (operands[0], DFmode)
          || GET_MODE (x2) != DFmode)
        return -1;
      x8 = XEXP (x3, 0);
      operands[1] = x8;
      if (!register_operand (operands[1], V2DFmode))
        return -1;
      x10 = XEXP (x5, 0);
      if (!rtx_equal_p (x10, operands[1])
          || !
#line 2332 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE3))
        return -1;
      return 1646; /* *sse3_hsubv2df3_low */

    case SIGN_EXTEND:
      switch (pattern58 (x1, SIGN_EXTEND))
        {
        case 0:
          if (!
#line 16350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
            return -1;
          return 4063; /* xop_phsubbw */

        case 1:
          if (!
#line 16367 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
            return -1;
          return 4064; /* xop_phsubwd */

        case 2:
          if (!
#line 16382 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
            return -1;
          return 4065; /* xop_phsubdq */

        default:
          return -1;
        }

    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;
  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:
    case MEM:
      operands[1] = x4;
      x5 = XEXP (x3, 1);
      operands[2] = x5;
      switch (GET_MODE (operands[0]))
        {
        case HImode:
          if (pnum_clobbers == NULL
              || !register_operand (operands[0], HImode)
              || GET_MODE (x3) != HImode
              || !nonimmediate_operand (operands[1], HImode)
              || !general_operand (operands[2], HImode)
              || !(
#line 6875 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))) && 
#line 1017 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_HIMODE_MATH)))
            return -1;
          *pnum_clobbers = 1;
          return 317; /* *mulhi3_1 */

        case QImode:
          if (pnum_clobbers == NULL
              || pattern7 (x3, QImode) != 0
              || !
#line 6945 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_QIMODE_MATH
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
            return -1;
          *pnum_clobbers = 1;
          return 321; /* *mulqi3_1 */

        case V2SFmode:
          if (pattern7 (x3, V2SFmode) != 0
              || !
#line 293 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_3DNOW && ix86_binary_operator_ok (MULT, V2SFmode, operands)))
            return -1;
          return 1119; /* *mmx_mulv2sf3 */

        case V4HImode:
          if (pattern7 (x3, V4HImode) != 0
              || !
#line 719 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX && ix86_binary_operator_ok (MULT, V4HImode, operands)))
            return -1;
          return 1160; /* *mmx_mulv4hi3 */

        case V16SFmode:
          if (pattern8 (x3, V16SFmode) != 0
              || !(
#line 1709 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MULT, V16SFmode, operands) && 1 && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 1447; /* *mulv16sf3 */

        case V8SFmode:
          if (pattern8 (x3, V8SFmode) != 0
              || !(
#line 1709 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MULT, V8SFmode, operands) && 1 && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 1451; /* *mulv8sf3 */

        case V4SFmode:
          if (pattern8 (x3, V4SFmode) != 0
              || !
#line 1709 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MULT, V4SFmode, operands) && 1 && 1))
            return -1;
          return 1455; /* *mulv4sf3 */

        case V8DFmode:
          if (pattern8 (x3, V8DFmode) != 0
              || !(
#line 1709 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MULT, V8DFmode, operands) && 1 && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 1459; /* *mulv8df3 */

        case V4DFmode:
          if (pattern8 (x3, V4DFmode) != 0
              || !(
#line 1709 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MULT, V4DFmode, operands) && 1 && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 1463; /* *mulv4df3 */

        case V2DFmode:
          if (pattern8 (x3, V2DFmode) != 0
              || !(
#line 1709 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MULT, V2DFmode, operands) && 1 && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return -1;
          return 1467; /* *mulv2df3 */

        case V32HImode:
          if (pattern8 (x3, V32HImode) != 0
              || !(
#line 9883 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MULT, V32HImode, operands)
   && 1 && 1) && 
#line 328 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return -1;
          return 3082; /* *mulv32hi3 */

        case V16HImode:
          if (pattern8 (x3, V16HImode) != 0
              || !(
#line 9883 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MULT, V16HImode, operands)
   && 1 && 1) && 
#line 328 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
            return -1;
          return 3084; /* *mulv16hi3 */

        case V8HImode:
          if (pattern8 (x3, V8HImode) != 0
              || !
#line 9883 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MULT, V8HImode, operands)
   && 1 && 1))
            return -1;
          return 3086; /* *mulv8hi3 */

        case V8DImode:
          if (pattern9 (x3, V8DImode) != 0
              || !(
#line 10316 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 313 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 3120; /* avx512dq_mulv8di3 */

        case V4DImode:
          if (pattern9 (x3, V4DImode) != 0
              || !(
#line 10316 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 313 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 3122; /* avx512dq_mulv4di3 */

        case V2DImode:
          if (pattern9 (x3, V2DImode) != 0
              || !
#line 10316 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1))
            return -1;
          return 3124; /* avx512dq_mulv2di3 */

        case V16SImode:
          if (pattern8 (x3, V16SImode) != 0
              || !(
#line 10349 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && ix86_binary_operator_ok (MULT, V16SImode, operands) && 1) && 
#line 340 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 3126; /* *avx512f_mulv16si3 */

        case V8SImode:
          if (pattern8 (x3, V8SImode) != 0
              || !(
#line 10349 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && ix86_binary_operator_ok (MULT, V8SImode, operands) && 1) && 
#line 340 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
            return -1;
          return 3128; /* *avx2_mulv8si3 */

        case V4SImode:
          if (pattern8 (x3, V4SImode) != 0
              || !
#line 10349 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && ix86_binary_operator_ok (MULT, V4SImode, operands) && 1))
            return -1;
          return 3130; /* *sse4_1_mulv4si3 */

        default:
          return -1;
        }

    case ZERO_EXTEND:
      switch (pattern129 (x3, pnum_clobbers, ZERO_EXTEND))
        {
        case 0:
          if (!(
#line 7221 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))) && 
#line 1044 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          *pnum_clobbers = 1;
          return 336; /* *umulditi3_1 */

        case 1:
          if (!
#line 7292 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_QIMODE_MATH
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
            return -1;
          *pnum_clobbers = 1;
          return 340; /* *umulqihi3_1 */

        case 2:
          x6 = XEXP (x4, 0);
          x7 = XEXP (x6, 1);
          switch (XVECLEN (x7, 0))
            {
            case 1:
              x8 = XVECEXP (x7, 0, 0);
              if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x5 = XEXP (x3, 1);
              x9 = XEXP (x5, 0);
              x10 = XEXP (x9, 1);
              if (XVECLEN (x10, 0) != 1)
                return -1;
              x11 = XVECEXP (x10, 0, 0);
              if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
                  || pattern554 (x3, V2SImode, V1SImode, V1DImode) != 0
                  || !
#line 887 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_SSE2 && ix86_binary_operator_ok (MULT, V2SImode, operands)))
                return -1;
              return 1165; /* *sse2_umulv1siv1di3 */

            case 8:
              if (pattern555 (x3) != 0
                  || !
#line 9968 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (MULT, V16SImode, operands)))
                return -1;
              return 3100; /* *vec_widen_umult_even_v16si */

            case 4:
              if (pattern556 (x3) != 0
                  || !
#line 10005 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1
   && ix86_binary_operator_ok (MULT, V8SImode, operands)))
                return -1;
              return 3102; /* *vec_widen_umult_even_v8si */

            case 2:
              if (pattern557 (x3) != 0
                  || !
#line 10037 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1
   && ix86_binary_operator_ok (MULT, V4SImode, operands)))
                return -1;
              return 3104; /* *vec_widen_umult_even_v4si */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case SIGN_EXTEND:
      switch (pattern129 (x3, pnum_clobbers, SIGN_EXTEND))
        {
        case 0:
          if (!(
#line 7272 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))) && 
#line 1044 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          *pnum_clobbers = 1;
          return 338; /* *mulditi3_1 */

        case 1:
          if (!
#line 7292 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_QIMODE_MATH
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
            return -1;
          *pnum_clobbers = 1;
          return 339; /* *mulqihi3_1 */

        case 2:
          x6 = XEXP (x4, 0);
          x7 = XEXP (x6, 1);
          switch (XVECLEN (x7, 0))
            {
            case 8:
              if (pattern555 (x3) != 0
                  || !
#line 10085 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (MULT, V16SImode, operands)))
                return -1;
              return 3106; /* *vec_widen_smult_even_v16si */

            case 4:
              if (pattern556 (x3) != 0
                  || !
#line 10122 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2
   && ix86_binary_operator_ok (MULT, V8SImode, operands)))
                return -1;
              return 3108; /* *vec_widen_smult_even_v8si */

            case 2:
              if (pattern557 (x3) != 0
                  || !
#line 10155 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && 1
   && ix86_binary_operator_ok (MULT, V4SImode, operands)))
                return -1;
              return 3110; /* *sse4_1_mulv2siv2di3 */

            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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    case PLUS:
      res = recog_67 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

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

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

    case DIV:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      x5 = XEXP (x2, 1);
      operands[2] = x5;
      switch (GET_MODE (operands[0]))
        {
        case V16SFmode:
          if (pattern268 (x2, V16SFmode) == 0
              && (
#line 1768 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1 && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return 1479; /* avx512f_divv16sf3 */
          break;

        case V8SFmode:
          if (pattern268 (x2, V8SFmode) == 0
              && (
#line 1768 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1 && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return 1483; /* avx_divv8sf3 */
          break;

        case V4SFmode:
          if (pattern268 (x2, V4SFmode) == 0
              && 
#line 1768 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1 && 1))
            return 1485; /* sse_divv4sf3 */
          break;

        case V8DFmode:
          if (pattern268 (x2, V8DFmode) == 0
              && (
#line 1768 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1 && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return 1487; /* avx512f_divv8df3 */
          break;

        case V4DFmode:
          if (pattern268 (x2, V4DFmode) == 0
              && (
#line 1768 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1 && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return 1491; /* avx_divv4df3 */
          break;

        case V2DFmode:
          if (pattern268 (x2, V2DFmode) == 0
              && (
#line 1768 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1 && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return 1493; /* sse2_divv2df3 */
          break;

        default:
          break;
        }
      break;

    default:
      break;
    }
  operands[3] = x2;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  x4 = XEXP (x2, 0);
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
    case MEM:
      operands[1] = x4;
      x5 = XEXP (x2, 1);
      switch (GET_CODE (x5))
        {
        case REG:
        case SUBREG:
        case MEM:
          operands[2] = x5;
          switch (GET_MODE (operands[0]))
            {
            case SFmode:
              if (!register_operand (operands[0], SFmode)
                  || !binary_fp_operator (operands[3], SFmode)
                  || !nonimmediate_operand (operands[2], SFmode))
                return -1;
              if (nonimmediate_operand (operands[1], SFmode))
                {
                  if (
#line 14186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH
   && COMMUTATIVE_ARITH_P (operands[3])
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                    return 830; /* *fop_sf_comm_mixed */
                  if (
#line 14212 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && X87_ENABLE_ARITH (SFmode)
   && COMMUTATIVE_ARITH_P (operands[3])
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                    return 832; /* *fop_sf_comm_i387 */
                }
              if (register_mixssei387nonimm_operand (operands[1], SFmode)
                  && 
#line 14241 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH
   && !COMMUTATIVE_ARITH_P (operands[3])
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                return 835; /* *fop_sf_1_mixed */
              if (!nonimmediate_operand (operands[1], SFmode)
                  || !
#line 14275 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && X87_ENABLE_ARITH (SFmode)
   && !(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)
   && !COMMUTATIVE_ARITH_P (operands[3])
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                return -1;
              return 837; /* *fop_sf_1_i387 */

            case DFmode:
              if (!register_operand (operands[0], DFmode)
                  || !binary_fp_operator (operands[3], DFmode)
                  || !nonimmediate_operand (operands[2], DFmode))
                return -1;
              if (nonimmediate_operand (operands[1], DFmode))
                {
                  if (
#line 14186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH
   && COMMUTATIVE_ARITH_P (operands[3])
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                    return 831; /* *fop_df_comm_mixed */
                  if (
#line 14212 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && X87_ENABLE_ARITH (DFmode)
   && COMMUTATIVE_ARITH_P (operands[3])
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                    return 833; /* *fop_df_comm_i387 */
                }
              if (register_mixssei387nonimm_operand (operands[1], DFmode)
                  && 
#line 14241 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH
   && !COMMUTATIVE_ARITH_P (operands[3])
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                return 836; /* *fop_df_1_mixed */
              if (!nonimmediate_operand (operands[1], DFmode)
                  || !
#line 14275 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && X87_ENABLE_ARITH (DFmode)
   && !(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)
   && !COMMUTATIVE_ARITH_P (operands[3])
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                return -1;
              return 838; /* *fop_df_1_i387 */

            case XFmode:
              if (!register_operand (operands[0], XFmode)
                  || !binary_fp_operator (operands[3], XFmode)
                  || !register_operand (operands[1], XFmode)
                  || !register_operand (operands[2], XFmode))
                return -1;
              if (
#line 14393 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387
   && COMMUTATIVE_ARITH_P (operands[3])))
                return 850; /* *fop_xf_comm_i387 */
              if (!
#line 14407 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387
   && !COMMUTATIVE_ARITH_P (operands[3])))
                return -1;
              return 851; /* *fop_xf_1_i387 */

            default:
              return -1;
            }

        case FLOAT:
          x6 = XEXP (x5, 0);
          operands[2] = x6;
          switch (GET_MODE (operands[0]))
            {
            case SFmode:
              switch (pattern366 (x5, SFmode))
                {
                case 0:
                  if (!
#line 14317 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && X87_ENABLE_FLOAT (SFmode, HImode)
   && !(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)
   && (TARGET_USE_HIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                    return -1;
                  return 843; /* *fop_sf_3_i387 */

                case 1:
                  if (!
#line 14317 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && X87_ENABLE_FLOAT (SFmode, SImode)
   && !(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)
   && (TARGET_USE_SIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                    return -1;
                  return 844; /* *fop_sf_3_i387 */

                default:
                  return -1;
                }

            case DFmode:
              switch (pattern366 (x5, DFmode))
                {
                case 0:
                  if (!
#line 14317 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && X87_ENABLE_FLOAT (DFmode, HImode)
   && !(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)
   && (TARGET_USE_HIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                    return -1;
                  return 845; /* *fop_df_3_i387 */

                case 1:
                  if (!
#line 14317 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && X87_ENABLE_FLOAT (DFmode, SImode)
   && !(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)
   && (TARGET_USE_SIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                    return -1;
                  return 846; /* *fop_df_3_i387 */

                default:
                  return -1;
                }

            case XFmode:
              switch (pattern366 (x5, XFmode))
                {
                case 0:
                  if (!
#line 14444 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387
   && (TARGET_USE_HIMODE_FIOP || optimize_function_for_size_p (cfun))))
                    return -1;
                  return 854; /* *fop_xf_3_i387 */

                case 1:
                  if (!
#line 14444 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387
   && (TARGET_USE_SIMODE_FIOP || optimize_function_for_size_p (cfun))))
                    return -1;
                  return 855; /* *fop_xf_3_i387 */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case FLOAT_EXTEND:
          x6 = XEXP (x5, 0);
          operands[2] = x6;
          switch (pattern324 ())
            {
            case 0:
              if (!register_operand (operands[1], DFmode)
                  || GET_MODE (x5) != DFmode
                  || !nonimmediate_operand (operands[2], SFmode)
                  || !
#line 14357 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && X87_ENABLE_ARITH (DFmode)
   && !(TARGET_SSE2 && TARGET_SSE_MATH)))
                return -1;
              return 848; /* *fop_df_5_i387 */

            case 1:
              if (!register_operand (operands[1], XFmode)
                  || GET_MODE (x5) != XFmode)
                return -1;
              switch (GET_MODE (operands[2]))
                {
                case SFmode:
                  if (!nonimmediate_operand (operands[2], SFmode)
                      || !
#line 14480 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
                    return -1;
                  return 858; /* *fop_xf_5_i387 */

                case DFmode:
                  if (!nonimmediate_operand (operands[2], DFmode)
                      || !
#line 14480 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
                    return -1;
                  return 859; /* *fop_xf_5_i387 */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    case FLOAT:
      x7 = XEXP (x4, 0);
      operands[1] = x7;
      x5 = XEXP (x2, 1);
      operands[2] = x5;
      switch (GET_MODE (operands[0]))
        {
        case SFmode:
          switch (pattern325 (x4, SFmode))
            {
            case 0:
              if (!
#line 14296 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && X87_ENABLE_FLOAT (SFmode, HImode)
   && !(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)
   && (TARGET_USE_HIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                return -1;
              return 839; /* *fop_sf_2_i387 */

            case 1:
              if (!
#line 14296 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && X87_ENABLE_FLOAT (SFmode, SImode)
   && !(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)
   && (TARGET_USE_SIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                return -1;
              return 840; /* *fop_sf_2_i387 */

            default:
              return -1;
            }

        case DFmode:
          switch (pattern325 (x4, DFmode))
            {
            case 0:
              if (!
#line 14296 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && X87_ENABLE_FLOAT (DFmode, HImode)
   && !(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)
   && (TARGET_USE_HIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                return -1;
              return 841; /* *fop_df_2_i387 */

            case 1:
              if (!
#line 14296 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && X87_ENABLE_FLOAT (DFmode, SImode)
   && !(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)
   && (TARGET_USE_SIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                return -1;
              return 842; /* *fop_df_2_i387 */

            default:
              return -1;
            }

        case XFmode:
          switch (pattern325 (x4, XFmode))
            {
            case 0:
              if (!
#line 14425 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387
   && (TARGET_USE_HIMODE_FIOP || optimize_function_for_size_p (cfun))))
                return -1;
              return 852; /* *fop_xf_2_i387 */

            case 1:
              if (!
#line 14425 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387
   && (TARGET_USE_SIMODE_FIOP || optimize_function_for_size_p (cfun))))
                return -1;
              return 853; /* *fop_xf_2_i387 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case FLOAT_EXTEND:
      x7 = XEXP (x4, 0);
      operands[1] = x7;
      x5 = XEXP (x2, 1);
      switch (GET_CODE (x5))
        {
        case REG:
        case SUBREG:
          operands[2] = x5;
          switch (pattern324 ())
            {
            case 0:
              if (GET_MODE (x4) != DFmode
                  || !nonimmediate_operand (operands[1], SFmode)
                  || !register_operand (operands[2], DFmode)
                  || !
#line 14338 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && X87_ENABLE_ARITH (DFmode)
   && !(TARGET_SSE2 && TARGET_SSE_MATH)
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                return -1;
              return 847; /* *fop_df_4_i387 */

            case 1:
              if (GET_MODE (x4) != XFmode
                  || !register_operand (operands[2], XFmode))
                return -1;
              switch (GET_MODE (operands[1]))
                {
                case SFmode:
                  if (!nonimmediate_operand (operands[1], SFmode)
                      || !
#line 14463 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
                    return -1;
                  return 856; /* *fop_xf_4_i387 */

                case DFmode:
                  if (!nonimmediate_operand (operands[1], DFmode)
                      || !
#line 14463 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
                    return -1;
                  return 857; /* *fop_xf_4_i387 */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case FLOAT_EXTEND:
          x6 = XEXP (x5, 0);
          operands[2] = x6;
          switch (GET_MODE (operands[0]))
            {
            case DFmode:
              if (!register_operand (operands[0], DFmode)
                  || !binary_fp_operator (operands[3], DFmode)
                  || pattern326 (x2, SFmode, DFmode) != 0
                  || !
#line 14376 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && X87_ENABLE_ARITH (DFmode)
   && !(TARGET_SSE2 && TARGET_SSE_MATH)))
                return -1;
              return 849; /* *fop_df_6_i387 */

            case XFmode:
              if (!register_operand (operands[0], XFmode)
                  || !binary_fp_operator (operands[3], XFmode)
                  || GET_MODE (x4) != XFmode
                  || GET_MODE (x5) != XFmode)
                return -1;
              switch (GET_MODE (operands[1]))
                {
                case SFmode:
                  if (!register_operand (operands[1], SFmode)
                      || !nonimmediate_operand (operands[2], SFmode)
                      || !
#line 14498 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
                    return -1;
                  return 860; /* *fop_xf_6_i387 */

                case DFmode:
                  if (!register_operand (operands[1], DFmode)
                      || !nonimmediate_operand (operands[2], DFmode)
                      || !
#line 14498 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
                    return -1;
                  return 861; /* *fop_xf_6_i387 */

                default:
                  return -1;
                }

            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;
  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:
    case MEM:
      operands[1] = x4;
      switch (GET_MODE (operands[0]))
        {
        case XFmode:
          if (!register_operand (operands[0], XFmode)
              || GET_MODE (x3) != XFmode
              || !register_operand (operands[1], XFmode)
              || !
#line 14526 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387))
            return -1;
          return 864; /* sqrtxf2 */

        case SFmode:
          if (!register_operand (operands[0], SFmode)
              || GET_MODE (x3) != SFmode
              || !nonimmediate_operand (operands[1], SFmode)
              || !
#line 14573 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH))
            return -1;
          return 868; /* *sqrtsf2_sse */

        case DFmode:
          if (!register_operand (operands[0], DFmode)
              || GET_MODE (x3) != DFmode
              || !nonimmediate_operand (operands[1], DFmode)
              || !
#line 14573 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH))
            return -1;
          return 869; /* *sqrtdf2_sse */

        case V16SFmode:
          if (!register_operand (operands[0], V16SFmode)
              || GET_MODE (x3) != V16SFmode
              || !vector_operand (operands[1], V16SFmode)
              || !(
#line 1857 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1 && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 1512; /* avx512f_sqrtv16sf2 */

        case V8SFmode:
          if (!register_operand (operands[0], V8SFmode)
              || GET_MODE (x3) != V8SFmode
              || !vector_operand (operands[1], V8SFmode)
              || !(
#line 1857 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1 && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 1516; /* avx_sqrtv8sf2 */

        case V4SFmode:
          if (!register_operand (operands[0], V4SFmode)
              || GET_MODE (x3) != V4SFmode
              || !vector_operand (operands[1], V4SFmode)
              || !
#line 1857 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1 && 1))
            return -1;
          return 1518; /* sse_sqrtv4sf2 */

        case V8DFmode:
          if (!register_operand (operands[0], V8DFmode)
              || GET_MODE (x3) != V8DFmode
              || !vector_operand (operands[1], V8DFmode)
              || !(
#line 1857 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1 && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 1520; /* avx512f_sqrtv8df2 */

        case V4DFmode:
          if (!register_operand (operands[0], V4DFmode)
              || GET_MODE (x3) != V4DFmode
              || !vector_operand (operands[1], V4DFmode)
              || !(
#line 1857 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1 && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 1524; /* avx_sqrtv4df2 */

        case V2DFmode:
          if (!register_operand (operands[0], V2DFmode)
              || GET_MODE (x3) != V2DFmode
              || !vector_operand (operands[1], V2DFmode)
              || !(
#line 1857 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1 && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return -1;
          return 1526; /* sse2_sqrtv2df2 */

        default:
          return -1;
        }

    case FLOAT_EXTEND:
      if (GET_MODE (x4) != XFmode
          || !register_operand (operands[0], XFmode)
          || GET_MODE (x3) != XFmode)
        return -1;
      x5 = XEXP (x4, 0);
      operands[1] = x5;
      switch (GET_MODE (operands[1]))
        {
        case SFmode:
          if (!register_operand (operands[1], SFmode)
              || !
#line 14539 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387))
            return -1;
          return 865; /* sqrt_extendsfxf2_i387 */

        case DFmode:
          if (!register_operand (operands[1], DFmode)
              || !
#line 14539 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387))
            return -1;
          return 866; /* sqrt_extenddfxf2_i387 */

        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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (XVECLEN (x2, 0))
    {
    case 1:
      switch (XINT (x2, 1))
        {
        case 19:
          if (GET_MODE (x2) != BLKmode)
            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 (!memory_operand (operands[0], BLKmode)
              || !
#line 18976 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_FXSR))
            return -1;
          return 1033; /* fxsave */

        case 21:
          if (GET_MODE (x2) != BLKmode)
            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 (!memory_operand (operands[0], BLKmode)
              || !
#line 18986 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && TARGET_FXSR))
            return -1;
          return 1034; /* fxsave64 */

        case 23:
          if (GET_MODE (x2) != BLKmode)
            return -1;
          x4 = XEXP (x1, 0);
          operands[0] = x4;
          if (!memory_operand (operands[0], BLKmode))
            return -1;
          x3 = XVECEXP (x2, 0, 0);
          operands[1] = x3;
          if (!register_operand (operands[1], DImode)
              || !
#line 19054 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_XSAVE))
            return -1;
          return 1037; /* xsave */

        case 27:
          if (GET_MODE (x2) != BLKmode)
            return -1;
          x4 = XEXP (x1, 0);
          operands[0] = x4;
          if (!memory_operand (operands[0], BLKmode))
            return -1;
          x3 = XVECEXP (x2, 0, 0);
          operands[1] = x3;
          if (!register_operand (operands[1], DImode)
              || !(
#line 19054 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_XSAVE) && 
#line 19015 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_XSAVEOPT)))
            return -1;
          return 1038; /* xsaveopt */

        case 33:
          if (GET_MODE (x2) != BLKmode)
            return -1;
          x4 = XEXP (x1, 0);
          operands[0] = x4;
          if (!memory_operand (operands[0], BLKmode))
            return -1;
          x3 = XVECEXP (x2, 0, 0);
          operands[1] = x3;
          if (!register_operand (operands[1], DImode)
              || !(
#line 19054 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_XSAVE) && 
#line 19016 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_XSAVEC)))
            return -1;
          return 1039; /* xsavec */

        case 29:
          if (GET_MODE (x2) != BLKmode)
            return -1;
          x4 = XEXP (x1, 0);
          operands[0] = x4;
          if (!memory_operand (operands[0], BLKmode))
            return -1;
          x3 = XVECEXP (x2, 0, 0);
          operands[1] = x3;
          if (!register_operand (operands[1], DImode)
              || !(
#line 19054 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_XSAVE) && 
#line 19017 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_XSAVES)))
            return -1;
          return 1040; /* xsaves */

        case 35:
          if (pnum_clobbers == NULL
              || GET_MODE (x2) != BLKmode)
            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 (!memory_operand (operands[0], BLKmode)
              || !
#line 19145 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
            return -1;
          *pnum_clobbers = 9;
          return 1055; /* fnstenv */

        case 37:
          if (GET_MODE (x2) != HImode)
            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 (!nonimmediate_operand (operands[0], HImode)
              || !
#line 19175 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
            return -1;
          return 1057; /* fnstsw */

        case 44:
          if (GET_MODE (x2) != CCZmode)
            return -1;
          x3 = XVECEXP (x2, 0, 0);
          if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x4 = XEXP (x1, 0);
          if (GET_CODE (x4) != REG
              || REGNO (x4) != 17
              || GET_MODE (x4) != CCZmode
              || !
#line 19412 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_RTM))
            return -1;
          return 1085; /* xtest_1 */

        default:
          return -1;
        }

    case 2:
      x4 = XEXP (x1, 0);
      operands[0] = x4;
      x5 = XVECEXP (x2, 0, 1);
      operands[2] = x5;
      switch (XINT (x2, 1))
        {
        case 23:
          if (pattern186 (x2) != 0
              || !
#line 19067 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && TARGET_XSAVE))
            return -1;
          return 1041; /* xsave_rex64 */

        case 27:
          if (pattern186 (x2) != 0
              || !(
#line 19067 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && TARGET_XSAVE) && 
#line 19015 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_XSAVEOPT)))
            return -1;
          return 1042; /* xsaveopt_rex64 */

        case 33:
          if (pattern186 (x2) != 0
              || !(
#line 19067 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && TARGET_XSAVE) && 
#line 19016 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_XSAVEC)))
            return -1;
          return 1043; /* xsavec_rex64 */

        case 29:
          if (pattern186 (x2) != 0
              || !(
#line 19067 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && TARGET_XSAVE) && 
#line 19017 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_XSAVES)))
            return -1;
          return 1044; /* xsaves_rex64 */

        case 25:
          if (pattern186 (x2) != 0
              || !
#line 19080 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && TARGET_XSAVE))
            return -1;
          return 1045; /* xsave64 */

        case 28:
          if (pattern186 (x2) != 0
              || !(
#line 19080 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && TARGET_XSAVE) && 
#line 19021 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_XSAVEOPT)))
            return -1;
          return 1046; /* xsaveopt64 */

        case 34:
          if (pattern186 (x2) != 0
              || !(
#line 19080 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && TARGET_XSAVE) && 
#line 19022 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_XSAVEC)))
            return -1;
          return 1047; /* xsavec64 */

        case 31:
          if (pattern186 (x2) != 0
              || !(
#line 19080 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && TARGET_XSAVE) && 
#line 19023 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_XSAVES)))
            return -1;
          return 1048; /* xsaves64 */

        case 63:
          if (pnum_clobbers == NULL
              || !const_int_operand (operands[2], SImode))
            return -1;
          x3 = XVECEXP (x2, 0, 0);
          switch (GET_CODE (x3))
            {
            case PLUS:
              switch (pattern368 (x2))
                {
                case 0:
                  *pnum_clobbers = 1;
                  return 5000; /* atomic_addqi */

                case 1:
                  *pnum_clobbers = 1;
                  return 5001; /* atomic_addhi */

                default:
                  return -1;
                }

            case MINUS:
              switch (pattern368 (x2))
                {
                case 0:
                  *pnum_clobbers = 1;
                  return 5004; /* atomic_subqi */

                case 1:
                  *pnum_clobbers = 1;
                  return 5005; /* atomic_subhi */

                default:
                  return -1;
                }

            case AND:
              switch (pattern368 (x2))
                {
                case 0:
                  *pnum_clobbers = 1;
                  return 5008; /* atomic_andqi */

                case 1:
                  *pnum_clobbers = 1;
                  return 5011; /* atomic_andhi */

                default:
                  return -1;
                }

            case IOR:
              switch (pattern368 (x2))
                {
                case 0:
                  *pnum_clobbers = 1;
                  return 5009; /* atomic_orqi */

                case 1:
                  *pnum_clobbers = 1;
                  return 5012; /* atomic_orhi */

                default:
                  return -1;
                }

            case XOR:
              switch (pattern368 (x2))
                {
                case 0:
                  *pnum_clobbers = 1;
                  return 5010; /* atomic_xorqi */

                case 1:
                  *pnum_clobbers = 1;
                  return 5013; /* atomic_xorhi */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 3:
      if (XINT (x2, 1) != 14
          || pattern52 (x1, CCCmode) != 0
          || !nonimmediate_operand (operands[1], SImode))
        return -1;
      x6 = XVECEXP (x2, 0, 2);
      operands[2] = x6;
      if (!const_int_operand (operands[2], SImode))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case SImode:
          if (!register_operand (operands[0], SImode)
              || !
#line 19271 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LWP))
            return -1;
          return 1065; /* *lwp_lwpinssi3_1 */

        case DImode:
          if (!register_operand (operands[0], DImode)
              || !(
#line 19271 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LWP) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          return 1066; /* *lwp_lwpinsdi3_1 */

        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, x16, x17;
  rtx x18;
  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_DOUBLE:
    case CONST_VECTOR:
    case REG:
    case SUBREG:
    case MEM:
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      switch (GET_MODE (operands[0]))
        {
        case V2SFmode:
          if (!register_operand (operands[0], V2SFmode)
              || GET_MODE (x2) != V2SFmode
              || !nonimmediate_operand (operands[1], SFmode))
            return -1;
          operands[2] = x3;
          if (vector_move_operand (operands[2], SFmode))
            {
              if (
#line 577 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX && !TARGET_SSE))
                return 1141; /* *mmx_concatv2sf */
              if (
#line 6767 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                return 2487; /* *vec_concatv2sf_sse4_1 */
            }
          if (!reg_or_0_operand (operands[2], SFmode)
              || !
#line 6794 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
            return -1;
          return 2488; /* *vec_concatv2sf_sse */

        case V2SImode:
          if (!register_operand (operands[0], V2SImode)
              || GET_MODE (x2) != V2SImode
              || !nonimmediate_operand (operands[1], SImode))
            return -1;
          operands[2] = x3;
          if (vector_move_operand (operands[2], SImode))
            {
              if (
#line 1270 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX && !TARGET_SSE))
                return 1211; /* *mmx_concatv2si */
              if (
#line 13551 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                return 3708; /* *vec_concatv2si_sse4_1 */
            }
          if (!reg_or_0_operand (operands[2], SImode)
              || !
#line 13577 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && !TARGET_SSE4_1))
            return -1;
          return 3709; /* *vec_concatv2si */

        case V4SFmode:
          if (pattern269 (x2, V2SFmode, V4SFmode) != 0
              || !
#line 6808 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
            return -1;
          return 2489; /* *vec_concatv4sf */

        case V2DFmode:
          if (pattern270 (x2, DFmode, V2DFmode) != 0
              || !
#line 8958 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (!(MEM_P (operands[1]) && MEM_P (operands[2]))
       || (TARGET_SSE3 && rtx_equal_p (operands[1], operands[2])))))
            return -1;
          return 2763; /* vec_concatv2df */

        case V4SImode:
          if (pattern269 (x2, V2SImode, V4SImode) != 0
              || !
#line 13595 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
            return -1;
          return 3710; /* *vec_concatv4si */

        case V2DImode:
          if (pattern270 (x2, DImode, V2DImode) != 0
              || !
#line 13616 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
            return -1;
          return 3711; /* vec_concatv2di */

        case V32QImode:
          if (!register_operand (operands[0], V32QImode)
              || GET_MODE (x2) != V32QImode)
            return -1;
          if (rtx_equal_p (x3, operands[1]))
            {
              if (memory_operand (operands[1], V16QImode)
                  && 
#line 17399 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))
                return 4268; /* avx2_vbroadcasti128_v32qi */
              if (nonimmediate_operand (operands[1], V16QImode)
                  && 
#line 17484 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
                return 4282; /* avx_vbroadcastf128_v32qi */
            }
          if (!register_operand (operands[1], V16QImode))
            return -1;
          operands[2] = x3;
          if (!vector_move_operand (operands[2], V16QImode)
              || !
#line 18497 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return -1;
          return 4560; /* avx_vec_concatv32qi */

        case V16HImode:
          if (!register_operand (operands[0], V16HImode)
              || GET_MODE (x2) != V16HImode)
            return -1;
          if (rtx_equal_p (x3, operands[1]))
            {
              if (memory_operand (operands[1], V8HImode)
                  && 
#line 17399 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))
                return 4269; /* avx2_vbroadcasti128_v16hi */
              if (nonimmediate_operand (operands[1], V8HImode)
                  && 
#line 17484 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
                return 4283; /* avx_vbroadcastf128_v16hi */
            }
          if (!register_operand (operands[1], V8HImode))
            return -1;
          operands[2] = x3;
          if (!vector_move_operand (operands[2], V8HImode)
              || !
#line 18497 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return -1;
          return 4561; /* avx_vec_concatv16hi */

        case V8SImode:
          if (!register_operand (operands[0], V8SImode)
              || GET_MODE (x2) != V8SImode)
            return -1;
          if (rtx_equal_p (x3, operands[1]))
            {
              if (memory_operand (operands[1], V4SImode)
                  && 
#line 17399 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))
                return 4270; /* avx2_vbroadcasti128_v8si */
              if (nonimmediate_operand (operands[1], V4SImode)
                  && 
#line 17484 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
                return 4284; /* avx_vbroadcastf128_v8si */
            }
          if (!register_operand (operands[1], V4SImode))
            return -1;
          operands[2] = x3;
          if (!vector_move_operand (operands[2], V4SImode)
              || !
#line 18497 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return -1;
          return 4562; /* avx_vec_concatv8si */

        case V4DImode:
          if (!register_operand (operands[0], V4DImode)
              || GET_MODE (x2) != V4DImode)
            return -1;
          if (rtx_equal_p (x3, operands[1]))
            {
              if (memory_operand (operands[1], V2DImode)
                  && 
#line 17399 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))
                return 4271; /* avx2_vbroadcasti128_v4di */
              if (nonimmediate_operand (operands[1], V2DImode)
                  && 
#line 17484 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
                return 4285; /* avx_vbroadcastf128_v4di */
            }
          if (!register_operand (operands[1], V2DImode))
            return -1;
          operands[2] = x3;
          if (!vector_move_operand (operands[2], V2DImode)
              || !
#line 18497 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return -1;
          return 4563; /* avx_vec_concatv4di */

        case V8SFmode:
          if (!register_operand (operands[0], V8SFmode)
              || GET_MODE (x2) != V8SFmode)
            return -1;
          if (nonimmediate_operand (operands[1], V4SFmode)
              && rtx_equal_p (x3, operands[1])
              && 
#line 17484 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return 4286; /* avx_vbroadcastf128_v8sf */
          if (!register_operand (operands[1], V4SFmode))
            return -1;
          operands[2] = x3;
          if (!vector_move_operand (operands[2], V4SFmode)
              || !
#line 18497 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return -1;
          return 4564; /* avx_vec_concatv8sf */

        case V4DFmode:
          if (!register_operand (operands[0], V4DFmode)
              || GET_MODE (x2) != V4DFmode)
            return -1;
          if (nonimmediate_operand (operands[1], V2DFmode)
              && rtx_equal_p (x3, operands[1])
              && 
#line 17484 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return 4287; /* avx_vbroadcastf128_v4df */
          if (!register_operand (operands[1], V2DFmode))
            return -1;
          operands[2] = x3;
          if (!vector_move_operand (operands[2], V2DFmode)
              || !
#line 18497 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return -1;
          return 4565; /* avx_vec_concatv4df */

        case V64QImode:
          if (pattern271 (x2, V32QImode, V64QImode) != 0
              || !(
#line 18497 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX) && 
#line 211 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 4566; /* avx_vec_concatv64qi */

        case V32HImode:
          if (pattern271 (x2, V16HImode, V32HImode) != 0
              || !(
#line 18497 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX) && 
#line 211 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 4567; /* avx_vec_concatv32hi */

        case V16SImode:
          if (pattern271 (x2, V8SImode, V16SImode) != 0
              || !(
#line 18497 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX) && 
#line 211 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 4568; /* avx_vec_concatv16si */

        case V8DImode:
          if (pattern271 (x2, V4DImode, V8DImode) != 0
              || !(
#line 18497 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX) && 
#line 212 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 4569; /* avx_vec_concatv8di */

        case V16SFmode:
          if (pattern271 (x2, V8SFmode, V16SFmode) != 0
              || !(
#line 18497 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX) && 
#line 212 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 4570; /* avx_vec_concatv16sf */

        case V8DFmode:
          if (pattern271 (x2, V4DFmode, V8DFmode) != 0
              || !(
#line 18497 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX) && 
#line 212 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 4571; /* avx_vec_concatv8df */

        default:
          return -1;
        }

    case VEC_SELECT:
      x5 = XEXP (x3, 1);
      if (GET_CODE (x5) != PARALLEL)
        return -1;
      x4 = XEXP (x2, 0);
      operands[2] = x4;
      x6 = XEXP (x3, 0);
      operands[1] = x6;
      switch (XVECLEN (x5, 0))
        {
        case 2:
          x7 = XVECEXP (x5, 0, 0);
          if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
            return -1;
          x8 = XVECEXP (x5, 0, 1);
          if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case V4SFmode:
              if (!nonimmediate_operand (operands[0], V4SFmode)
                  || GET_MODE (x2) != V4SFmode
                  || !nonimmediate_operand (operands[2], V2SFmode)
                  || GET_MODE (x3) != V2SFmode
                  || !nonimmediate_operand (operands[1], V4SFmode)
                  || !
#line 6692 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
                return -1;
              return 2480; /* sse_loadlps */

            case V4DImode:
              if (pattern523 (x2, V4DImode, V2DImode) != 0
                  || !
#line 18160 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
                return -1;
              return 4467; /* vec_set_lo_v4di */

            case V4DFmode:
              if (pattern523 (x2, V4DFmode, V2DFmode) != 0
                  || !
#line 18160 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
                return -1;
              return 4469; /* vec_set_lo_v4df */

            default:
              return -1;
            }

        case 1:
          x7 = XVECEXP (x5, 0, 0);
          if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
              || !nonimmediate_operand (operands[0], V2DFmode)
              || GET_MODE (x2) != V2DFmode
              || !nonimmediate_operand (operands[2], DFmode)
              || GET_MODE (x3) != DFmode
              || !vector_move_operand (operands[1], V2DFmode)
              || !
#line 8867 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
            return -1;
          return 2759; /* sse2_loadlpd */

        case 8:
          x7 = XVECEXP (x5, 0, 0);
          if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
            return -1;
          x8 = XVECEXP (x5, 0, 1);
          if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
            return -1;
          x9 = XVECEXP (x5, 0, 2);
          if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 10]
              || pattern524 (x5, 15, 14, 13, 12, 11) != 0)
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case V16SFmode:
              if (pattern523 (x2, V16SFmode, V8SFmode) != 0
                  || !
#line 12434 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ))
                return -1;
              return 3640; /* vec_set_lo_v16sf */

            case V16SImode:
              if (pattern523 (x2, V16SImode, V8SImode) != 0
                  || !
#line 12434 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ))
                return -1;
              return 3642; /* vec_set_lo_v16si */

            case V16HImode:
              if (pattern523 (x2, V16HImode, V8HImode) != 0
                  || !
#line 18245 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
                return -1;
              return 4483; /* vec_set_lo_v16hi */

            default:
              return -1;
            }

        case 4:
          x7 = XVECEXP (x5, 0, 0);
          if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
            return -1;
          x8 = XVECEXP (x5, 0, 1);
          if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
            return -1;
          x9 = XVECEXP (x5, 0, 2);
          if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
            return -1;
          x10 = XVECEXP (x5, 0, 3);
          if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case V8DFmode:
              if (pattern523 (x2, V8DFmode, V4DFmode) != 0
                  || !
#line 12466 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 3648; /* vec_set_lo_v8df */

            case V8DImode:
              if (pattern523 (x2, V8DImode, V4DImode) != 0
                  || !
#line 12466 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 3650; /* vec_set_lo_v8di */

            case V8SImode:
              if (pattern523 (x2, V8SImode, V4SImode) != 0
                  || !
#line 18201 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
                return -1;
              return 4475; /* vec_set_lo_v8si */

            case V8SFmode:
              if (pattern523 (x2, V8SFmode, V4SFmode) != 0
                  || !
#line 18201 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
                return -1;
              return 4477; /* vec_set_lo_v8sf */

            default:
              return -1;
            }

        case 16:
          x7 = XVECEXP (x5, 0, 0);
          if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
            return -1;
          x8 = XVECEXP (x5, 0, 1);
          if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 17])
            return -1;
          x9 = XVECEXP (x5, 0, 2);
          if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 18]
              || pattern524 (x5, 23, 22, 21, 20, 19) != 0)
            return -1;
          x11 = XVECEXP (x5, 0, 8);
          if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 24])
            return -1;
          x12 = XVECEXP (x5, 0, 9);
          if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 25])
            return -1;
          x13 = XVECEXP (x5, 0, 10);
          if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 26])
            return -1;
          x14 = XVECEXP (x5, 0, 11);
          if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 27])
            return -1;
          x15 = XVECEXP (x5, 0, 12);
          if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 28])
            return -1;
          x16 = XVECEXP (x5, 0, 13);
          if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 29])
            return -1;
          x17 = XVECEXP (x5, 0, 14);
          if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 30])
            return -1;
          x18 = XVECEXP (x5, 0, 15);
          if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 31]
              || pattern523 (x2, V32QImode, V16QImode) != 0
              || !
#line 18285 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return -1;
          return 4485; /* vec_set_lo_v32qi */

        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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 2);
  if (!register_operand (x4, QImode))
    return -1;
  x5 = XEXP (x3, 0);
  switch (GET_CODE (x5))
    {
    case FLOAT:
      switch (pattern194 (x2))
        {
        case 0:
          if (!
#line 4944 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && TARGET_AVX512VL))
            return -1;
          return 2299; /* floatv2div2sf2_mask */

        case 1:
          if (!
#line 4959 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && TARGET_AVX512VL))
            return -1;
          return 2301; /* *floatv2div2sf2_mask_1 */

        default:
          return -1;
        }

    case UNSIGNED_FLOAT:
      switch (pattern194 (x2))
        {
        case 0:
          if (!
#line 4944 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && TARGET_AVX512VL))
            return -1;
          return 2300; /* ufloatv2div2sf2_mask */

        case 1:
          if (!
#line 4959 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && TARGET_AVX512VL))
            return -1;
          return 2302; /* *ufloatv2div2sf2_mask_1 */

        default:
          return -1;
        }

    case SS_TRUNCATE:
      switch (pattern202 (x2))
        {
        case 0:
          if (!
#line 9164 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2830; /* avx512vl_ss_truncatev2div2qi2_mask */

        case 1:
          if (!
#line 9522 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2923; /* avx512vl_ss_truncatev2div2hi2_mask */

        case 2:
          if (!
#line 9605 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2938; /* avx512vl_ss_truncatev2div2si2_mask */

        case 3:
          if (!
#line 9210 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2836; /* avx512vl_ss_truncatev2div2qi2_mask_store */

        case 4:
          if (!
#line 9560 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2929; /* avx512vl_ss_truncatev2div2hi2_mask_store */

        case 5:
          if (!
#line 9639 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2944; /* avx512vl_ss_truncatev2div2si2_mask_store */

        case 6:
          if (!
#line 9254 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2845; /* avx512vl_ss_truncatev4siv4qi2_mask */

        case 7:
          if (!
#line 9254 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2848; /* avx512vl_ss_truncatev4div4qi2_mask */

        case 8:
          if (!
#line 9447 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2902; /* avx512vl_ss_truncatev4siv4hi2_mask */

        case 9:
          if (!
#line 9447 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2905; /* avx512vl_ss_truncatev4div4hi2_mask */

        case 10:
          if (!
#line 9300 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2857; /* avx512vl_ss_truncatev4siv4qi2_mask_store */

        case 11:
          if (!
#line 9300 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2860; /* avx512vl_ss_truncatev4div4qi2_mask_store */

        case 12:
          if (!
#line 9485 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2914; /* avx512vl_ss_truncatev4siv4hi2_mask_store */

        case 13:
          if (!
#line 9485 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2917; /* avx512vl_ss_truncatev4div4hi2_mask_store */

        case 14:
          if (!(
#line 9345 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 9308 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return -1;
          return 2869; /* avx512vl_ss_truncatev8hiv8qi2_mask */

        case 15:
          if (!
#line 9345 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2872; /* avx512vl_ss_truncatev8siv8qi2_mask */

        case 16:
          if (!
#line 9696 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2953; /* avx512f_ss_truncatev8div16qi2_mask */

        case 17:
          if (!(
#line 9391 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 9308 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return -1;
          return 2881; /* avx512vl_ss_truncatev8hiv8qi2_mask_store */

        case 18:
          if (!
#line 9391 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2884; /* avx512vl_ss_truncatev8siv8qi2_mask_store */

        case 19:
          if (!
#line 9742 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2959; /* avx512f_ss_truncatev8div16qi2_mask_store */

        case 20:
          if (!
#line 9185 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2833; /* *avx512vl_ss_truncatev2div2qi2_mask_1 */

        case 21:
          if (!
#line 9539 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2926; /* *avx512vl_ss_truncatev2div2hi2_mask_1 */

        case 22:
          if (!
#line 9620 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2941; /* *avx512vl_ss_truncatev2div2si2_mask_1 */

        case 23:
          if (!
#line 9275 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2851; /* *avx512vl_ss_truncatev4siv4qi2_mask_1 */

        case 24:
          if (!
#line 9275 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2854; /* *avx512vl_ss_truncatev4div4qi2_mask_1 */

        case 25:
          if (!
#line 9464 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2908; /* *avx512vl_ss_truncatev4siv4hi2_mask_1 */

        case 26:
          if (!
#line 9464 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2911; /* *avx512vl_ss_truncatev4div4hi2_mask_1 */

        case 27:
          if (!(
#line 9366 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 9308 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return -1;
          return 2875; /* *avx512vl_ss_truncatev8hiv8qi2_mask_1 */

        case 28:
          if (!
#line 9366 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2878; /* *avx512vl_ss_truncatev8siv8qi2_mask_1 */

        case 29:
          if (!
#line 9717 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2956; /* *avx512f_ss_truncatev8div16qi2_mask_1 */

        default:
          return -1;
        }

    case TRUNCATE:
      switch (pattern202 (x2))
        {
        case 0:
          if (!
#line 9164 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2831; /* avx512vl_truncatev2div2qi2_mask */

        case 1:
          if (!
#line 9522 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2924; /* avx512vl_truncatev2div2hi2_mask */

        case 2:
          if (!
#line 9605 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2939; /* avx512vl_truncatev2div2si2_mask */

        case 3:
          if (!
#line 9210 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2837; /* avx512vl_truncatev2div2qi2_mask_store */

        case 4:
          if (!
#line 9560 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2930; /* avx512vl_truncatev2div2hi2_mask_store */

        case 5:
          if (!
#line 9639 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2945; /* avx512vl_truncatev2div2si2_mask_store */

        case 6:
          if (!
#line 9254 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2846; /* avx512vl_truncatev4siv4qi2_mask */

        case 7:
          if (!
#line 9254 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2849; /* avx512vl_truncatev4div4qi2_mask */

        case 8:
          if (!
#line 9447 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2903; /* avx512vl_truncatev4siv4hi2_mask */

        case 9:
          if (!
#line 9447 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2906; /* avx512vl_truncatev4div4hi2_mask */

        case 10:
          if (!
#line 9300 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2858; /* avx512vl_truncatev4siv4qi2_mask_store */

        case 11:
          if (!
#line 9300 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2861; /* avx512vl_truncatev4div4qi2_mask_store */

        case 12:
          if (!
#line 9485 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2915; /* avx512vl_truncatev4siv4hi2_mask_store */

        case 13:
          if (!
#line 9485 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2918; /* avx512vl_truncatev4div4hi2_mask_store */

        case 14:
          if (!(
#line 9345 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 9308 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return -1;
          return 2870; /* avx512vl_truncatev8hiv8qi2_mask */

        case 15:
          if (!
#line 9345 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2873; /* avx512vl_truncatev8siv8qi2_mask */

        case 16:
          if (!
#line 9696 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2954; /* avx512f_truncatev8div16qi2_mask */

        case 17:
          if (!(
#line 9391 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 9308 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return -1;
          return 2882; /* avx512vl_truncatev8hiv8qi2_mask_store */

        case 18:
          if (!
#line 9391 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2885; /* avx512vl_truncatev8siv8qi2_mask_store */

        case 19:
          if (!
#line 9742 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2960; /* avx512f_truncatev8div16qi2_mask_store */

        case 20:
          if (!
#line 9185 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2834; /* *avx512vl_truncatev2div2qi2_mask_1 */

        case 21:
          if (!
#line 9539 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2927; /* *avx512vl_truncatev2div2hi2_mask_1 */

        case 22:
          if (!
#line 9620 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2942; /* *avx512vl_truncatev2div2si2_mask_1 */

        case 23:
          if (!
#line 9275 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2852; /* *avx512vl_truncatev4siv4qi2_mask_1 */

        case 24:
          if (!
#line 9275 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2855; /* *avx512vl_truncatev4div4qi2_mask_1 */

        case 25:
          if (!
#line 9464 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2909; /* *avx512vl_truncatev4siv4hi2_mask_1 */

        case 26:
          if (!
#line 9464 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2912; /* *avx512vl_truncatev4div4hi2_mask_1 */

        case 27:
          if (!(
#line 9366 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 9308 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return -1;
          return 2876; /* *avx512vl_truncatev8hiv8qi2_mask_1 */

        case 28:
          if (!
#line 9366 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2879; /* *avx512vl_truncatev8siv8qi2_mask_1 */

        case 29:
          if (!
#line 9717 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2957; /* *avx512f_truncatev8div16qi2_mask_1 */

        default:
          return -1;
        }

    case US_TRUNCATE:
      switch (pattern202 (x2))
        {
        case 0:
          if (!
#line 9164 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2832; /* avx512vl_us_truncatev2div2qi2_mask */

        case 1:
          if (!
#line 9522 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2925; /* avx512vl_us_truncatev2div2hi2_mask */

        case 2:
          if (!
#line 9605 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2940; /* avx512vl_us_truncatev2div2si2_mask */

        case 3:
          if (!
#line 9210 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2838; /* avx512vl_us_truncatev2div2qi2_mask_store */

        case 4:
          if (!
#line 9560 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2931; /* avx512vl_us_truncatev2div2hi2_mask_store */

        case 5:
          if (!
#line 9639 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2946; /* avx512vl_us_truncatev2div2si2_mask_store */

        case 6:
          if (!
#line 9254 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2847; /* avx512vl_us_truncatev4siv4qi2_mask */

        case 7:
          if (!
#line 9254 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2850; /* avx512vl_us_truncatev4div4qi2_mask */

        case 8:
          if (!
#line 9447 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2904; /* avx512vl_us_truncatev4siv4hi2_mask */

        case 9:
          if (!
#line 9447 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2907; /* avx512vl_us_truncatev4div4hi2_mask */

        case 10:
          if (!
#line 9300 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2859; /* avx512vl_us_truncatev4siv4qi2_mask_store */

        case 11:
          if (!
#line 9300 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2862; /* avx512vl_us_truncatev4div4qi2_mask_store */

        case 12:
          if (!
#line 9485 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2916; /* avx512vl_us_truncatev4siv4hi2_mask_store */

        case 13:
          if (!
#line 9485 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2919; /* avx512vl_us_truncatev4div4hi2_mask_store */

        case 14:
          if (!(
#line 9345 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 9308 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return -1;
          return 2871; /* avx512vl_us_truncatev8hiv8qi2_mask */

        case 15:
          if (!
#line 9345 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2874; /* avx512vl_us_truncatev8siv8qi2_mask */

        case 16:
          if (!
#line 9696 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2955; /* avx512f_us_truncatev8div16qi2_mask */

        case 17:
          if (!(
#line 9391 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 9308 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return -1;
          return 2883; /* avx512vl_us_truncatev8hiv8qi2_mask_store */

        case 18:
          if (!
#line 9391 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2886; /* avx512vl_us_truncatev8siv8qi2_mask_store */

        case 19:
          if (!
#line 9742 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2961; /* avx512f_us_truncatev8div16qi2_mask_store */

        case 20:
          if (!
#line 9185 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2835; /* *avx512vl_us_truncatev2div2qi2_mask_1 */

        case 21:
          if (!
#line 9539 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2928; /* *avx512vl_us_truncatev2div2hi2_mask_1 */

        case 22:
          if (!
#line 9620 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2943; /* *avx512vl_us_truncatev2div2si2_mask_1 */

        case 23:
          if (!
#line 9275 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2853; /* *avx512vl_us_truncatev4siv4qi2_mask_1 */

        case 24:
          if (!
#line 9275 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2856; /* *avx512vl_us_truncatev4div4qi2_mask_1 */

        case 25:
          if (!
#line 9464 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2910; /* *avx512vl_us_truncatev4siv4hi2_mask_1 */

        case 26:
          if (!
#line 9464 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2913; /* *avx512vl_us_truncatev4div4hi2_mask_1 */

        case 27:
          if (!(
#line 9366 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 9308 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return -1;
          return 2877; /* *avx512vl_us_truncatev8hiv8qi2_mask_1 */

        case 28:
          if (!
#line 9366 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2880; /* *avx512vl_us_truncatev8siv8qi2_mask_1 */

        case 29:
          if (!
#line 9717 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2958; /* *avx512f_us_truncatev8div16qi2_mask_1 */

        default:
          return -1;
        }

    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, 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, 1);
  if (GET_CODE (x3) != VEC_CONCAT)
    return -1;
  x4 = XEXP (x2, 0);
  x5 = XEXP (x4, 0);
  switch (GET_CODE (x5))
    {
    case PLUS:
      switch (pattern192 (x2, PLUS))
        {
        case 0:
          if (!
#line 2233 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return -1;
          return 1641; /* avx_haddv4df3 */

        case 1:
          if (!
#line 2405 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE3))
            return -1;
          return 1649; /* sse3_haddv4sf3 */

        case 2:
          if (!
#line 14069 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3))
            return -1;
          return 3755; /* ssse3_phaddwv4hi3 */

        case 3:
          if (!
#line 14142 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3))
            return -1;
          return 3761; /* ssse3_phadddv4si3 */

        default:
          return -1;
        }

    case MINUS:
      switch (pattern192 (x2, MINUS))
        {
        case 0:
          if (!
#line 2233 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return -1;
          return 1642; /* avx_hsubv4df3 */

        case 1:
          if (!
#line 2405 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE3))
            return -1;
          return 1650; /* sse3_hsubv4sf3 */

        case 2:
          if (!
#line 14069 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3))
            return -1;
          return 3757; /* ssse3_phsubwv4hi3 */

        case 3:
          if (!
#line 14142 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3))
            return -1;
          return 3762; /* ssse3_phsubdv4si3 */

        default:
          return -1;
        }

    case VEC_CONCAT:
      x6 = XEXP (x4, 1);
      if (GET_CODE (x6) != VEC_CONCAT)
        return -1;
      x7 = XEXP (x3, 0);
      if (GET_CODE (x7) != VEC_CONCAT)
        return -1;
      x8 = XEXP (x3, 1);
      if (GET_CODE (x8) != VEC_CONCAT)
        return -1;
      x9 = XEXP (x5, 0);
      switch (GET_CODE (x9))
        {
        case PLUS:
          switch (pattern438 (x2, PLUS))
            {
            case 0:
              if (!
#line 2378 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
                return -1;
              return 1647; /* avx_haddv8sf3 */

            case 1:
              if (!
#line 14036 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3))
                return -1;
              return 3751; /* ssse3_phaddwv8hi3 */

            case 2:
              if (!
#line 14114 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))
                return -1;
              return 3759; /* avx2_phadddv8si3 */

            default:
              return -1;
            }

        case MINUS:
          switch (pattern438 (x2, MINUS))
            {
            case 0:
              if (!
#line 2378 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
                return -1;
              return 1648; /* avx_hsubv8sf3 */

            case 1:
              if (!
#line 14036 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3))
                return -1;
              return 3753; /* ssse3_phsubwv8hi3 */

            case 2:
              if (!
#line 14114 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))
                return -1;
              return 3760; /* avx2_phsubdv8si3 */

            default:
              return -1;
            }

        case VEC_CONCAT:
          if (GET_MODE (x9) != V2HImode)
            return -1;
          x10 = XEXP (x5, 1);
          if (GET_CODE (x10) != VEC_CONCAT
              || GET_MODE (x10) != V2HImode)
            return -1;
          x11 = XEXP (x6, 0);
          if (GET_CODE (x11) != VEC_CONCAT
              || GET_MODE (x11) != V2HImode)
            return -1;
          x12 = XEXP (x6, 1);
          if (GET_CODE (x12) != VEC_CONCAT
              || GET_MODE (x12) != V2HImode)
            return -1;
          x13 = XEXP (x7, 0);
          if (GET_CODE (x13) != VEC_CONCAT
              || GET_MODE (x13) != V2HImode)
            return -1;
          x14 = XEXP (x7, 1);
          if (GET_CODE (x14) != VEC_CONCAT
              || GET_MODE (x14) != V2HImode)
            return -1;
          x15 = XEXP (x8, 0);
          if (GET_CODE (x15) != VEC_CONCAT
              || GET_MODE (x15) != V2HImode)
            return -1;
          x16 = XEXP (x8, 1);
          if (GET_CODE (x16) != VEC_CONCAT
              || GET_MODE (x16) != V2HImode
              || !register_operand (operands[0], V16HImode)
              || GET_MODE (x2) != V16HImode
              || GET_MODE (x4) != V8HImode
              || GET_MODE (x5) != V4HImode)
            return -1;
          x17 = XEXP (x9, 0);
          if (GET_MODE (x17) != HImode)
            return -1;
          x18 = XEXP (x9, 1);
          if (GET_MODE (x18) != HImode)
            return -1;
          x19 = XEXP (x10, 0);
          if (GET_MODE (x19) != HImode)
            return -1;
          x20 = XEXP (x10, 1);
          if (GET_MODE (x20) != HImode
              || GET_MODE (x6) != V4HImode)
            return -1;
          x21 = XEXP (x11, 0);
          if (GET_MODE (x21) != HImode)
            return -1;
          x22 = XEXP (x11, 1);
          if (GET_MODE (x22) != HImode)
            return -1;
          x23 = XEXP (x12, 0);
          if (GET_MODE (x23) != HImode)
            return -1;
          x24 = XEXP (x12, 1);
          if (GET_MODE (x24) != HImode
              || GET_MODE (x3) != V8HImode
              || GET_MODE (x7) != V4HImode)
            return -1;
          x25 = XEXP (x13, 0);
          if (GET_MODE (x25) != HImode)
            return -1;
          x26 = XEXP (x13, 1);
          if (GET_MODE (x26) != HImode)
            return -1;
          x27 = XEXP (x14, 0);
          if (GET_MODE (x27) != HImode)
            return -1;
          x28 = XEXP (x14, 1);
          if (GET_MODE (x28) != HImode
              || GET_MODE (x8) != V4HImode)
            return -1;
          x29 = XEXP (x15, 0);
          if (GET_MODE (x29) != HImode)
            return -1;
          x30 = XEXP (x15, 1);
          if (GET_MODE (x30) != HImode)
            return -1;
          x31 = XEXP (x16, 0);
          if (GET_MODE (x31) != HImode)
            return -1;
          x32 = XEXP (x16, 1);
          if (GET_MODE (x32) != HImode)
            return -1;
          switch (GET_CODE (x17))
            {
            case PLUS:
              if (pattern952 (x2, PLUS) != 0
                  || !
#line 13992 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))
                return -1;
              return 3747; /* avx2_phaddwv16hi3 */

            case SS_PLUS:
              if (pattern952 (x2, SS_PLUS) != 0
                  || !
#line 13992 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))
                return -1;
              return 3748; /* avx2_phaddswv16hi3 */

            case MINUS:
              if (pattern952 (x2, MINUS) != 0
                  || !
#line 13992 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))
                return -1;
              return 3749; /* avx2_phsubwv16hi3 */

            case SS_MINUS:
              if (pattern952 (x2, SS_MINUS) != 0
                  || !
#line 13992 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))
                return -1;
              return 3750; /* avx2_phsubswv16hi3 */

            default:
              return -1;
            }

        case SS_PLUS:
          if (pattern439 (x2, SS_PLUS) != 0
              || !
#line 14036 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3))
            return -1;
          return 3752; /* ssse3_phaddswv8hi3 */

        case SS_MINUS:
          if (pattern439 (x2, SS_MINUS) != 0
              || !
#line 14036 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3))
            return -1;
          return 3754; /* ssse3_phsubswv8hi3 */

        default:
          return -1;
        }

    case SS_PLUS:
      if (pattern193 (x2, SS_PLUS) != 0
          || !
#line 14069 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3))
        return -1;
      return 3756; /* ssse3_phaddswv4hi3 */

    case SS_MINUS:
      if (pattern193 (x2, SS_MINUS) != 0
          || !
#line 14069 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3))
        return -1;
      return 3758; /* ssse3_phsubswv4hi3 */

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) != PARALLEL)
    return -1;
  x5 = XEXP (x3, 0);
  operands[1] = x5;
  switch (XVECLEN (x4, 0))
    {
    case 1:
      x6 = XVECEXP (x4, 0, 0);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x7 = XEXP (x2, 1);
      switch (GET_CODE (x7))
        {
        case CONST_INT:
          if (XWINT (x7, 0) != 0LL
              || pattern385 (x2, V2DImode, DImode) != 0
              || !
#line 1078 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))
            return -1;
          return 1298; /* sse2_movq128 */

        case REG:
        case SUBREG:
        case MEM:
          operands[2] = x7;
          if (!nonimmediate_operand (operands[2], DFmode)
              || pattern486 (x2, V2DFmode, DFmode) != 0
              || !
#line 8810 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
            return -1;
          return 2758; /* sse2_loadhpd */

        default:
          return -1;
        }

    case 2:
      x6 = XVECEXP (x4, 0, 0);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x8 = XVECEXP (x4, 0, 1);
      if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x7 = XEXP (x2, 1);
      operands[2] = x7;
      switch (GET_MODE (operands[0]))
        {
        case V4SFmode:
          if (pattern486 (x2, V4SFmode, V2SFmode) != 0
              || !nonimmediate_operand (operands[2], V2SFmode)
              || !
#line 6637 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
            return -1;
          return 2478; /* sse_loadhps */

        case V4DImode:
          if (pattern487 (x2, V2DImode, V4DImode) != 0
              || !
#line 18180 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return -1;
          return 4471; /* vec_set_hi_v4di */

        case V4DFmode:
          if (pattern487 (x2, V2DFmode, V4DFmode) != 0
              || !
#line 18180 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return -1;
          return 4473; /* vec_set_hi_v4df */

        default:
          return -1;
        }

    case 8:
      if (pattern275 (x4) != 0)
        return -1;
      x7 = XEXP (x2, 1);
      operands[2] = x7;
      switch (GET_MODE (operands[0]))
        {
        case V16SFmode:
          if (pattern487 (x2, V8SFmode, V16SFmode) != 0
              || !
#line 12451 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ))
            return -1;
          return 3644; /* vec_set_hi_v16sf */

        case V16SImode:
          if (pattern487 (x2, V8SImode, V16SImode) != 0
              || !
#line 12451 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ))
            return -1;
          return 3646; /* vec_set_hi_v16si */

        case V16HImode:
          if (pattern487 (x2, V8HImode, V16HImode) != 0
              || !
#line 18263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return -1;
          return 4484; /* vec_set_hi_v16hi */

        default:
          return -1;
        }

    case 4:
      if (pattern276 (x4) != 0)
        return -1;
      x7 = XEXP (x2, 1);
      operands[2] = x7;
      switch (GET_MODE (operands[0]))
        {
        case V8DFmode:
          if (pattern487 (x2, V4DFmode, V8DFmode) != 0
              || !
#line 12481 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 3652; /* vec_set_hi_v8df */

        case V8DImode:
          if (pattern487 (x2, V4DImode, V8DImode) != 0
              || !
#line 12481 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 3654; /* vec_set_hi_v8di */

        case V8SImode:
          if (pattern487 (x2, V4SImode, V8SImode) != 0
              || !
#line 18222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return -1;
          return 4479; /* vec_set_hi_v8si */

        case V8SFmode:
          if (pattern487 (x2, V4SFmode, V8SFmode) != 0
              || !
#line 18222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return -1;
          return 4481; /* vec_set_hi_v8sf */

        default:
          return -1;
        }

    case 16:
      if (pattern275 (x4) != 0
          || pattern571 (x4) != 0
          || pattern697 (x4) != 0
          || !register_operand (operands[0], V32QImode)
          || GET_MODE (x2) != V32QImode
          || GET_MODE (x3) != V16QImode
          || !register_operand (operands[1], V32QImode))
        return -1;
      x7 = XEXP (x2, 1);
      operands[2] = x7;
      if (!nonimmediate_operand (operands[2], V16QImode)
          || !
#line 18307 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
        return -1;
      return 4486; /* vec_set_hi_v32qi */

    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, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  operands[1] = x4;
  x5 = XEXP (x2, 1);
  switch (GET_CODE (x5))
    {
    case SS_TRUNCATE:
      x6 = XEXP (x5, 0);
      operands[2] = x6;
      switch (GET_MODE (operands[0]))
        {
        case V8QImode:
          if (pattern327 (x2, V4HImode, V4QImode, V8QImode) != 0
              || !
#line 1039 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX))
            return -1;
          return 1196; /* mmx_packsswb */

        case V4HImode:
          if (pattern327 (x2, V2SImode, V2HImode, V4HImode) != 0
              || !
#line 1051 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX))
            return -1;
          return 1197; /* mmx_packssdw */

        case V64QImode:
          if (pattern328 (x2, V32HImode, V32QImode, V64QImode) != 0
              || !(
#line 11768 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1) && 
#line 325 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return -1;
          return 3574; /* avx512bw_packsswb */

        case V32QImode:
          if (pattern328 (x2, V16HImode, V16QImode, V32QImode) != 0
              || !(
#line 11768 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1) && 
#line 325 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
            return -1;
          return 3576; /* avx2_packsswb */

        case V16QImode:
          if (pattern328 (x2, V8HImode, V8QImode, V16QImode) != 0
              || !
#line 11768 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1))
            return -1;
          return 3578; /* sse2_packsswb */

        case V32HImode:
          if (pattern328 (x2, V16SImode, V16HImode, V32HImode) != 0
              || !(
#line 11785 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1) && 
#line 328 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return -1;
          return 3580; /* avx512bw_packssdw */

        case V16HImode:
          if (pattern328 (x2, V8SImode, V8HImode, V16HImode) != 0
              || !(
#line 11785 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1) && 
#line 328 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
            return -1;
          return 3582; /* avx2_packssdw */

        case V8HImode:
          if (pattern328 (x2, V4SImode, V4HImode, V8HImode) != 0
              || !
#line 11785 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1))
            return -1;
          return 3584; /* sse2_packssdw */

        default:
          return -1;
        }

    case CONST_INT:
    case CONST_WIDE_INT:
    case CONST_DOUBLE:
    case CONST_VECTOR:
      operands[2] = x5;
      switch (pattern273 (x2))
        {
        case 0:
          if (
#line 9120 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return 2812; /* *avx512vl_ss_truncatev4div4qi2 */
          break;

        case 1:
          if (
#line 9120 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return 2821; /* *avx512vl_ss_truncatev4siv4qi2 */
          break;

        case 2:
          if (
#line 9120 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return 2815; /* *avx512vl_ss_truncatev2div2qi2 */
          break;

        case 3:
          if (
#line 9120 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return 2818; /* *avx512vl_ss_truncatev8siv8qi2 */
          break;

        case 4:
          if ((
#line 9120 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 9106 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return 2824; /* *avx512vl_ss_truncatev8hiv8qi2 */
          break;

        case 5:
          if (
#line 9412 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return 2887; /* *avx512vl_ss_truncatev4div4hi2 */
          break;

        case 6:
          if (
#line 9412 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return 2893; /* *avx512vl_ss_truncatev4siv4hi2 */
          break;

        case 7:
          if (
#line 9412 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return 2890; /* *avx512vl_ss_truncatev2div2hi2 */
          break;

        case 8:
          if (
#line 9573 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return 2932; /* *avx512vl_ss_truncatev2div2si2 */
          break;

        default:
          break;
        }
      if (GET_CODE (x5) != CONST_VECTOR
          || pattern274 (x2) != 0
          || !
#line 9655 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 2947; /* *avx512f_ss_truncatev8div16qi2 */

    case VEC_SELECT:
      switch (pattern189 (x2))
        {
        case 0:
          if (!
#line 9140 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2827; /* *avx512vl_ss_truncatev2div2qi2_store */

        case 1:
          if (!
#line 9230 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2839; /* *avx512vl_ss_truncatev4siv4qi2_store */

        case 2:
          if (!
#line 9230 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2842; /* *avx512vl_ss_truncatev4div4qi2_store */

        case 3:
          if (!(
#line 9321 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 9308 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return -1;
          return 2863; /* *avx512vl_ss_truncatev8hiv8qi2_store */

        case 4:
          if (!
#line 9321 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2866; /* *avx512vl_ss_truncatev8siv8qi2_store */

        case 5:
          if (!
#line 9672 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2950; /* *avx512f_ss_truncatev8div16qi2_store */

        case 6:
          if (!
#line 9427 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2896; /* *avx512vl_ss_truncatev4siv4hi2_store */

        case 7:
          if (!
#line 9427 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2899; /* *avx512vl_ss_truncatev4div4hi2_store */

        case 8:
          if (!
#line 9502 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2920; /* *avx512vl_ss_truncatev2div2hi2_store */

        case 9:
          if (!
#line 9587 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2935; /* *avx512vl_ss_truncatev2div2si2_store */

        default:
          return -1;
        }

    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, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24, x25;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case PLUS:
      x5 = XEXP (x4, 0);
      if (GET_CODE (x5) != VEC_SELECT)
        return -1;
      x6 = XEXP (x5, 1);
      if (GET_CODE (x6) != PARALLEL
          || XVECLEN (x6, 0) != 1)
        return -1;
      x7 = XVECEXP (x6, 0, 0);
      if (GET_CODE (x7) != CONST_INT)
        return -1;
      x8 = XEXP (x4, 1);
      if (GET_CODE (x8) != VEC_SELECT)
        return -1;
      x9 = XEXP (x8, 1);
      if (GET_CODE (x9) != PARALLEL
          || XVECLEN (x9, 0) != 1)
        return -1;
      x10 = XEXP (x3, 1);
      if (GET_CODE (x10) != PLUS)
        return -1;
      x11 = XEXP (x10, 0);
      if (GET_CODE (x11) != VEC_SELECT)
        return -1;
      x12 = XEXP (x11, 1);
      if (GET_CODE (x12) != PARALLEL
          || XVECLEN (x12, 0) != 1)
        return -1;
      x13 = XEXP (x10, 1);
      if (GET_CODE (x13) != VEC_SELECT)
        return -1;
      x14 = XEXP (x13, 1);
      if (GET_CODE (x14) != PARALLEL
          || XVECLEN (x14, 0) != 1)
        return -1;
      x15 = XEXP (x5, 0);
      operands[1] = x15;
      x16 = XEXP (x11, 0);
      operands[2] = x16;
      x17 = XEXP (x8, 0);
      if (!rtx_equal_p (x17, operands[1]))
        return -1;
      x18 = XEXP (x13, 0);
      if (!rtx_equal_p (x18, operands[2]))
        return -1;
      if (XWINT (x7, 0) == 0LL)
        {
          x19 = XVECEXP (x9, 0, 0);
          if (x19 == const_int_rtx[MAX_SAVED_CONST_INT + 1])
            {
              x20 = XVECEXP (x12, 0, 0);
              if (x20 == const_int_rtx[MAX_SAVED_CONST_INT + 0])
                {
                  x21 = XVECEXP (x14, 0, 0);
                  if (x21 == const_int_rtx[MAX_SAVED_CONST_INT + 1])
                    {
                      switch (GET_MODE (operands[0]))
                        {
                        case V2SFmode:
                          if (pattern906 (x3, SFmode, V2SFmode) == 0
                              && 
#line 417 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_3DNOW))
                            return 1129; /* mmx_haddv2sf3 */
                          break;

                        case V2SImode:
                          if (pattern906 (x3, SImode, V2SImode) == 0
                              && 
#line 14167 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3))
                            return 3763; /* ssse3_phadddv2si3 */
                          break;

                        default:
                          break;
                        }
                    }
                }
            }
        }
      if (!register_operand (operands[0], V2DFmode)
          || GET_MODE (x3) != V2DFmode
          || GET_MODE (x4) != DFmode
          || GET_MODE (x5) != DFmode
          || !register_operand (operands[1], V2DFmode))
        return -1;
      operands[3] = x7;
      if (!const_0_to_1_operand (operands[3], SImode)
          || GET_MODE (x8) != DFmode)
        return -1;
      x19 = XVECEXP (x9, 0, 0);
      operands[4] = x19;
      if (!const_0_to_1_operand (operands[4], SImode)
          || GET_MODE (x10) != DFmode
          || GET_MODE (x11) != DFmode
          || !vector_operand (operands[2], V2DFmode))
        return -1;
      x20 = XVECEXP (x12, 0, 0);
      operands[5] = x20;
      if (!const_0_to_1_operand (operands[5], SImode)
          || GET_MODE (x13) != DFmode)
        return -1;
      x21 = XVECEXP (x14, 0, 0);
      operands[6] = x21;
      if (!const_0_to_1_operand (operands[6], SImode)
          || !
#line 2271 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE3
   && INTVAL (operands[3]) != INTVAL (operands[4])
   && INTVAL (operands[5]) != INTVAL (operands[6])))
        return -1;
      return 1643; /* *sse3_haddv2df3 */

    case MINUS:
      x5 = XEXP (x4, 0);
      if (GET_CODE (x5) != VEC_SELECT)
        return -1;
      x6 = XEXP (x5, 1);
      if (GET_CODE (x6) != PARALLEL
          || XVECLEN (x6, 0) != 1)
        return -1;
      x7 = XVECEXP (x6, 0, 0);
      if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x8 = XEXP (x4, 1);
      if (GET_CODE (x8) != VEC_SELECT)
        return -1;
      x9 = XEXP (x8, 1);
      if (GET_CODE (x9) != PARALLEL
          || XVECLEN (x9, 0) != 1)
        return -1;
      x19 = XVECEXP (x9, 0, 0);
      if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x10 = XEXP (x3, 1);
      if (GET_CODE (x10) != MINUS)
        return -1;
      x11 = XEXP (x10, 0);
      if (GET_CODE (x11) != VEC_SELECT)
        return -1;
      x12 = XEXP (x11, 1);
      if (GET_CODE (x12) != PARALLEL
          || XVECLEN (x12, 0) != 1)
        return -1;
      x20 = XVECEXP (x12, 0, 0);
      if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x13 = XEXP (x10, 1);
      if (GET_CODE (x13) != VEC_SELECT)
        return -1;
      x14 = XEXP (x13, 1);
      if (GET_CODE (x14) != PARALLEL
          || XVECLEN (x14, 0) != 1)
        return -1;
      x21 = XVECEXP (x14, 0, 0);
      if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x15 = XEXP (x5, 0);
      operands[1] = x15;
      x16 = XEXP (x11, 0);
      operands[2] = x16;
      x17 = XEXP (x8, 0);
      if (!rtx_equal_p (x17, operands[1]))
        return -1;
      x18 = XEXP (x13, 0);
      if (!rtx_equal_p (x18, operands[2]))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V2SFmode:
          if (pattern906 (x3, SFmode, V2SFmode) != 0
              || !
#line 436 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_3DNOW_A))
            return -1;
          return 1130; /* mmx_hsubv2sf3 */

        case V2DFmode:
          if (!register_operand (operands[0], V2DFmode)
              || GET_MODE (x3) != V2DFmode
              || GET_MODE (x4) != DFmode
              || GET_MODE (x5) != DFmode
              || !register_operand (operands[1], V2DFmode)
              || GET_MODE (x8) != DFmode
              || GET_MODE (x10) != DFmode
              || GET_MODE (x11) != DFmode
              || !vector_operand (operands[2], V2DFmode)
              || GET_MODE (x13) != DFmode
              || !
#line 2295 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE3))
            return -1;
          return 1644; /* sse3_hsubv2df3 */

        case V2SImode:
          if (pattern906 (x3, SImode, V2SImode) != 0
              || !
#line 14167 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3))
            return -1;
          return 3764; /* ssse3_phsubdv2si3 */

        default:
          return -1;
        }

    case REG:
    case SUBREG:
    case MEM:
      return recog_73 (x1, insn, pnum_clobbers);

    case SS_TRUNCATE:
      return recog_77 (x1, insn, pnum_clobbers);

    case US_TRUNCATE:
      x5 = XEXP (x4, 0);
      operands[1] = x5;
      x10 = XEXP (x3, 1);
      switch (GET_CODE (x10))
        {
        case US_TRUNCATE:
          x11 = XEXP (x10, 0);
          operands[2] = x11;
          switch (GET_MODE (operands[0]))
            {
            case V8QImode:
              if (pattern327 (x3, V4HImode, V4QImode, V8QImode) != 0
                  || !
#line 1063 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX))
                return -1;
              return 1198; /* mmx_packuswb */

            case V64QImode:
              if (pattern328 (x3, V32HImode, V32QImode, V64QImode) != 0
                  || !(
#line 11802 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1) && 
#line 325 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
                return -1;
              return 3586; /* avx512bw_packuswb */

            case V32QImode:
              if (pattern328 (x3, V16HImode, V16QImode, V32QImode) != 0
                  || !(
#line 11802 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1) && 
#line 325 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
                return -1;
              return 3588; /* avx2_packuswb */

            case V16QImode:
              if (pattern328 (x3, V8HImode, V8QImode, V16QImode) != 0
                  || !
#line 11802 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1))
                return -1;
              return 3590; /* sse2_packuswb */

            case V32HImode:
              if (pattern328 (x3, V16SImode, V16HImode, V32HImode) != 0
                  || !(
#line 14840 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && 1 && 1) && 
#line 328 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
                return -1;
              return 3858; /* avx512bw_packusdw */

            case V16HImode:
              if (pattern328 (x3, V8SImode, V8HImode, V16HImode) != 0
                  || !(
#line 14840 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && 1 && 1) && 
#line 328 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
                return -1;
              return 3860; /* avx2_packusdw */

            case V8HImode:
              if (pattern328 (x3, V4SImode, V4HImode, V8HImode) != 0
                  || !
#line 14840 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && 1 && 1))
                return -1;
              return 3862; /* sse4_1_packusdw */

            default:
              return -1;
            }

        case CONST_INT:
        case CONST_WIDE_INT:
        case CONST_DOUBLE:
        case CONST_VECTOR:
          operands[2] = x10;
          switch (pattern273 (x3))
            {
            case 0:
              if (
#line 9120 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return 2814; /* *avx512vl_us_truncatev4div4qi2 */
              break;

            case 1:
              if (
#line 9120 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return 2823; /* *avx512vl_us_truncatev4siv4qi2 */
              break;

            case 2:
              if (
#line 9120 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return 2817; /* *avx512vl_us_truncatev2div2qi2 */
              break;

            case 3:
              if (
#line 9120 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return 2820; /* *avx512vl_us_truncatev8siv8qi2 */
              break;

            case 4:
              if ((
#line 9120 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 9106 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
                return 2826; /* *avx512vl_us_truncatev8hiv8qi2 */
              break;

            case 5:
              if (
#line 9412 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return 2889; /* *avx512vl_us_truncatev4div4hi2 */
              break;

            case 6:
              if (
#line 9412 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return 2895; /* *avx512vl_us_truncatev4siv4hi2 */
              break;

            case 7:
              if (
#line 9412 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return 2892; /* *avx512vl_us_truncatev2div2hi2 */
              break;

            case 8:
              if (
#line 9573 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return 2934; /* *avx512vl_us_truncatev2div2si2 */
              break;

            default:
              break;
            }
          if (GET_CODE (x10) != CONST_VECTOR
              || pattern274 (x3) != 0
              || !
#line 9655 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2949; /* *avx512f_us_truncatev8div16qi2 */

        case VEC_SELECT:
          switch (pattern189 (x3))
            {
            case 0:
              if (!
#line 9140 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return -1;
              return 2829; /* *avx512vl_us_truncatev2div2qi2_store */

            case 1:
              if (!
#line 9230 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return -1;
              return 2841; /* *avx512vl_us_truncatev4siv4qi2_store */

            case 2:
              if (!
#line 9230 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return -1;
              return 2844; /* *avx512vl_us_truncatev4div4qi2_store */

            case 3:
              if (!(
#line 9321 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 9308 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
                return -1;
              return 2865; /* *avx512vl_us_truncatev8hiv8qi2_store */

            case 4:
              if (!
#line 9321 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return -1;
              return 2868; /* *avx512vl_us_truncatev8siv8qi2_store */

            case 5:
              if (!
#line 9672 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 2952; /* *avx512f_us_truncatev8div16qi2_store */

            case 6:
              if (!
#line 9427 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return -1;
              return 2898; /* *avx512vl_us_truncatev4siv4hi2_store */

            case 7:
              if (!
#line 9427 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return -1;
              return 2901; /* *avx512vl_us_truncatev4div4hi2_store */

            case 8:
              if (!
#line 9502 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return -1;
              return 2922; /* *avx512vl_us_truncatev2div2hi2_store */

            case 9:
              if (!
#line 9587 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return -1;
              return 2937; /* *avx512vl_us_truncatev2div2si2_store */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case VEC_SELECT:
      return recog_76 (x1, insn, pnum_clobbers);

    case VEC_CONCAT:
      return recog_75 (x1, insn, pnum_clobbers);

    case FLOAT:
      if (pattern61 (x3, V2DImode, V4SFmode, V2SFmode) != 0
          || !
#line 4928 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && TARGET_AVX512VL))
        return -1;
      return 2297; /* *floatv2div2sf2 */

    case UNSIGNED_FLOAT:
      if (pattern61 (x3, V2DImode, V4SFmode, V2SFmode) != 0
          || !
#line 4928 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && TARGET_AVX512VL))
        return -1;
      return 2298; /* *ufloatv2div2sf2 */

    case VEC_MERGE:
      return recog_74 (x1, insn, pnum_clobbers);

    case UNSPEC:
      switch (XVECLEN (x4, 0))
        {
        case 1:
          x22 = XVECEXP (x4, 0, 0);
          operands[1] = x22;
          switch (XINT (x4, 1))
            {
            case 40:
              if (GET_MODE (x4) == V4SImode
                  && register_operand (operands[0], V8SImode)
                  && GET_MODE (x3) == V8SImode
                  && nonimmediate_operand (operands[1], V4DFmode))
                {
                  x10 = XEXP (x3, 1);
                  operands[2] = x10;
                  if (const0_operand (operands[2], V4SImode)
                      && 
#line 5064 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
                    return 2319; /* *avx_cvtpd2dq256_2 */
                }
              if (GET_MODE (x4) != V2SImode)
                return -1;
              x10 = XEXP (x3, 1);
              if (GET_CODE (x10) != CONST_VECTOR
                  || XVECLEN (x10, 0) != 2
                  || GET_MODE (x10) != V2SImode)
                return -1;
              x23 = XVECEXP (x10, 0, 0);
              if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x24 = XVECEXP (x10, 0, 1);
              if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
                  || !register_operand (operands[0], V4SImode)
                  || GET_MODE (x3) != V4SImode
                  || !vector_operand (operands[1], V2DFmode)
                  || !
#line 5077 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1))
                return -1;
              return 2320; /* sse2_cvtpd2dq */

            case 151:
              if (pattern62 (x3, V2SImode) != 0
                  || pattern457 (x3, V2DFmode, V4SImode, 0) != 0
                  || !
#line 5115 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return -1;
              return 2330; /* ufix_notruncv2dfv2si2 */

            default:
              return -1;
            }

        case 2:
          if (XINT (x4, 1) != 143
              || GET_MODE (x4) != V4HImode
              || !register_operand (operands[0], V8HImode)
              || GET_MODE (x3) != V8HImode)
            return -1;
          x22 = XVECEXP (x4, 0, 0);
          operands[1] = x22;
          if (!register_operand (operands[1], V4SFmode))
            return -1;
          x25 = XVECEXP (x4, 0, 1);
          operands[2] = x25;
          if (!const_0_to_255_operand (operands[2], SImode))
            return -1;
          x10 = XEXP (x3, 1);
          operands[3] = x10;
          if (!const0_operand (operands[3], V4HImode)
              || !
#line 18606 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
((TARGET_F16C || TARGET_AVX512VL) && 1))
            return -1;
          return 4582; /* *vcvtps2ph */

        default:
          return -1;
        }

    case UNSIGNED_FIX:
      if (pattern61 (x3, V2DFmode, V4SImode, V2SImode) != 0
          || !
#line 5136 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
        return -1;
      return 2340; /* ufix_truncv2dfv2si2 */

    case FIX:
      if (pattern62 (x3, V2SImode) != 0)
        return -1;
      x10 = XEXP (x3, 1);
      x23 = XVECEXP (x10, 0, 0);
      if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x24 = XVECEXP (x10, 0, 1);
      if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || !register_operand (operands[0], V4SImode)
          || GET_MODE (x3) != V4SImode)
        return -1;
      x5 = XEXP (x4, 0);
      operands[1] = x5;
      if (!vector_operand (operands[1], V2DFmode)
          || !
#line 5237 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1))
        return -1;
      return 2398; /* sse2_cvttpd2dq */

    case FLOAT_TRUNCATE:
      if (GET_MODE (x4) != V2SFmode
          || !register_operand (operands[0], V4SFmode)
          || GET_MODE (x3) != V4SFmode)
        return -1;
      x5 = XEXP (x4, 0);
      operands[1] = x5;
      if (!vector_operand (operands[1], V2DFmode))
        return -1;
      x10 = XEXP (x3, 1);
      operands[2] = x10;
      if (!const0_operand (operands[2], V2SFmode)
          || !
#line 5344 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1))
        return -1;
      return 2410; /* *sse2_cvtpd2ps */

    case TRUNCATE:
      x5 = XEXP (x4, 0);
      operands[1] = x5;
      x10 = XEXP (x3, 1);
      switch (GET_CODE (x10))
        {
        case CONST_INT:
        case CONST_WIDE_INT:
        case CONST_DOUBLE:
        case CONST_VECTOR:
          operands[2] = x10;
          switch (pattern273 (x3))
            {
            case 0:
              if (
#line 9120 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return 2813; /* *avx512vl_truncatev4div4qi2 */
              break;

            case 1:
              if (
#line 9120 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return 2822; /* *avx512vl_truncatev4siv4qi2 */
              break;

            case 2:
              if (
#line 9120 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return 2816; /* *avx512vl_truncatev2div2qi2 */
              break;

            case 3:
              if (
#line 9120 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return 2819; /* *avx512vl_truncatev8siv8qi2 */
              break;

            case 4:
              if ((
#line 9120 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 9106 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
                return 2825; /* *avx512vl_truncatev8hiv8qi2 */
              break;

            case 5:
              if (
#line 9412 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return 2888; /* *avx512vl_truncatev4div4hi2 */
              break;

            case 6:
              if (
#line 9412 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return 2894; /* *avx512vl_truncatev4siv4hi2 */
              break;

            case 7:
              if (
#line 9412 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return 2891; /* *avx512vl_truncatev2div2hi2 */
              break;

            case 8:
              if (
#line 9573 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return 2933; /* *avx512vl_truncatev2div2si2 */
              break;

            default:
              break;
            }
          if (GET_CODE (x10) != CONST_VECTOR
              || pattern274 (x3) != 0
              || !
#line 9655 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2948; /* *avx512f_truncatev8div16qi2 */

        case VEC_SELECT:
          switch (pattern189 (x3))
            {
            case 0:
              if (!
#line 9140 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return -1;
              return 2828; /* *avx512vl_truncatev2div2qi2_store */

            case 1:
              if (!
#line 9230 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return -1;
              return 2840; /* *avx512vl_truncatev4siv4qi2_store */

            case 2:
              if (!
#line 9230 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return -1;
              return 2843; /* *avx512vl_truncatev4div4qi2_store */

            case 3:
              if (!(
#line 9321 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 9308 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
                return -1;
              return 2864; /* *avx512vl_truncatev8hiv8qi2_store */

            case 4:
              if (!
#line 9321 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return -1;
              return 2867; /* *avx512vl_truncatev8siv8qi2_store */

            case 5:
              if (!
#line 9672 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 2951; /* *avx512f_truncatev8div16qi2_store */

            case 6:
              if (!
#line 9427 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return -1;
              return 2897; /* *avx512vl_truncatev4siv4hi2_store */

            case 7:
              if (!
#line 9427 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return -1;
              return 2900; /* *avx512vl_truncatev4div4hi2_store */

            case 8:
              if (!
#line 9502 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return -1;
              return 2921; /* *avx512vl_truncatev2div2hi2_store */

            case 9:
              if (!
#line 9587 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return -1;
              return 2936; /* *avx512vl_truncatev2div2si2_store */

            default:
              return -1;
            }

        default:
          return -1;
        }

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != V16SImode)
    return -1;
  x3 = XEXP (x2, 2);
  if (!register_operand (x3, HImode))
    return -1;
  operands[3] = x3;
  if (register_operand (operands[0], V16SImode))
    {
      x4 = XEXP (x2, 0);
      if (nonimmediate_operand (x4, V16SImode))
        {
          operands[1] = x4;
          x5 = XEXP (x2, 1);
          operands[2] = x5;
          if (vector_move_operand (operands[2], V16SImode)
              && 
#line 971 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return 1244; /* avx512f_loadv16si_mask */
          operands[2] = x4;
          operands[1] = x5;
          if (register_operand (operands[1], V16SImode)
              && 
#line 1012 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return 1262; /* avx512f_blendmv16si */
        }
    }
  operands[2] = x3;
  if (!memory_operand (operands[0], V16SImode))
    return -1;
  x4 = XEXP (x2, 0);
  operands[1] = x4;
  if (!register_operand (operands[1], V16SImode))
    return -1;
  x5 = XEXP (x2, 1);
  if (!rtx_equal_p (x5, operands[0])
      || !
#line 1036 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
    return -1;
  return 1280; /* avx512f_storev16si_mask */
}

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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != V16HImode)
    return -1;
  x3 = XEXP (x2, 2);
  if (!register_operand (x3, HImode))
    return -1;
  operands[3] = x3;
  if (register_operand (operands[0], V16HImode))
    {
      x4 = XEXP (x2, 0);
      if (nonimmediate_operand (x4, V16HImode))
        {
          operands[1] = x4;
          x5 = XEXP (x2, 1);
          operands[2] = x5;
          if (vector_move_operand (operands[2], V16HImode)
              && (
#line 999 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return 1260; /* avx512vl_loadv16hi_mask */
          operands[2] = x4;
          operands[1] = x5;
          if (register_operand (operands[1], V16HImode)
              && (
#line 1024 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return 1278; /* avx512vl_blendmv16hi */
        }
    }
  operands[2] = x3;
  if (!memory_operand (operands[0], V16HImode))
    return -1;
  x4 = XEXP (x2, 0);
  operands[1] = x4;
  if (!register_operand (operands[1], V16HImode))
    return -1;
  x5 = XEXP (x2, 1);
  if (!rtx_equal_p (x5, operands[0])
      || !(
#line 1064 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
    return -1;
  return 1296; /* avx512vl_storev16hi_mask */
}

static int
recog_81 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  switch (GET_MODE (operands[0]))
    {
    case V16SImode:
      return recog_79 (x1, insn, pnum_clobbers);

    case V8SImode:
      x2 = XEXP (x1, 1);
      if (GET_MODE (x2) != V8SImode)
        return -1;
      x3 = XEXP (x2, 2);
      if (!register_operand (x3, QImode))
        return -1;
      operands[3] = x3;
      if (register_operand (operands[0], V8SImode))
        {
          x4 = XEXP (x2, 0);
          if (nonimmediate_operand (x4, V8SImode))
            {
              operands[1] = x4;
              x5 = XEXP (x2, 1);
              operands[2] = x5;
              if (vector_move_operand (operands[2], V8SImode)
                  && (
#line 971 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 175 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 1245; /* avx512vl_loadv8si_mask */
              operands[2] = x4;
              operands[1] = x5;
              if (register_operand (operands[1], V8SImode)
                  && (
#line 1012 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 175 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 1263; /* avx512vl_blendmv8si */
            }
        }
      operands[2] = x3;
      if (!memory_operand (operands[0], V8SImode))
        return -1;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      if (!register_operand (operands[1], V8SImode))
        return -1;
      x5 = XEXP (x2, 1);
      if (!rtx_equal_p (x5, operands[0])
          || !(
#line 1036 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 175 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 1281; /* avx512vl_storev8si_mask */

    case V4SImode:
      x2 = XEXP (x1, 1);
      if (GET_MODE (x2) != V4SImode)
        return -1;
      x3 = XEXP (x2, 2);
      if (!register_operand (x3, QImode))
        return -1;
      operands[3] = x3;
      if (register_operand (operands[0], V4SImode))
        {
          x4 = XEXP (x2, 0);
          if (nonimmediate_operand (x4, V4SImode))
            {
              operands[1] = x4;
              x5 = XEXP (x2, 1);
              operands[2] = x5;
              if (vector_move_operand (operands[2], V4SImode)
                  && (
#line 971 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 175 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 1246; /* avx512vl_loadv4si_mask */
              operands[2] = x4;
              operands[1] = x5;
              if (register_operand (operands[1], V4SImode)
                  && (
#line 1012 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 175 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 1264; /* avx512vl_blendmv4si */
            }
        }
      operands[2] = x3;
      if (!memory_operand (operands[0], V4SImode))
        return -1;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      if (!register_operand (operands[1], V4SImode))
        return -1;
      x5 = XEXP (x2, 1);
      if (!rtx_equal_p (x5, operands[0])
          || !(
#line 1036 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 175 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 1282; /* avx512vl_storev4si_mask */

    case V8DImode:
      x2 = XEXP (x1, 1);
      if (GET_MODE (x2) != V8DImode)
        return -1;
      x3 = XEXP (x2, 2);
      if (!register_operand (x3, QImode))
        return -1;
      operands[3] = x3;
      if (register_operand (operands[0], V8DImode))
        {
          x4 = XEXP (x2, 0);
          if (nonimmediate_operand (x4, V8DImode))
            {
              operands[1] = x4;
              x5 = XEXP (x2, 1);
              operands[2] = x5;
              if (vector_move_operand (operands[2], V8DImode)
                  && 
#line 971 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return 1247; /* avx512f_loadv8di_mask */
              operands[2] = x4;
              operands[1] = x5;
              if (register_operand (operands[1], V8DImode)
                  && 
#line 1012 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return 1265; /* avx512f_blendmv8di */
            }
        }
      operands[2] = x3;
      if (!memory_operand (operands[0], V8DImode))
        return -1;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      if (!register_operand (operands[1], V8DImode))
        return -1;
      x5 = XEXP (x2, 1);
      if (!rtx_equal_p (x5, operands[0])
          || !
#line 1036 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 1283; /* avx512f_storev8di_mask */

    case V4DImode:
      x2 = XEXP (x1, 1);
      if (GET_MODE (x2) != V4DImode)
        return -1;
      x3 = XEXP (x2, 2);
      if (!register_operand (x3, QImode))
        return -1;
      operands[3] = x3;
      if (register_operand (operands[0], V4DImode))
        {
          x4 = XEXP (x2, 0);
          if (nonimmediate_operand (x4, V4DImode))
            {
              operands[1] = x4;
              x5 = XEXP (x2, 1);
              operands[2] = x5;
              if (vector_move_operand (operands[2], V4DImode)
                  && (
#line 971 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 176 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 1248; /* avx512vl_loadv4di_mask */
              operands[2] = x4;
              operands[1] = x5;
              if (register_operand (operands[1], V4DImode)
                  && (
#line 1012 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 176 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 1266; /* avx512vl_blendmv4di */
            }
        }
      operands[2] = x3;
      if (!memory_operand (operands[0], V4DImode))
        return -1;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      if (!register_operand (operands[1], V4DImode))
        return -1;
      x5 = XEXP (x2, 1);
      if (!rtx_equal_p (x5, operands[0])
          || !(
#line 1036 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 176 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 1284; /* avx512vl_storev4di_mask */

    case V2DImode:
      x2 = XEXP (x1, 1);
      if (GET_MODE (x2) != V2DImode)
        return -1;
      x3 = XEXP (x2, 2);
      if (!register_operand (x3, QImode))
        return -1;
      operands[3] = x3;
      if (register_operand (operands[0], V2DImode))
        {
          x4 = XEXP (x2, 0);
          if (nonimmediate_operand (x4, V2DImode))
            {
              operands[1] = x4;
              x5 = XEXP (x2, 1);
              operands[2] = x5;
              if (vector_move_operand (operands[2], V2DImode)
                  && (
#line 971 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 176 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 1249; /* avx512vl_loadv2di_mask */
              operands[2] = x4;
              operands[1] = x5;
              if (register_operand (operands[1], V2DImode)
                  && (
#line 1012 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 176 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 1267; /* avx512vl_blendmv2di */
            }
        }
      operands[2] = x3;
      if (!memory_operand (operands[0], V2DImode))
        return -1;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      if (!register_operand (operands[1], V2DImode))
        return -1;
      x5 = XEXP (x2, 1);
      if (!rtx_equal_p (x5, operands[0])
          || !(
#line 1036 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 176 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 1285; /* avx512vl_storev2di_mask */

    case V16SFmode:
      x2 = XEXP (x1, 1);
      if (GET_MODE (x2) != V16SFmode)
        return -1;
      x3 = XEXP (x2, 2);
      if (!register_operand (x3, HImode))
        return -1;
      operands[3] = x3;
      if (register_operand (operands[0], V16SFmode))
        {
          x4 = XEXP (x2, 0);
          if (nonimmediate_operand (x4, V16SFmode))
            {
              operands[1] = x4;
              x5 = XEXP (x2, 1);
              operands[2] = x5;
              if (vector_move_operand (operands[2], V16SFmode)
                  && 
#line 971 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return 1250; /* avx512f_loadv16sf_mask */
              operands[2] = x4;
              operands[1] = x5;
              if (register_operand (operands[1], V16SFmode)
                  && 
#line 1012 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return 1268; /* avx512f_blendmv16sf */
            }
        }
      operands[2] = x3;
      if (!memory_operand (operands[0], V16SFmode))
        return -1;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      if (!register_operand (operands[1], V16SFmode))
        return -1;
      x5 = XEXP (x2, 1);
      if (!rtx_equal_p (x5, operands[0])
          || !
#line 1036 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 1286; /* avx512f_storev16sf_mask */

    case V8SFmode:
      x2 = XEXP (x1, 1);
      if (GET_MODE (x2) != V8SFmode)
        return -1;
      x3 = XEXP (x2, 2);
      if (!register_operand (x3, QImode))
        return -1;
      operands[3] = x3;
      if (register_operand (operands[0], V8SFmode))
        {
          x4 = XEXP (x2, 0);
          if (nonimmediate_operand (x4, V8SFmode))
            {
              operands[1] = x4;
              x5 = XEXP (x2, 1);
              operands[2] = x5;
              if (vector_move_operand (operands[2], V8SFmode)
                  && (
#line 971 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 177 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 1251; /* avx512vl_loadv8sf_mask */
              operands[2] = x4;
              operands[1] = x5;
              if (register_operand (operands[1], V8SFmode)
                  && (
#line 1012 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 177 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 1269; /* avx512vl_blendmv8sf */
            }
        }
      operands[2] = x3;
      if (!memory_operand (operands[0], V8SFmode))
        return -1;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      if (!register_operand (operands[1], V8SFmode))
        return -1;
      x5 = XEXP (x2, 1);
      if (!rtx_equal_p (x5, operands[0])
          || !(
#line 1036 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 177 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 1287; /* avx512vl_storev8sf_mask */

    case V4SFmode:
      x2 = XEXP (x1, 1);
      if (GET_MODE (x2) != V4SFmode)
        return -1;
      x3 = XEXP (x2, 2);
      if (!register_operand (x3, QImode))
        return -1;
      operands[3] = x3;
      if (register_operand (operands[0], V4SFmode))
        {
          x4 = XEXP (x2, 0);
          if (nonimmediate_operand (x4, V4SFmode))
            {
              operands[1] = x4;
              x5 = XEXP (x2, 1);
              operands[2] = x5;
              if (vector_move_operand (operands[2], V4SFmode)
                  && (
#line 971 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 177 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 1252; /* avx512vl_loadv4sf_mask */
              operands[2] = x4;
              operands[1] = x5;
              if (register_operand (operands[1], V4SFmode)
                  && (
#line 1012 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 177 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 1270; /* avx512vl_blendmv4sf */
            }
        }
      operands[2] = x3;
      if (!memory_operand (operands[0], V4SFmode))
        return -1;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      if (!register_operand (operands[1], V4SFmode))
        return -1;
      x5 = XEXP (x2, 1);
      if (!rtx_equal_p (x5, operands[0])
          || !(
#line 1036 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 177 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 1288; /* avx512vl_storev4sf_mask */

    case V8DFmode:
      x2 = XEXP (x1, 1);
      if (GET_MODE (x2) != V8DFmode)
        return -1;
      x3 = XEXP (x2, 2);
      if (!register_operand (x3, QImode))
        return -1;
      operands[3] = x3;
      if (register_operand (operands[0], V8DFmode))
        {
          x4 = XEXP (x2, 0);
          if (nonimmediate_operand (x4, V8DFmode))
            {
              operands[1] = x4;
              x5 = XEXP (x2, 1);
              operands[2] = x5;
              if (vector_move_operand (operands[2], V8DFmode)
                  && 
#line 971 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return 1253; /* avx512f_loadv8df_mask */
              operands[2] = x4;
              operands[1] = x5;
              if (register_operand (operands[1], V8DFmode)
                  && 
#line 1012 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return 1271; /* avx512f_blendmv8df */
            }
        }
      operands[2] = x3;
      if (!memory_operand (operands[0], V8DFmode))
        return -1;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      if (!register_operand (operands[1], V8DFmode))
        return -1;
      x5 = XEXP (x2, 1);
      if (!rtx_equal_p (x5, operands[0])
          || !
#line 1036 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 1289; /* avx512f_storev8df_mask */

    case V4DFmode:
      x2 = XEXP (x1, 1);
      if (GET_MODE (x2) != V4DFmode)
        return -1;
      x3 = XEXP (x2, 2);
      if (!register_operand (x3, QImode))
        return -1;
      operands[3] = x3;
      if (register_operand (operands[0], V4DFmode))
        {
          x4 = XEXP (x2, 0);
          if (nonimmediate_operand (x4, V4DFmode))
            {
              operands[1] = x4;
              x5 = XEXP (x2, 1);
              operands[2] = x5;
              if (vector_move_operand (operands[2], V4DFmode)
                  && (
#line 971 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 1254; /* avx512vl_loadv4df_mask */
              operands[2] = x4;
              operands[1] = x5;
              if (register_operand (operands[1], V4DFmode)
                  && (
#line 1012 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 1272; /* avx512vl_blendmv4df */
            }
        }
      operands[2] = x3;
      if (!memory_operand (operands[0], V4DFmode))
        return -1;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      if (!register_operand (operands[1], V4DFmode))
        return -1;
      x5 = XEXP (x2, 1);
      if (!rtx_equal_p (x5, operands[0])
          || !(
#line 1036 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 1290; /* avx512vl_storev4df_mask */

    case V2DFmode:
      x2 = XEXP (x1, 1);
      if (GET_MODE (x2) != V2DFmode)
        return -1;
      x3 = XEXP (x2, 2);
      if (!register_operand (x3, QImode))
        return -1;
      operands[3] = x3;
      if (register_operand (operands[0], V2DFmode))
        {
          x4 = XEXP (x2, 0);
          if (nonimmediate_operand (x4, V2DFmode))
            {
              operands[1] = x4;
              x5 = XEXP (x2, 1);
              operands[2] = x5;
              if (vector_move_operand (operands[2], V2DFmode)
                  && (
#line 971 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 1255; /* avx512vl_loadv2df_mask */
              operands[2] = x4;
              operands[1] = x5;
              if (register_operand (operands[1], V2DFmode)
                  && (
#line 1012 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 1273; /* avx512vl_blendmv2df */
            }
        }
      operands[2] = x3;
      if (!memory_operand (operands[0], V2DFmode))
        return -1;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      if (!register_operand (operands[1], V2DFmode))
        return -1;
      x5 = XEXP (x2, 1);
      if (!rtx_equal_p (x5, operands[0])
          || !(
#line 1036 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 1291; /* avx512vl_storev2df_mask */

    case V64QImode:
      x2 = XEXP (x1, 1);
      if (GET_MODE (x2) != V64QImode)
        return -1;
      x3 = XEXP (x2, 2);
      if (!register_operand (x3, DImode))
        return -1;
      operands[3] = x3;
      if (register_operand (operands[0], V64QImode))
        {
          x4 = XEXP (x2, 0);
          if (nonimmediate_operand (x4, V64QImode))
            {
              operands[1] = x4;
              x5 = XEXP (x2, 1);
              operands[2] = x5;
              if (vector_move_operand (operands[2], V64QImode)
                  && 
#line 999 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
                return 1256; /* avx512bw_loadv64qi_mask */
              operands[2] = x4;
              operands[1] = x5;
              if (register_operand (operands[1], V64QImode)
                  && 
#line 1024 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
                return 1274; /* avx512bw_blendmv64qi */
            }
        }
      operands[2] = x3;
      if (!memory_operand (operands[0], V64QImode))
        return -1;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      if (!register_operand (operands[1], V64QImode))
        return -1;
      x5 = XEXP (x2, 1);
      if (!rtx_equal_p (x5, operands[0])
          || !
#line 1064 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
        return -1;
      return 1292; /* avx512bw_storev64qi_mask */

    case V16QImode:
      x2 = XEXP (x1, 1);
      if (GET_MODE (x2) != V16QImode)
        return -1;
      x3 = XEXP (x2, 2);
      if (!register_operand (x3, HImode))
        return -1;
      operands[3] = x3;
      if (register_operand (operands[0], V16QImode))
        {
          x4 = XEXP (x2, 0);
          if (nonimmediate_operand (x4, V16QImode))
            {
              operands[1] = x4;
              x5 = XEXP (x2, 1);
              operands[2] = x5;
              if (vector_move_operand (operands[2], V16QImode)
                  && (
#line 999 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 1257; /* avx512vl_loadv16qi_mask */
              operands[2] = x4;
              operands[1] = x5;
              if (register_operand (operands[1], V16QImode)
                  && (
#line 1024 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 1275; /* avx512vl_blendmv16qi */
            }
        }
      operands[2] = x3;
      if (!memory_operand (operands[0], V16QImode))
        return -1;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      if (!register_operand (operands[1], V16QImode))
        return -1;
      x5 = XEXP (x2, 1);
      if (!rtx_equal_p (x5, operands[0])
          || !(
#line 1064 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 1293; /* avx512vl_storev16qi_mask */

    case V32QImode:
      x2 = XEXP (x1, 1);
      if (GET_MODE (x2) != V32QImode)
        return -1;
      x3 = XEXP (x2, 2);
      if (!register_operand (x3, SImode))
        return -1;
      operands[3] = x3;
      if (register_operand (operands[0], V32QImode))
        {
          x4 = XEXP (x2, 0);
          if (nonimmediate_operand (x4, V32QImode))
            {
              operands[1] = x4;
              x5 = XEXP (x2, 1);
              operands[2] = x5;
              if (vector_move_operand (operands[2], V32QImode)
                  && (
#line 999 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 1258; /* avx512vl_loadv32qi_mask */
              operands[2] = x4;
              operands[1] = x5;
              if (register_operand (operands[1], V32QImode)
                  && (
#line 1024 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 1276; /* avx512vl_blendmv32qi */
            }
        }
      operands[2] = x3;
      if (!memory_operand (operands[0], V32QImode))
        return -1;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      if (!register_operand (operands[1], V32QImode))
        return -1;
      x5 = XEXP (x2, 1);
      if (!rtx_equal_p (x5, operands[0])
          || !(
#line 1064 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 1294; /* avx512vl_storev32qi_mask */

    case V32HImode:
      x2 = XEXP (x1, 1);
      if (GET_MODE (x2) != V32HImode)
        return -1;
      x3 = XEXP (x2, 2);
      if (!register_operand (x3, SImode))
        return -1;
      operands[3] = x3;
      if (register_operand (operands[0], V32HImode))
        {
          x4 = XEXP (x2, 0);
          if (nonimmediate_operand (x4, V32HImode))
            {
              operands[1] = x4;
              x5 = XEXP (x2, 1);
              operands[2] = x5;
              if (vector_move_operand (operands[2], V32HImode)
                  && 
#line 999 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
                return 1259; /* avx512bw_loadv32hi_mask */
              operands[2] = x4;
              operands[1] = x5;
              if (register_operand (operands[1], V32HImode)
                  && 
#line 1024 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
                return 1277; /* avx512bw_blendmv32hi */
            }
        }
      operands[2] = x3;
      if (!memory_operand (operands[0], V32HImode))
        return -1;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      if (!register_operand (operands[1], V32HImode))
        return -1;
      x5 = XEXP (x2, 1);
      if (!rtx_equal_p (x5, operands[0])
          || !
#line 1064 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
        return -1;
      return 1295; /* avx512bw_storev32hi_mask */

    case V16HImode:
      return recog_80 (x1, insn, pnum_clobbers);

    case V8HImode:
      x2 = XEXP (x1, 1);
      if (GET_MODE (x2) != V8HImode)
        return -1;
      x3 = XEXP (x2, 2);
      if (!register_operand (x3, QImode))
        return -1;
      operands[3] = x3;
      if (register_operand (operands[0], V8HImode))
        {
          x4 = XEXP (x2, 0);
          if (nonimmediate_operand (x4, V8HImode))
            {
              operands[1] = x4;
              x5 = XEXP (x2, 1);
              operands[2] = x5;
              if (vector_move_operand (operands[2], V8HImode)
                  && (
#line 999 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 1261; /* avx512vl_loadv8hi_mask */
              operands[2] = x4;
              operands[1] = x5;
              if (register_operand (operands[1], V8HImode)
                  && (
#line 1024 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 1279; /* avx512vl_blendmv8hi */
            }
        }
      operands[2] = x3;
      if (!memory_operand (operands[0], V8HImode))
        return -1;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      if (!register_operand (operands[1], V8HImode))
        return -1;
      x5 = XEXP (x2, 1);
      if (!rtx_equal_p (x5, operands[0])
          || !(
#line 1064 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 1297; /* avx512vl_storev8hi_mask */

    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, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XEXP (x2, 2);
  operands[2] = x5;
  x6 = XEXP (x2, 1);
  if (!rtx_equal_p (x6, operands[0]))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case V16SFmode:
      if (pattern446 (x2, HImode, V16SFmode) != 0
          || !
#line 1269 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 1318; /* avx512f_storeups512_mask */

    case V8SFmode:
      if (pattern446 (x2, QImode, V8SFmode) != 0
          || !(
#line 1269 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 1319; /* avx512vl_storeups256_mask */

    case V4SFmode:
      if (pattern446 (x2, QImode, V4SFmode) != 0
          || !(
#line 1269 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 1320; /* avx512vl_storeups_mask */

    case V8DFmode:
      if (pattern446 (x2, QImode, V8DFmode) != 0
          || !
#line 1269 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 1321; /* avx512f_storeupd512_mask */

    case V4DFmode:
      if (pattern446 (x2, QImode, V4DFmode) != 0
          || !(
#line 1269 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 1322; /* avx512vl_storeupd256_mask */

    case V2DFmode:
      if (pattern446 (x2, QImode, V2DFmode) != 0
          || !(
#line 1269 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 1323; /* avx512vl_storeupd_mask */

    case V16SImode:
      if (pattern446 (x2, HImode, V16SImode) != 0
          || !
#line 1505 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 1360; /* avx512f_storedquv16si_mask */

    case V8SImode:
      if (pattern446 (x2, QImode, V8SImode) != 0
          || !(
#line 1505 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 1361; /* avx512vl_storedquv8si_mask */

    case V4SImode:
      if (pattern446 (x2, QImode, V4SImode) != 0
          || !(
#line 1505 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 1362; /* avx512vl_storedquv4si_mask */

    case V8DImode:
      if (pattern446 (x2, QImode, V8DImode) != 0
          || !
#line 1505 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 1363; /* avx512f_storedquv8di_mask */

    case V4DImode:
      if (pattern446 (x2, QImode, V4DImode) != 0
          || !(
#line 1505 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 1364; /* avx512vl_storedquv4di_mask */

    case V2DImode:
      if (pattern446 (x2, QImode, V2DImode) != 0
          || !(
#line 1505 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 1365; /* avx512vl_storedquv2di_mask */

    case V64QImode:
      if (pattern446 (x2, DImode, V64QImode) != 0
          || !
#line 1521 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
        return -1;
      return 1366; /* avx512bw_storedquv64qi_mask */

    case V16QImode:
      if (pattern446 (x2, HImode, V16QImode) != 0
          || !(
#line 1521 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 1367; /* avx512vl_storedquv16qi_mask */

    case V32QImode:
      if (pattern446 (x2, SImode, V32QImode) != 0
          || !(
#line 1521 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 1368; /* avx512vl_storedquv32qi_mask */

    case V32HImode:
      if (pattern446 (x2, SImode, V32HImode) != 0
          || !
#line 1521 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
        return -1;
      return 1369; /* avx512bw_storedquv32hi_mask */

    case V16HImode:
      if (pattern446 (x2, HImode, V16HImode) != 0
          || !(
#line 1521 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 1370; /* avx512vl_storedquv16hi_mask */

    case V8HImode:
      if (pattern446 (x2, QImode, V8HImode) != 0
          || !(
#line 1521 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 1371; /* avx512vl_storedquv8hi_mask */

    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, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XVECEXP (x3, 0, 2);
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
    case MEM:
      operands[3] = x4;
      x5 = XEXP (x2, 1);
      switch (GET_CODE (x5))
        {
        case CONST_INT:
        case CONST_WIDE_INT:
        case CONST_DOUBLE:
        case CONST_VECTOR:
          operands[4] = x5;
          x6 = XEXP (x2, 2);
          operands[5] = x6;
          switch (GET_MODE (operands[0]))
            {
            case V16SFmode:
              if (pattern618 (x2, V16SFmode, HImode) != 0
                  || !
#line 3928 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && 1))
                return -1;
              return 2024; /* fma_fmaddsub_v16sf_maskz_1 */

            case V8SFmode:
              if (pattern618 (x2, V8SFmode, QImode) != 0
                  || !(
#line 3928 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (32 == 64 || TARGET_AVX512VL) && 1) && 
#line 3615 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2027; /* fma_fmaddsub_v8sf_maskz_1 */

            case V4SFmode:
              if (pattern618 (x2, V4SFmode, QImode) != 0
                  || !(
#line 3928 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (16 == 64 || TARGET_AVX512VL) && 1) && 
#line 3615 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2029; /* fma_fmaddsub_v4sf_maskz_1 */

            case V8DFmode:
              if (pattern618 (x2, V8DFmode, QImode) != 0
                  || !
#line 3928 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && 1))
                return -1;
              return 2033; /* fma_fmaddsub_v8df_maskz_1 */

            case V4DFmode:
              if (pattern618 (x2, V4DFmode, QImode) != 0
                  || !(
#line 3928 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (32 == 64 || TARGET_AVX512VL) && 1) && 
#line 3616 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2036; /* fma_fmaddsub_v4df_maskz_1 */

            case V2DFmode:
              if (pattern618 (x2, V2DFmode, QImode) != 0
                  || !(
#line 3928 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (16 == 64 || TARGET_AVX512VL) && 1) && 
#line 3616 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2038; /* fma_fmaddsub_v2df_maskz_1 */

            default:
              return -1;
            }

        case REG:
        case SUBREG:
          x6 = XEXP (x2, 2);
          operands[4] = x6;
          switch (GET_MODE (operands[0]))
            {
            case V16SFmode:
              if (pattern559 (x2, V16SFmode, HImode) != 0)
                return -1;
              if (nonimmediate_operand (operands[3], V16SFmode)
                  && rtx_equal_p (x5, operands[1])
                  && 
#line 3946 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return 2039; /* avx512f_fmaddsub_v16sf_mask */
              if (!register_operand (operands[3], V16SFmode)
                  || !rtx_equal_p (x5, operands[3])
                  || !
#line 3964 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 2051; /* avx512f_fmaddsub_v16sf_mask3 */

            case V8SFmode:
              if (pattern559 (x2, V8SFmode, QImode) != 0)
                return -1;
              if (nonimmediate_operand (operands[3], V8SFmode)
                  && rtx_equal_p (x5, operands[1])
                  && (
#line 3946 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 2041; /* avx512vl_fmaddsub_v8sf_mask */
              if (!register_operand (operands[3], V8SFmode)
                  || !rtx_equal_p (x5, operands[3])
                  || !(
#line 3964 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2053; /* avx512vl_fmaddsub_v8sf_mask3 */

            case V4SFmode:
              if (pattern559 (x2, V4SFmode, QImode) != 0)
                return -1;
              if (nonimmediate_operand (operands[3], V4SFmode)
                  && rtx_equal_p (x5, operands[1])
                  && (
#line 3946 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 2043; /* avx512vl_fmaddsub_v4sf_mask */
              if (!register_operand (operands[3], V4SFmode)
                  || !rtx_equal_p (x5, operands[3])
                  || !(
#line 3964 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2055; /* avx512vl_fmaddsub_v4sf_mask3 */

            case V8DFmode:
              if (pattern559 (x2, V8DFmode, QImode) != 0)
                return -1;
              if (nonimmediate_operand (operands[3], V8DFmode)
                  && rtx_equal_p (x5, operands[1])
                  && 
#line 3946 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return 2045; /* avx512f_fmaddsub_v8df_mask */
              if (!register_operand (operands[3], V8DFmode)
                  || !rtx_equal_p (x5, operands[3])
                  || !
#line 3964 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 2057; /* avx512f_fmaddsub_v8df_mask3 */

            case V4DFmode:
              if (pattern559 (x2, V4DFmode, QImode) != 0)
                return -1;
              if (nonimmediate_operand (operands[3], V4DFmode)
                  && rtx_equal_p (x5, operands[1])
                  && (
#line 3946 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 2047; /* avx512vl_fmaddsub_v4df_mask */
              if (!register_operand (operands[3], V4DFmode)
                  || !rtx_equal_p (x5, operands[3])
                  || !(
#line 3964 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2059; /* avx512vl_fmaddsub_v4df_mask3 */

            case V2DFmode:
              if (pattern559 (x2, V2DFmode, QImode) != 0)
                return -1;
              if (nonimmediate_operand (operands[3], V2DFmode)
                  && rtx_equal_p (x5, operands[1])
                  && (
#line 3946 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 2049; /* avx512vl_fmaddsub_v2df_mask */
              if (!register_operand (operands[3], V2DFmode)
                  || !rtx_equal_p (x5, operands[3])
                  || !(
#line 3964 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2061; /* avx512vl_fmaddsub_v2df_mask3 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case NEG:
      x7 = XEXP (x4, 0);
      operands[3] = x7;
      x5 = XEXP (x2, 1);
      switch (GET_CODE (x5))
        {
        case CONST_INT:
        case CONST_WIDE_INT:
        case CONST_DOUBLE:
        case CONST_VECTOR:
          operands[4] = x5;
          x6 = XEXP (x2, 2);
          operands[5] = x6;
          switch (GET_MODE (operands[0]))
            {
            case V16SFmode:
              if (pattern619 (x2, V16SFmode, HImode) != 0
                  || !
#line 3997 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && 1))
                return -1;
              return 2070; /* fma_fmsubadd_v16sf_maskz_1 */

            case V8SFmode:
              if (pattern619 (x2, V8SFmode, QImode) != 0
                  || !(
#line 3997 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (32 == 64 || TARGET_AVX512VL) && 1) && 
#line 3615 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2073; /* fma_fmsubadd_v8sf_maskz_1 */

            case V4SFmode:
              if (pattern619 (x2, V4SFmode, QImode) != 0
                  || !(
#line 3997 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (16 == 64 || TARGET_AVX512VL) && 1) && 
#line 3615 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2075; /* fma_fmsubadd_v4sf_maskz_1 */

            case V8DFmode:
              if (pattern619 (x2, V8DFmode, QImode) != 0
                  || !
#line 3997 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && 1))
                return -1;
              return 2079; /* fma_fmsubadd_v8df_maskz_1 */

            case V4DFmode:
              if (pattern619 (x2, V4DFmode, QImode) != 0
                  || !(
#line 3997 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (32 == 64 || TARGET_AVX512VL) && 1) && 
#line 3616 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2082; /* fma_fmsubadd_v4df_maskz_1 */

            case V2DFmode:
              if (pattern619 (x2, V2DFmode, QImode) != 0
                  || !(
#line 3997 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (16 == 64 || TARGET_AVX512VL) && 1) && 
#line 3616 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2084; /* fma_fmsubadd_v2df_maskz_1 */

            default:
              return -1;
            }

        case REG:
        case SUBREG:
          x6 = XEXP (x2, 2);
          operands[4] = x6;
          switch (GET_MODE (operands[0]))
            {
            case V16SFmode:
              if (pattern560 (x2, V16SFmode, HImode) != 0)
                return -1;
              if (nonimmediate_operand (operands[3], V16SFmode)
                  && rtx_equal_p (x5, operands[1])
                  && 
#line 4016 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return 2085; /* avx512f_fmsubadd_v16sf_mask */
              if (!register_operand (operands[3], V16SFmode)
                  || !rtx_equal_p (x5, operands[3])
                  || !
#line 4035 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 2097; /* avx512f_fmsubadd_v16sf_mask3 */

            case V8SFmode:
              if (pattern560 (x2, V8SFmode, QImode) != 0)
                return -1;
              if (nonimmediate_operand (operands[3], V8SFmode)
                  && rtx_equal_p (x5, operands[1])
                  && (
#line 4016 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 2087; /* avx512vl_fmsubadd_v8sf_mask */
              if (!register_operand (operands[3], V8SFmode)
                  || !rtx_equal_p (x5, operands[3])
                  || !(
#line 4035 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2099; /* avx512vl_fmsubadd_v8sf_mask3 */

            case V4SFmode:
              if (pattern560 (x2, V4SFmode, QImode) != 0)
                return -1;
              if (nonimmediate_operand (operands[3], V4SFmode)
                  && rtx_equal_p (x5, operands[1])
                  && (
#line 4016 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 2089; /* avx512vl_fmsubadd_v4sf_mask */
              if (!register_operand (operands[3], V4SFmode)
                  || !rtx_equal_p (x5, operands[3])
                  || !(
#line 4035 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2101; /* avx512vl_fmsubadd_v4sf_mask3 */

            case V8DFmode:
              if (pattern560 (x2, V8DFmode, QImode) != 0)
                return -1;
              if (nonimmediate_operand (operands[3], V8DFmode)
                  && rtx_equal_p (x5, operands[1])
                  && 
#line 4016 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return 2091; /* avx512f_fmsubadd_v8df_mask */
              if (!register_operand (operands[3], V8DFmode)
                  || !rtx_equal_p (x5, operands[3])
                  || !
#line 4035 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 2103; /* avx512f_fmsubadd_v8df_mask3 */

            case V4DFmode:
              if (pattern560 (x2, V4DFmode, QImode) != 0)
                return -1;
              if (nonimmediate_operand (operands[3], V4DFmode)
                  && rtx_equal_p (x5, operands[1])
                  && (
#line 4016 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 2093; /* avx512vl_fmsubadd_v4df_mask */
              if (!register_operand (operands[3], V4DFmode)
                  || !rtx_equal_p (x5, operands[3])
                  || !(
#line 4035 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2105; /* avx512vl_fmsubadd_v4df_mask3 */

            case V2DFmode:
              if (pattern560 (x2, V2DFmode, QImode) != 0)
                return -1;
              if (nonimmediate_operand (operands[3], V2DFmode)
                  && rtx_equal_p (x5, operands[1])
                  && (
#line 4016 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 2095; /* avx512vl_fmsubadd_v2df_mask */
              if (!register_operand (operands[3], V2DFmode)
                  || !rtx_equal_p (x5, operands[3])
                  || !(
#line 4035 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2107; /* avx512vl_fmsubadd_v2df_mask3 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_84 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XVECEXP (x3, 0, 2);
  operands[3] = x4;
  x5 = XEXP (x2, 1);
  switch (GET_CODE (x5))
    {
    case CONST_INT:
    case CONST_WIDE_INT:
    case CONST_DOUBLE:
    case CONST_VECTOR:
      operands[4] = x5;
      x6 = XEXP (x2, 2);
      operands[5] = x6;
      switch (GET_MODE (operands[0]))
        {
        case V16SImode:
          if (pattern529 (x2, HImode, V16SImode) != 0
              || !
#line 17914 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 4402; /* avx512f_vpermt2varv16si3_maskz_1 */

        case V16SFmode:
          if (pattern562 (x2, V16SFmode, V16SImode, HImode) != 0
              || !
#line 17914 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 4404; /* avx512f_vpermt2varv16sf3_maskz_1 */

        case V8DImode:
          if (pattern529 (x2, QImode, V8DImode) != 0
              || !
#line 17914 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 4406; /* avx512f_vpermt2varv8di3_maskz_1 */

        case V8DFmode:
          if (pattern562 (x2, V8DFmode, V8DImode, QImode) != 0
              || !
#line 17914 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 4408; /* avx512f_vpermt2varv8df3_maskz_1 */

        case V8SImode:
          if (pattern529 (x2, QImode, V8SImode) != 0
              || !(
#line 17914 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4410; /* avx512vl_vpermt2varv8si3_maskz_1 */

        case V8SFmode:
          if (pattern562 (x2, V8SFmode, V8SImode, QImode) != 0
              || !(
#line 17914 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4412; /* avx512vl_vpermt2varv8sf3_maskz_1 */

        case V4DImode:
          if (pattern529 (x2, QImode, V4DImode) != 0
              || !(
#line 17914 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4414; /* avx512vl_vpermt2varv4di3_maskz_1 */

        case V4DFmode:
          if (pattern562 (x2, V4DFmode, V4DImode, QImode) != 0
              || !(
#line 17914 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4416; /* avx512vl_vpermt2varv4df3_maskz_1 */

        case V4SImode:
          if (pattern529 (x2, QImode, V4SImode) != 0
              || !(
#line 17914 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4418; /* avx512vl_vpermt2varv4si3_maskz_1 */

        case V4SFmode:
          if (pattern562 (x2, V4SFmode, V4SImode, QImode) != 0
              || !(
#line 17914 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4420; /* avx512vl_vpermt2varv4sf3_maskz_1 */

        case V2DImode:
          if (pattern529 (x2, QImode, V2DImode) != 0
              || !(
#line 17914 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4422; /* avx512vl_vpermt2varv2di3_maskz_1 */

        case V2DFmode:
          if (pattern562 (x2, V2DFmode, V2DImode, QImode) != 0
              || !(
#line 17914 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4424; /* avx512vl_vpermt2varv2df3_maskz_1 */

        case V64QImode:
          if (pattern529 (x2, DImode, V64QImode) != 0
              || !
#line 17927 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VBMI))
            return -1;
          return 4426; /* avx512bw_vpermt2varv64qi3_maskz_1 */

        case V16QImode:
          if (pattern529 (x2, HImode, V16QImode) != 0
              || !(
#line 17927 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VBMI) && 
#line 186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4428; /* avx512vl_vpermt2varv16qi3_maskz_1 */

        case V32QImode:
          if (pattern529 (x2, SImode, V32QImode) != 0
              || !(
#line 17927 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VBMI) && 
#line 186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4430; /* avx512vl_vpermt2varv32qi3_maskz_1 */

        case V8HImode:
          if (pattern529 (x2, QImode, V8HImode) != 0
              || !(
#line 17940 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4432; /* avx512vl_vpermt2varv8hi3_maskz_1 */

        case V16HImode:
          if (pattern529 (x2, HImode, V16HImode) != 0
              || !(
#line 17940 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4434; /* avx512vl_vpermt2varv16hi3_maskz_1 */

        case V32HImode:
          if (pattern529 (x2, SImode, V32HImode) != 0
              || !
#line 17940 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
            return -1;
          return 4436; /* avx512bw_vpermt2varv32hi3_maskz_1 */

        default:
          return -1;
        }

    case REG:
    case SUBREG:
      if (!rtx_equal_p (x5, operands[2]))
        return -1;
      x6 = XEXP (x2, 2);
      operands[4] = x6;
      switch (GET_MODE (operands[0]))
        {
        case V16SImode:
          if (pattern531 (x2, HImode, V16SImode) != 0
              || !
#line 17956 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 4437; /* avx512f_vpermt2varv16si3_mask */

        case V16SFmode:
          if (pattern563 (x2, V16SFmode, V16SImode, HImode) != 0
              || !
#line 17956 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 4438; /* avx512f_vpermt2varv16sf3_mask */

        case V8DImode:
          if (pattern531 (x2, QImode, V8DImode) != 0
              || !
#line 17956 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 4439; /* avx512f_vpermt2varv8di3_mask */

        case V8DFmode:
          if (pattern563 (x2, V8DFmode, V8DImode, QImode) != 0
              || !
#line 17956 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 4440; /* avx512f_vpermt2varv8df3_mask */

        case V8SImode:
          if (pattern531 (x2, QImode, V8SImode) != 0
              || !(
#line 17956 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4441; /* avx512vl_vpermt2varv8si3_mask */

        case V8SFmode:
          if (pattern563 (x2, V8SFmode, V8SImode, QImode) != 0
              || !(
#line 17956 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4442; /* avx512vl_vpermt2varv8sf3_mask */

        case V4DImode:
          if (pattern531 (x2, QImode, V4DImode) != 0
              || !(
#line 17956 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4443; /* avx512vl_vpermt2varv4di3_mask */

        case V4DFmode:
          if (pattern563 (x2, V4DFmode, V4DImode, QImode) != 0
              || !(
#line 17956 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4444; /* avx512vl_vpermt2varv4df3_mask */

        case V4SImode:
          if (pattern531 (x2, QImode, V4SImode) != 0
              || !(
#line 17956 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4445; /* avx512vl_vpermt2varv4si3_mask */

        case V4SFmode:
          if (pattern563 (x2, V4SFmode, V4SImode, QImode) != 0
              || !(
#line 17956 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4446; /* avx512vl_vpermt2varv4sf3_mask */

        case V2DImode:
          if (pattern531 (x2, QImode, V2DImode) != 0
              || !(
#line 17956 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4447; /* avx512vl_vpermt2varv2di3_mask */

        case V2DFmode:
          if (pattern563 (x2, V2DFmode, V2DImode, QImode) != 0
              || !(
#line 17956 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4448; /* avx512vl_vpermt2varv2df3_mask */

        case V64QImode:
          if (pattern531 (x2, DImode, V64QImode) != 0
              || !
#line 17972 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VBMI))
            return -1;
          return 4449; /* avx512bw_vpermt2varv64qi3_mask */

        case V16QImode:
          if (pattern531 (x2, HImode, V16QImode) != 0
              || !(
#line 17972 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VBMI) && 
#line 186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4450; /* avx512vl_vpermt2varv16qi3_mask */

        case V32QImode:
          if (pattern531 (x2, SImode, V32QImode) != 0
              || !(
#line 17972 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VBMI) && 
#line 186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4451; /* avx512vl_vpermt2varv32qi3_mask */

        case V8HImode:
          if (pattern531 (x2, QImode, V8HImode) != 0
              || !(
#line 17988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4452; /* avx512vl_vpermt2varv8hi3_mask */

        case V16HImode:
          if (pattern531 (x2, HImode, V16HImode) != 0
              || !(
#line 17988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4453; /* avx512vl_vpermt2varv16hi3_mask */

        case V32HImode:
          if (pattern531 (x2, SImode, V32HImode) != 0
              || !
#line 17988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
            return -1;
          return 4454; /* avx512bw_vpermt2varv32hi3_mask */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_85 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  switch (XINT (x3, 1))
    {
    case 105:
      x4 = XVECEXP (x3, 0, 0);
      operands[1] = x4;
      x5 = XEXP (x2, 1);
      operands[2] = x5;
      x6 = XEXP (x2, 2);
      operands[3] = x6;
      switch (GET_MODE (operands[0]))
        {
        case V16SFmode:
          if (pattern205 (x2, V16SFmode, HImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (64 == 64 || TARGET_AVX512VL)) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 1301; /* *avx512f_loadups512_mask */

        case V8SFmode:
          if (pattern205 (x2, V8SFmode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (32 == 64 || TARGET_AVX512VL)) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 1303; /* *avx_loadups256_mask */

        case V4SFmode:
          if (pattern205 (x2, V4SFmode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 1186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (16 == 64 || TARGET_AVX512VL))))
            return -1;
          return 1305; /* *sse_loadups_mask */

        case V8DFmode:
          if (pattern205 (x2, V8DFmode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (64 == 64 || TARGET_AVX512VL)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 1307; /* *avx512f_loadupd512_mask */

        case V4DFmode:
          if (pattern205 (x2, V4DFmode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (32 == 64 || TARGET_AVX512VL)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 1309; /* *avx_loadupd256_mask */

        case V2DFmode:
          if (pattern205 (x2, V2DFmode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (16 == 64 || TARGET_AVX512VL)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
            return -1;
          return 1311; /* *sse2_loadupd_mask */

        case V32QImode:
          if (pattern205 (x2, V32QImode, SImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1369 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && TARGET_AVX512VL && TARGET_AVX512BW) && 
#line 291 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 1325; /* *avx_loaddquv32qi_mask */

        case V16QImode:
          if (pattern205 (x2, V16QImode, HImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 1369 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && TARGET_AVX512VL && TARGET_AVX512BW)))
            return -1;
          return 1327; /* *sse2_loaddquv16qi_mask */

        case V64QImode:
          if (pattern205 (x2, V64QImode, DImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 1408 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return -1;
          return 1329; /* *avx512f_loaddquv64qi_mask */

        case V32HImode:
          if (pattern205 (x2, V32HImode, SImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 1408 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return -1;
          return 1331; /* *avx512bw_loaddquv32hi_mask */

        case V8HImode:
          if (pattern205 (x2, V8HImode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1408 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 295 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 1333; /* *avx512vl_loaddquv8hi_mask */

        case V16HImode:
          if (pattern205 (x2, V16HImode, HImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1408 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 295 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 1335; /* *avx512vl_loaddquv16hi_mask */

        case V16SImode:
          if (pattern205 (x2, V16SImode, HImode) != 0
              || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 1337; /* *avx512f_loaddquv16si_mask */

        case V8SImode:
          if (pattern205 (x2, V8SImode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1420 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 298 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 1339; /* *avx_loaddquv8si_mask */

        case V4SImode:
          if (pattern205 (x2, V4SImode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1420 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 298 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 1341; /* *sse2_loaddquv4si_mask */

        case V8DImode:
          if (pattern205 (x2, V8DImode, QImode) != 0
              || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 1343; /* *avx512f_loaddquv8di_mask */

        case V4DImode:
          if (pattern205 (x2, V4DImode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1420 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 299 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 1345; /* *avx512vl_loaddquv4di_mask */

        case V2DImode:
          if (pattern205 (x2, V2DImode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1420 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 299 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 1347; /* *avx512vl_loaddquv2di_mask */

        default:
          return -1;
        }

    case 106:
      return recog_82 (x1, insn, pnum_clobbers);

    case 43:
      if (pattern204 (x2) != 0
          || !
#line 1796 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
        return -1;
      return 1497; /* sse_vmrcpv4sf2 */

    case 156:
      switch (pattern207 (x2))
        {
        case 0:
          if (!
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 1499; /* rcp14v16sf_mask */

        case 1:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1813 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 1501; /* rcp14v8sf_mask */

        case 2:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1813 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 1503; /* rcp14v4sf_mask */

        case 3:
          if (!
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 1505; /* rcp14v8df_mask */

        case 4:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1813 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 1507; /* rcp14v4df_mask */

        case 5:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1813 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 1509; /* rcp14v2df_mask */

        case 6:
          if (!
#line 1827 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 1510; /* srcp14v4sf */

        case 7:
          if (!(
#line 1827 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return -1;
          return 1511; /* srcp14v2df */

        default:
          return -1;
        }

    case 157:
      switch (pattern207 (x2))
        {
        case 0:
          if (!
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 1535; /* rsqrt14v16sf_mask */

        case 1:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1911 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 1537; /* rsqrt14v8sf_mask */

        case 2:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1911 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 1539; /* rsqrt14v4sf_mask */

        case 3:
          if (!
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 1541; /* rsqrt14v8df_mask */

        case 4:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1911 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 1543; /* rsqrt14v4df_mask */

        case 5:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1911 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 1545; /* rsqrt14v2df_mask */

        case 6:
          if (!
#line 1925 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 1546; /* rsqrt14v4sf */

        case 7:
          if (!(
#line 1925 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return -1;
          return 1547; /* rsqrt14v2df */

        default:
          return -1;
        }

    case 44:
      if (pattern204 (x2) != 0
          || !
#line 1938 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
        return -1;
      return 1548; /* sse_vmrsqrtv4sf2 */

    case 40:
      switch (pattern208 (x2))
        {
        case 0:
          switch (GET_MODE (operands[0]))
            {
            case V8SImode:
              switch (pattern489 (x2, V8SImode))
                {
                case 0:
                  if (!vector_operand (operands[1], V8SFmode)
                      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4459 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (32 == 64 || TARGET_AVX512VL)) && 
#line 334 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
                    return -1;
                  return 2178; /* avx_fix_notruncv8sfv8si_mask */

                case 1:
                  if (!vector_operand (operands[1], V8DFmode)
                      || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                    return -1;
                  return 2315; /* avx512f_cvtpd2dq512_mask */

                default:
                  return -1;
                }

            case V4SImode:
              switch (pattern490 (x2, V4SImode))
                {
                case 0:
                  if (!vector_operand (operands[1], V4SFmode)
                      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4459 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (16 == 64 || TARGET_AVX512VL))))
                    return -1;
                  return 2180; /* sse2_fix_notruncv4sfv4si_mask */

                case 1:
                  if (!nonimmediate_operand (operands[1], V4DFmode)
                      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 5043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && TARGET_AVX512VL)))
                    return -1;
                  return 2318; /* avx_cvtpd2dq256_mask */

                default:
                  return -1;
                }

            case V16SImode:
              if (pattern449 (x2, V16SImode, HImode, V16SFmode) != 0
                  || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 2183; /* avx512f_fix_notruncv16sfv16si_mask */

            case V8DImode:
              switch (pattern489 (x2, V8DImode))
                {
                case 0:
                  if (!nonimmediate_operand (operands[1], V8SFmode)
                      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4496 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1)))
                    return -1;
                  return 2199; /* avx512dq_cvtps2qqv8di_mask */

                case 1:
                  if (!vector_operand (operands[1], V8DFmode)
                      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 5175 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1)))
                    return -1;
                  return 2364; /* fix_notruncv8dfv8di2_mask */

                default:
                  return -1;
                }

            case V4DImode:
              switch (pattern490 (x2, V4DImode))
                {
                case 0:
                  if (!nonimmediate_operand (operands[1], V4SFmode)
                      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4496 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 319 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 2202; /* avx512dq_cvtps2qqv4di_mask */

                case 1:
                  if (!vector_operand (operands[1], V4DFmode)
                      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 5175 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 270 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 2367; /* fix_notruncv4dfv4di2_mask */

                default:
                  return -1;
                }

            case V2DImode:
              if (pattern449 (x2, V2DImode, QImode, V2DFmode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 5175 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 270 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 2369; /* fix_notruncv2dfv2di2_mask */

            default:
              return -1;
            }

        case 1:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4509 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && TARGET_AVX512VL)))
            return -1;
          return 2204; /* avx512dq_cvtps2qqv2di_mask */

        default:
          return -1;
        }

    case 151:
      switch (pattern208 (x2))
        {
        case 0:
          switch (GET_MODE (operands[0]))
            {
            case V16SImode:
              if (pattern448 (x2, V16SImode, HImode, V16SFmode) != 0
                  || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 2187; /* avx512f_ufix_notruncv16sfv16si_mask */

            case V8SImode:
              switch (pattern491 (x2, V8SImode))
                {
                case 0:
                  if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4486 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 343 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 2191; /* avx512vl_ufix_notruncv8sfv8si_mask */

                case 1:
                  if (!
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                    return -1;
                  return 2324; /* ufix_notruncv8dfv8si2_mask */

                default:
                  return -1;
                }

            case V4SImode:
              switch (pattern492 (x2, V4SImode))
                {
                case 0:
                  if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4486 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 343 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 2195; /* avx512vl_ufix_notruncv4sfv4si_mask */

                case 1:
                  if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 5102 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 247 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 2328; /* ufix_notruncv4dfv4si2_mask */

                default:
                  return -1;
                }

            case V8DImode:
              switch (pattern491 (x2, V8DImode))
                {
                case 0:
                  if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4519 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1)))
                    return -1;
                  return 2207; /* avx512dq_cvtps2uqqv8di_mask */

                case 1:
                  if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 5186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1)))
                    return -1;
                  return 2372; /* ufix_notruncv8dfv8di2_mask */

                default:
                  return -1;
                }

            case V4DImode:
              switch (pattern492 (x2, V4DImode))
                {
                case 0:
                  if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4519 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 319 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 2210; /* avx512dq_cvtps2uqqv4di_mask */

                case 1:
                  if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 5186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 270 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 2375; /* ufix_notruncv4dfv4di2_mask */

                default:
                  return -1;
                }

            case V2DImode:
              if (pattern448 (x2, V2DImode, QImode, V2DFmode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 5186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 270 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 2377; /* ufix_notruncv2dfv2di2_mask */

            default:
              return -1;
            }

        case 1:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4532 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && TARGET_AVX512VL)))
            return -1;
          return 2212; /* avx512dq_cvtps2uqqv2di_mask */

        default:
          return -1;
        }

    case 161:
      x4 = XVECEXP (x3, 0, 0);
      operands[1] = x4;
      x5 = XEXP (x2, 1);
      operands[2] = x5;
      x6 = XEXP (x2, 2);
      operands[3] = x6;
      switch (GET_MODE (operands[0]))
        {
        case V16SFmode:
          if (pattern209 (x2, V16SFmode, HImode) != 0
              || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 2619; /* avx512f_getexpv16sf_mask */

        case V8SFmode:
          if (pattern209 (x2, V8SFmode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8170 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 2623; /* avx512vl_getexpv8sf_mask */

        case V4SFmode:
          if (pattern209 (x2, V4SFmode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8170 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 2627; /* avx512vl_getexpv4sf_mask */

        case V8DFmode:
          if (pattern209 (x2, V8DFmode, QImode) != 0
              || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 2631; /* avx512f_getexpv8df_mask */

        case V4DFmode:
          if (pattern209 (x2, V4DFmode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8170 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 2635; /* avx512vl_getexpv4df_mask */

        case V2DFmode:
          if (pattern209 (x2, V2DFmode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8170 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 2639; /* avx512vl_getexpv2df_mask */

        default:
          return -1;
        }

    case 173:
      x4 = XVECEXP (x3, 0, 0);
      operands[1] = x4;
      x5 = XEXP (x2, 1);
      operands[2] = x5;
      switch (pattern210 (x2))
        {
        case 0:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 15997 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512ER)))
            return -1;
          return 3993; /* avx512er_exp2v16sf_mask */

        case 1:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 15997 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512ER)))
            return -1;
          return 3997; /* avx512er_exp2v8df_mask */

        default:
          return -1;
        }

    case 174:
      switch (pattern212 (x2))
        {
        case 0:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 16008 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512ER)))
            return -1;
          return 4001; /* avx512er_rcp28v16sf_mask */

        case 1:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 16008 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512ER)))
            return -1;
          return 4005; /* avx512er_rcp28v8df_mask */

        case 2:
          if (!
#line 16022 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512ER))
            return -1;
          return 4007; /* avx512er_vmrcp28v4sf */

        case 3:
          if (!(
#line 16022 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512ER) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return -1;
          return 4009; /* avx512er_vmrcp28v2df */

        default:
          return -1;
        }

    case 175:
      switch (pattern212 (x2))
        {
        case 0:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 16034 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512ER)))
            return -1;
          return 4013; /* avx512er_rsqrt28v16sf_mask */

        case 1:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 16034 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512ER)))
            return -1;
          return 4017; /* avx512er_rsqrt28v8df_mask */

        case 2:
          if (!
#line 16048 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512ER))
            return -1;
          return 4019; /* avx512er_vmrsqrt28v4sf */

        case 3:
          if (!(
#line 16048 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512ER) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return -1;
          return 4021; /* avx512er_vmrsqrt28v2df */

        default:
          return -1;
        }

    case 128:
      x6 = XEXP (x2, 2);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x4 = XVECEXP (x3, 0, 0);
      operands[1] = x4;
      x5 = XEXP (x2, 1);
      operands[2] = x5;
      switch (GET_MODE (operands[0]))
        {
        case V4SFmode:
          if (pattern447 (x2, V4SFmode) != 0
              || !
#line 16867 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
            return -1;
          return 4096; /* *xop_vmfrczv4sf2 */

        case V2DFmode:
          if (pattern447 (x2, V2DFmode) != 0
              || !(
#line 16867 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return -1;
          return 4097; /* *xop_vmfrczv2df2 */

        default:
          return -1;
        }

    case 142:
      x4 = XVECEXP (x3, 0, 0);
      operands[1] = x4;
      x5 = XEXP (x2, 1);
      operands[2] = x5;
      x6 = XEXP (x2, 2);
      operands[3] = x6;
      switch (GET_MODE (operands[0]))
        {
        case V4SFmode:
          if (!register_operand (operands[0], V4SFmode)
              || GET_MODE (x2) != V4SFmode
              || GET_MODE (x3) != V4SFmode
              || !memory_operand (operands[1], V4HImode)
              || !vector_move_operand (operands[2], V4SFmode)
              || !register_operand (operands[3], QImode)
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 18548 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_F16C || TARGET_AVX512VL)))
            return -1;
          return 4575; /* *vcvtph2ps_load_mask */

        case V8SFmode:
          if (pattern448 (x2, V8SFmode, QImode, V8HImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 18558 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_F16C || TARGET_AVX512VL)))
            return -1;
          return 4577; /* vcvtph2ps256_mask */

        case V16SFmode:
          if (pattern449 (x2, V16SFmode, HImode, V16HImode) != 0
              || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 4580; /* avx512f_vcvtph2ps512_mask */

        default:
          return -1;
        }

    case 164:
      x4 = XVECEXP (x3, 0, 0);
      operands[1] = x4;
      x5 = XEXP (x2, 1);
      operands[2] = x5;
      x6 = XEXP (x2, 2);
      operands[3] = x6;
      switch (GET_MODE (operands[0]))
        {
        case V16SImode:
          if (pattern205 (x2, V16SImode, HImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 19202 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512CD)))
            return -1;
          return 4922; /* conflictv16si_mask */

        case V8SImode:
          if (pattern205 (x2, V8SImode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 19202 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512CD) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 4924; /* conflictv8si_mask */

        case V4SImode:
          if (pattern205 (x2, V4SImode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 19202 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512CD) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 4926; /* conflictv4si_mask */

        case V8DImode:
          if (pattern205 (x2, V8DImode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 19202 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512CD)))
            return -1;
          return 4928; /* conflictv8di_mask */

        case V4DImode:
          if (pattern205 (x2, V4DImode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 19202 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512CD) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 4930; /* conflictv4di_mask */

        case V2DImode:
          if (pattern205 (x2, V2DImode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 19202 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512CD) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 4932; /* conflictv2di_mask */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_86 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (XINT (x3, 1))
    {
    case 189:
      x6 = XEXP (x2, 2);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x7 = XVECEXP (x3, 0, 2);
      operands[3] = x7;
      if (!const_0_to_255_operand (operands[3], SImode))
        return -1;
      switch (pattern499 (x2))
        {
        case 0:
          if (!
#line 2578 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ))
            return -1;
          return 1663; /* reducesv4sf */

        case 1:
          if (!(
#line 2578 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return -1;
          return 1664; /* reducesv2df */

        default:
          return -1;
        }

    case 136:
      x6 = XEXP (x2, 2);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x7 = XVECEXP (x3, 0, 2);
      operands[3] = x7;
      if (!const_0_to_31_operand (operands[3], SImode))
        return -1;
      switch (pattern499 (x2))
        {
        case 0:
          if (!
#line 2614 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return -1;
          return 1669; /* avx_vmcmpv4sf3 */

        case 1:
          if (!(
#line 2614 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return -1;
          return 1670; /* avx_vmcmpv2df3 */

        default:
          return -1;
        }

    case 124:
      return recog_83 (x1, insn, pnum_clobbers);

    case 163:
      x7 = XVECEXP (x3, 0, 2);
      operands[3] = x7;
      if (!const_0_to_255_operand (operands[3], SImode))
        return -1;
      x8 = XEXP (x2, 1);
      operands[4] = x8;
      x6 = XEXP (x2, 2);
      operands[5] = x6;
      switch (GET_MODE (operands[0]))
        {
        case V16SImode:
          if (pattern561 (x2, HImode, V16SImode) != 0
              || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 2646; /* avx512f_alignv16si_mask */

        case V8SImode:
          if (pattern561 (x2, QImode, V8SImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8195 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 2648; /* avx512vl_alignv8si_mask */

        case V4SImode:
          if (pattern561 (x2, QImode, V4SImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8195 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 2650; /* avx512vl_alignv4si_mask */

        case V8DImode:
          if (pattern561 (x2, QImode, V8DImode) != 0
              || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 2652; /* avx512f_alignv8di_mask */

        case V4DImode:
          if (pattern561 (x2, QImode, V4DImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8195 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 2654; /* avx512vl_alignv4di_mask */

        case V2DImode:
          if (pattern561 (x2, QImode, V2DImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8195 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 2656; /* avx512vl_alignv2di_mask */

        default:
          return -1;
        }

    case 81:
      x6 = XEXP (x2, 2);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x7 = XVECEXP (x3, 0, 2);
      operands[3] = x7;
      if (!const_0_to_255_operand (operands[3], SImode))
        return -1;
      switch (pattern374 (x2))
        {
        case 0:
          if (!
#line 8350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2729; /* avx512f_rndscalev4sf */

        case 1:
          if (!(
#line 8350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return -1;
          return 2731; /* avx512f_rndscalev2df */

        default:
          return -1;
        }

    case 110:
      x7 = XVECEXP (x3, 0, 2);
      operands[3] = x7;
      if (!const_0_to_255_mul_8_operand (operands[3], SImode))
        return -1;
      x8 = XEXP (x2, 1);
      operands[4] = x8;
      x6 = XEXP (x2, 2);
      operands[5] = x6;
      switch (GET_MODE (operands[0]))
        {
        case V64QImode:
          if (pattern561 (x2, DImode, V64QImode) != 0
              || !(
#line 14515 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW && (64 == 64 || TARGET_AVX512VL)) && 
#line 325 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return -1;
          return 3799; /* avx512bw_palignrv64qi_mask */

        case V32QImode:
          if (pattern561 (x2, SImode, V32QImode) != 0
              || !(
#line 14515 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW && (32 == 64 || TARGET_AVX512VL)) && 
#line 325 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
            return -1;
          return 3800; /* avx2_palignrv32qi_mask */

        case V16QImode:
          if (pattern561 (x2, HImode, V16QImode) != 0
              || !
#line 14515 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW && (16 == 64 || TARGET_AVX512VL)))
            return -1;
          return 3801; /* ssse3_palignrv16qi_mask */

        default:
          return -1;
        }

    case 148:
      x7 = XVECEXP (x3, 0, 2);
      operands[3] = x7;
      x8 = XEXP (x2, 1);
      operands[4] = x8;
      x6 = XEXP (x2, 2);
      operands[5] = x6;
      switch (GET_MODE (operands[0]))
        {
        case V16SImode:
          if (pattern529 (x2, HImode, V16SImode) != 0
              || !
#line 17785 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 4348; /* avx512f_vpermi2varv16si3_maskz_1 */

        case V16SFmode:
          if (pattern530 (x2, V16SFmode, V16SImode, HImode) != 0
              || !
#line 17785 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 4350; /* avx512f_vpermi2varv16sf3_maskz_1 */

        case V8DImode:
          if (pattern529 (x2, QImode, V8DImode) != 0
              || !
#line 17785 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 4352; /* avx512f_vpermi2varv8di3_maskz_1 */

        case V8DFmode:
          if (pattern530 (x2, V8DFmode, V8DImode, QImode) != 0
              || !
#line 17785 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 4354; /* avx512f_vpermi2varv8df3_maskz_1 */

        case V8SImode:
          if (pattern529 (x2, QImode, V8SImode) != 0
              || !(
#line 17785 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4356; /* avx512vl_vpermi2varv8si3_maskz_1 */

        case V8SFmode:
          if (pattern530 (x2, V8SFmode, V8SImode, QImode) != 0
              || !(
#line 17785 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4358; /* avx512vl_vpermi2varv8sf3_maskz_1 */

        case V4DImode:
          if (pattern529 (x2, QImode, V4DImode) != 0
              || !(
#line 17785 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4360; /* avx512vl_vpermi2varv4di3_maskz_1 */

        case V4DFmode:
          if (pattern530 (x2, V4DFmode, V4DImode, QImode) != 0
              || !(
#line 17785 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4362; /* avx512vl_vpermi2varv4df3_maskz_1 */

        case V4SImode:
          if (pattern529 (x2, QImode, V4SImode) != 0
              || !(
#line 17785 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4364; /* avx512vl_vpermi2varv4si3_maskz_1 */

        case V4SFmode:
          if (pattern530 (x2, V4SFmode, V4SImode, QImode) != 0
              || !(
#line 17785 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4366; /* avx512vl_vpermi2varv4sf3_maskz_1 */

        case V2DImode:
          if (pattern529 (x2, QImode, V2DImode) != 0
              || !(
#line 17785 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4368; /* avx512vl_vpermi2varv2di3_maskz_1 */

        case V2DFmode:
          if (pattern530 (x2, V2DFmode, V2DImode, QImode) != 0
              || !(
#line 17785 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4370; /* avx512vl_vpermi2varv2df3_maskz_1 */

        case V64QImode:
          if (pattern529 (x2, DImode, V64QImode) != 0
              || !
#line 17798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VBMI))
            return -1;
          return 4372; /* avx512bw_vpermi2varv64qi3_maskz_1 */

        case V16QImode:
          if (pattern529 (x2, HImode, V16QImode) != 0
              || !(
#line 17798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VBMI) && 
#line 186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4374; /* avx512vl_vpermi2varv16qi3_maskz_1 */

        case V32QImode:
          if (pattern529 (x2, SImode, V32QImode) != 0
              || !(
#line 17798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VBMI) && 
#line 186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4376; /* avx512vl_vpermi2varv32qi3_maskz_1 */

        case V8HImode:
          if (pattern529 (x2, QImode, V8HImode) != 0
              || !(
#line 17811 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4378; /* avx512vl_vpermi2varv8hi3_maskz_1 */

        case V16HImode:
          if (pattern529 (x2, HImode, V16HImode) != 0
              || !(
#line 17811 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4380; /* avx512vl_vpermi2varv16hi3_maskz_1 */

        case V32HImode:
          if (pattern529 (x2, SImode, V32HImode) != 0
              || !
#line 17811 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
            return -1;
          return 4382; /* avx512bw_vpermi2varv32hi3_maskz_1 */

        default:
          return -1;
        }

    case 150:
      x7 = XVECEXP (x3, 0, 2);
      operands[3] = x7;
      x6 = XEXP (x2, 2);
      operands[4] = x6;
      x8 = XEXP (x2, 1);
      if (!rtx_equal_p (x8, operands[0]))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V16SImode:
          if (pattern531 (x2, HImode, V16SImode) != 0
              || !
#line 17827 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 4383; /* avx512f_vpermi2varv16si3_mask */

        case V16SFmode:
          if (pattern532 (x2, V16SFmode, V16SImode, HImode) != 0
              || !
#line 17827 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 4384; /* avx512f_vpermi2varv16sf3_mask */

        case V8DImode:
          if (pattern531 (x2, QImode, V8DImode) != 0
              || !
#line 17827 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 4385; /* avx512f_vpermi2varv8di3_mask */

        case V8DFmode:
          if (pattern532 (x2, V8DFmode, V8DImode, QImode) != 0
              || !
#line 17827 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 4386; /* avx512f_vpermi2varv8df3_mask */

        case V8SImode:
          if (pattern531 (x2, QImode, V8SImode) != 0
              || !(
#line 17827 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4387; /* avx512vl_vpermi2varv8si3_mask */

        case V8SFmode:
          if (pattern532 (x2, V8SFmode, V8SImode, QImode) != 0
              || !(
#line 17827 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4388; /* avx512vl_vpermi2varv8sf3_mask */

        case V4DImode:
          if (pattern531 (x2, QImode, V4DImode) != 0
              || !(
#line 17827 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4389; /* avx512vl_vpermi2varv4di3_mask */

        case V4DFmode:
          if (pattern532 (x2, V4DFmode, V4DImode, QImode) != 0
              || !(
#line 17827 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4390; /* avx512vl_vpermi2varv4df3_mask */

        case V4SImode:
          if (pattern531 (x2, QImode, V4SImode) != 0
              || !(
#line 17827 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4391; /* avx512vl_vpermi2varv4si3_mask */

        case V4SFmode:
          if (pattern532 (x2, V4SFmode, V4SImode, QImode) != 0
              || !(
#line 17827 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4392; /* avx512vl_vpermi2varv4sf3_mask */

        case V2DImode:
          if (pattern531 (x2, QImode, V2DImode) != 0
              || !(
#line 17827 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4393; /* avx512vl_vpermi2varv2di3_mask */

        case V2DFmode:
          if (pattern532 (x2, V2DFmode, V2DImode, QImode) != 0
              || !(
#line 17827 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4394; /* avx512vl_vpermi2varv2df3_mask */

        case V64QImode:
          if (pattern531 (x2, DImode, V64QImode) != 0
              || !
#line 17843 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VBMI))
            return -1;
          return 4395; /* avx512bw_vpermi2varv64qi3_mask */

        case V16QImode:
          if (pattern531 (x2, HImode, V16QImode) != 0
              || !(
#line 17843 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VBMI) && 
#line 186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4396; /* avx512vl_vpermi2varv16qi3_mask */

        case V32QImode:
          if (pattern531 (x2, SImode, V32QImode) != 0
              || !(
#line 17843 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VBMI) && 
#line 186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4397; /* avx512vl_vpermi2varv32qi3_mask */

        case V8HImode:
          if (pattern531 (x2, QImode, V8HImode) != 0
              || !(
#line 17859 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4398; /* avx512vl_vpermi2varv8hi3_mask */

        case V16HImode:
          if (pattern531 (x2, HImode, V16HImode) != 0
              || !(
#line 17859 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4399; /* avx512vl_vpermi2varv16hi3_mask */

        case V32HImode:
          if (pattern531 (x2, SImode, V32HImode) != 0
              || !
#line 17859 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
            return -1;
          return 4400; /* avx512bw_vpermi2varv32hi3_mask */

        default:
          return -1;
        }

    case 149:
      return recog_84 (x1, insn, pnum_clobbers);

    case 191:
      x7 = XVECEXP (x3, 0, 2);
      operands[3] = x7;
      if (!const_0_to_15_operand (operands[3], SImode))
        return -1;
      x6 = XEXP (x2, 2);
      switch (GET_CODE (x6))
        {
        case REG:
        case SUBREG:
          operands[5] = x6;
          x8 = XEXP (x2, 1);
          operands[4] = x8;
          switch (GET_MODE (operands[0]))
            {
            case V16SFmode:
              if (pattern620 (x2, V16SFmode, HImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 19094 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1)))
                return -1;
              return 4843; /* avx512dq_rangepv16sf_mask */

            case V8SFmode:
              if (pattern620 (x2, V8SFmode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 19094 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4846; /* avx512dq_rangepv8sf_mask */

            case V4SFmode:
              if (pattern620 (x2, V4SFmode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 19094 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4848; /* avx512dq_rangepv4sf_mask */

            case V8DFmode:
              if (pattern620 (x2, V8DFmode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 19094 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1)))
                return -1;
              return 4851; /* avx512dq_rangepv8df_mask */

            case V4DFmode:
              if (pattern620 (x2, V4DFmode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 19094 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4854; /* avx512dq_rangepv4df_mask */

            case V2DFmode:
              if (pattern620 (x2, V2DFmode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 19094 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4856; /* avx512dq_rangepv2df_mask */

            default:
              return -1;
            }

        case CONST_INT:
          if (XWINT (x6, 0) != 1LL)
            return -1;
          switch (pattern374 (x2))
            {
            case 0:
              if (!
#line 19110 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ))
                return -1;
              return 4857; /* avx512dq_rangesv4sf */

            case 1:
              if (!(
#line 19110 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
                return -1;
              return 4859; /* avx512dq_rangesv2df */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 162:
      x6 = XEXP (x2, 2);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x7 = XVECEXP (x3, 0, 2);
      operands[3] = x7;
      if (!const_0_to_15_operand (operands[3], SImode))
        return -1;
      switch (pattern374 (x2))
        {
        case 0:
          if (!
#line 19165 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 4899; /* avx512f_vgetmantv4sf */

        case 1:
          if (!(
#line 19165 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return -1;
          return 4901; /* avx512f_vgetmantv2df */

        default:
          return -1;
        }

    case 183:
      x7 = XVECEXP (x3, 0, 2);
      operands[3] = x7;
      if (!const_0_to_255_operand (operands[3], SImode))
        return -1;
      x8 = XEXP (x2, 1);
      operands[4] = x8;
      x6 = XEXP (x2, 2);
      operands[5] = x6;
      switch (GET_MODE (operands[0]))
        {
        case V8HImode:
          if (pattern564 (x2, QImode, V8HImode, V16QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 19179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 4904; /* avx512bw_dbpsadbwv8hi_mask */

        case V16HImode:
          if (pattern564 (x2, HImode, V16HImode, V32QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 19179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 4906; /* avx512bw_dbpsadbwv16hi_mask */

        case V32HImode:
          if (pattern564 (x2, SImode, V32HImode, V64QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 19179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return -1;
          return 4908; /* avx512bw_dbpsadbwv32hi_mask */

        default:
          return -1;
        }

    case 192:
      switch (pattern331 (x2))
        {
        case 0:
          if (!
#line 19371 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512IFMA))
            return -1;
          return 4947; /* vpamdd52luqv8di_maskz_1 */

        case 1:
          if (!(
#line 19371 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512IFMA) && 
#line 316 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4951; /* vpamdd52luqv4di_maskz_1 */

        case 2:
          if (!(
#line 19371 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512IFMA) && 
#line 316 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4955; /* vpamdd52luqv2di_maskz_1 */

        case 3:
          if (!
#line 19387 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512IFMA))
            return -1;
          return 4958; /* vpamdd52luqv8di_mask */

        case 4:
          if (!(
#line 19387 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512IFMA) && 
#line 316 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4960; /* vpamdd52luqv4di_mask */

        case 5:
          if (!(
#line 19387 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512IFMA) && 
#line 316 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4962; /* vpamdd52luqv2di_mask */

        default:
          return -1;
        }

    case 193:
      switch (pattern331 (x2))
        {
        case 0:
          if (!
#line 19371 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512IFMA))
            return -1;
          return 4949; /* vpamdd52huqv8di_maskz_1 */

        case 1:
          if (!(
#line 19371 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512IFMA) && 
#line 316 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4953; /* vpamdd52huqv4di_maskz_1 */

        case 2:
          if (!(
#line 19371 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512IFMA) && 
#line 316 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4957; /* vpamdd52huqv2di_maskz_1 */

        case 3:
          if (!
#line 19387 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512IFMA))
            return -1;
          return 4959; /* vpamdd52huqv8di_mask */

        case 4:
          if (!(
#line 19387 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512IFMA) && 
#line 316 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4961; /* vpamdd52huqv4di_mask */

        case 5:
          if (!(
#line 19387 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512IFMA) && 
#line 316 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4963; /* vpamdd52huqv2di_mask */

        default:
          return -1;
        }

    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, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  switch (XINT (x3, 1))
    {
    case 48:
      switch (pattern214 (x2))
        {
        case 0:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2001 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (64 == 64 || TARGET_AVX512VL) && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 1599; /* ieee_maxv16sf3_mask */

        case 1:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2001 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (32 == 64 || TARGET_AVX512VL) && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 1606; /* ieee_maxv8sf3_mask */

        case 2:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 2001 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (16 == 64 || TARGET_AVX512VL) && 1)))
            return -1;
          return 1610; /* ieee_maxv4sf3_mask */

        case 3:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2001 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (64 == 64 || TARGET_AVX512VL) && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 1615; /* ieee_maxv8df3_mask */

        case 4:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2001 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (32 == 64 || TARGET_AVX512VL) && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 1622; /* ieee_maxv4df3_mask */

        case 5:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2001 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (16 == 64 || TARGET_AVX512VL) && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
            return -1;
          return 1626; /* ieee_maxv2df3_mask */

        default:
          return -1;
        }

    case 47:
      switch (pattern214 (x2))
        {
        case 0:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2001 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (64 == 64 || TARGET_AVX512VL) && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 1603; /* ieee_minv16sf3_mask */

        case 1:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2001 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (32 == 64 || TARGET_AVX512VL) && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 1608; /* ieee_minv8sf3_mask */

        case 2:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 2001 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (16 == 64 || TARGET_AVX512VL) && 1)))
            return -1;
          return 1612; /* ieee_minv4sf3_mask */

        case 3:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2001 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (64 == 64 || TARGET_AVX512VL) && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 1619; /* ieee_minv8df3_mask */

        case 4:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2001 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (32 == 64 || TARGET_AVX512VL) && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 1624; /* ieee_minv4df3_mask */

        case 5:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2001 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (16 == 64 || TARGET_AVX512VL) && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
            return -1;
          return 1628; /* ieee_minv2df3_mask */

        default:
          return -1;
        }

    case 189:
      x4 = XVECEXP (x3, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x3, 0, 1);
      operands[2] = x5;
      if (!const_0_to_255_operand (operands[2], SImode))
        return -1;
      switch (pattern372 (x2))
        {
        case 0:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 2562 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ)))
            return -1;
          return 1652; /* reducepv16sf_mask */

        case 1:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2562 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 1654; /* reducepv8sf_mask */

        case 2:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2562 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 1656; /* reducepv4sf_mask */

        case 3:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 2562 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ)))
            return -1;
          return 1658; /* reducepv8df_mask */

        case 4:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2562 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 1660; /* reducepv4df_mask */

        case 5:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2562 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 1662; /* reducepv2df_mask */

        default:
          return -1;
        }

    case 159:
      x4 = XVECEXP (x3, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x3, 0, 1);
      operands[2] = x5;
      x6 = XEXP (x2, 2);
      switch (GET_CODE (x6))
        {
        case CONST_INT:
          if (XWINT (x6, 0) != 1LL)
            return -1;
          switch (pattern374 (x2))
            {
            case 0:
              if (!
#line 8104 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 2571; /* avx512f_vmscalefv4sf */

            case 1:
              if (!(
#line 8104 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
                return -1;
              return 2573; /* avx512f_vmscalefv2df */

            default:
              return -1;
            }

        case REG:
        case SUBREG:
          operands[4] = x6;
          x7 = XEXP (x2, 1);
          operands[3] = x7;
          switch (GET_MODE (operands[0]))
            {
            case V16SFmode:
              if (pattern497 (x2, V16SFmode, HImode) != 0
                  || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 2577; /* avx512f_scalefv16sf_mask */

            case V8SFmode:
              if (pattern497 (x2, V8SFmode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8115 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 2581; /* avx512vl_scalefv8sf_mask */

            case V4SFmode:
              if (pattern497 (x2, V4SFmode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8115 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 2585; /* avx512vl_scalefv4sf_mask */

            case V8DFmode:
              if (pattern497 (x2, V8DFmode, QImode) != 0
                  || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 2589; /* avx512f_scalefv8df_mask */

            case V4DFmode:
              if (pattern497 (x2, V4DFmode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8115 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 2593; /* avx512vl_scalefv4df_mask */

            case V2DFmode:
              if (pattern497 (x2, V2DFmode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8115 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 2597; /* avx512vl_scalefv2df_mask */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 161:
      x6 = XEXP (x2, 2);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x4 = XVECEXP (x3, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x3, 0, 1);
      operands[2] = x5;
      switch (pattern374 (x2))
        {
        case 0:
          if (!
#line 8184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2641; /* avx512f_sgetexpv4sf */

        case 1:
          if (!(
#line 8184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return -1;
          return 2643; /* avx512f_sgetexpv2df */

        default:
          return -1;
        }

    case 81:
      x6 = XEXP (x2, 2);
      switch (GET_CODE (x6))
        {
        case REG:
        case SUBREG:
          operands[4] = x6;
          x4 = XVECEXP (x3, 0, 0);
          operands[1] = x4;
          x5 = XVECEXP (x3, 0, 1);
          operands[2] = x5;
          if (!const_0_to_255_operand (operands[2], SImode))
            return -1;
          x7 = XEXP (x2, 1);
          operands[3] = x7;
          switch (GET_MODE (operands[0]))
            {
            case V16SFmode:
              if (pattern371 (x2, V16SFmode, HImode) != 0
                  || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 2707; /* avx512f_rndscalev16sf_mask */

            case V8SFmode:
              if (pattern371 (x2, V8SFmode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8334 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 2711; /* avx512vl_rndscalev8sf_mask */

            case V4SFmode:
              if (pattern371 (x2, V4SFmode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8334 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 2715; /* avx512vl_rndscalev4sf_mask */

            case V8DFmode:
              if (pattern371 (x2, V8DFmode, QImode) != 0
                  || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 2719; /* avx512f_rndscalev8df_mask */

            case V4DFmode:
              if (pattern371 (x2, V4DFmode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8334 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 2723; /* avx512vl_rndscalev4df_mask */

            case V2DFmode:
              if (pattern371 (x2, V2DFmode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8334 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 2727; /* avx512vl_rndscalev2df_mask */

            default:
              return -1;
            }

        case CONST_INT:
          if (XWINT (x6, 0) != 1LL)
            return -1;
          x4 = XVECEXP (x3, 0, 0);
          operands[2] = x4;
          x5 = XVECEXP (x3, 0, 1);
          operands[3] = x5;
          if (!const_0_to_15_operand (operands[3], SImode))
            return -1;
          x7 = XEXP (x2, 1);
          operands[1] = x7;
          switch (GET_MODE (operands[0]))
            {
            case V4SFmode:
              if (pattern558 (x2, V4SFmode) != 0
                  || !
#line 15314 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_ROUND))
                return -1;
              return 3963; /* sse4_1_roundss */

            case V2DFmode:
              if (pattern558 (x2, V2DFmode) != 0
                  || !(
#line 15314 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_ROUND) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
                return -1;
              return 3964; /* sse4_1_roundsd */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 185:
      x4 = XVECEXP (x3, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x3, 0, 1);
      operands[2] = x5;
      x7 = XEXP (x2, 1);
      operands[3] = x7;
      x6 = XEXP (x2, 2);
      operands[4] = x6;
      switch (GET_MODE (operands[0]))
        {
        case V16SImode:
          if (pattern493 (x2, V16SImode, V32HImode, HImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10174 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW && (64 == 64 || TARGET_AVX512VL)) && 
#line 328 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))))
            return -1;
          return 3113; /* avx512bw_pmaddwd512v32hi_mask */

        case V8SImode:
          if (pattern493 (x2, V8SImode, V16HImode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10174 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW && (32 == 64 || TARGET_AVX512VL)) && 
#line 328 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))))
            return -1;
          return 3115; /* avx512bw_pmaddwd512v16hi_mask */

        case V4SImode:
          if (pattern493 (x2, V4SImode, V8HImode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10174 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW && (16 == 64 || TARGET_AVX512VL))))
            return -1;
          return 3117; /* avx512bw_pmaddwd512v8hi_mask */

        default:
          return -1;
        }

    case 187:
      if (pattern215 (x2) != 0
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 12947 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
        return -1;
      return 3679; /* avx512bw_pshuflwv32hi_mask */

    case 186:
      if (pattern215 (x2) != 0
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 13123 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
        return -1;
      return 3685; /* avx512bw_pshufhwv32hi_mask */

    case 184:
      x4 = XVECEXP (x3, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x3, 0, 1);
      operands[2] = x5;
      x7 = XEXP (x2, 1);
      operands[3] = x7;
      x6 = XEXP (x2, 2);
      operands[4] = x6;
      switch (GET_MODE (operands[0]))
        {
        case V8HImode:
          if (pattern493 (x2, V8HImode, V16QImode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 14237 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 3767; /* avx512bw_pmaddubsw512v8hi_mask */

        case V16HImode:
          if (pattern493 (x2, V16HImode, V32QImode, HImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 14237 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 3769; /* avx512bw_pmaddubsw512v16hi_mask */

        case V32HImode:
          if (pattern493 (x2, V32HImode, V64QImode, SImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 14237 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return -1;
          return 3771; /* avx512bw_pmaddubsw512v32hi_mask */

        default:
          return -1;
        }

    case 108:
      x4 = XVECEXP (x3, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x3, 0, 1);
      operands[2] = x5;
      x7 = XEXP (x2, 1);
      operands[3] = x7;
      x6 = XEXP (x2, 2);
      operands[4] = x6;
      switch (GET_MODE (operands[0]))
        {
        case V64QImode:
          if (pattern213 (x2, DImode, V64QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 14451 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3 && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) && 
#line 325 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))))
            return -1;
          return 3784; /* avx512bw_pshufbv64qi3_mask */

        case V32QImode:
          if (pattern213 (x2, SImode, V32QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 14451 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3 && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) && 
#line 325 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))))
            return -1;
          return 3786; /* avx2_pshufbv32qi3_mask */

        case V16QImode:
          if (pattern213 (x2, HImode, V16QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 14451 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3 && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW)))
            return -1;
          return 3788; /* ssse3_pshufbv16qi3_mask */

        default:
          return -1;
        }

    case 144:
      x4 = XVECEXP (x3, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x3, 0, 1);
      operands[2] = x5;
      x7 = XEXP (x2, 1);
      operands[3] = x7;
      x6 = XEXP (x2, 2);
      operands[4] = x6;
      switch (GET_MODE (operands[0]))
        {
        case V8SImode:
          if (pattern494 (x2, QImode, V8SImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 17138 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && (32 == 64 || TARGET_AVX512VL))))
            return -1;
          return 4144; /* avx2_permvarv8si_mask */

        case V8SFmode:
          if (pattern495 (x2, V8SFmode, V8SImode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 17138 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && (32 == 64 || TARGET_AVX512VL))))
            return -1;
          return 4146; /* avx2_permvarv8sf_mask */

        case V16SImode:
          if (pattern494 (x2, HImode, V16SImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17138 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && (64 == 64 || TARGET_AVX512VL)) && 
#line 561 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 4148; /* avx512f_permvarv16si_mask */

        case V16SFmode:
          if (pattern495 (x2, V16SFmode, V16SImode, HImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17138 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && (64 == 64 || TARGET_AVX512VL)) && 
#line 561 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 4150; /* avx512f_permvarv16sf_mask */

        case V8DImode:
          if (pattern494 (x2, QImode, V8DImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17138 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && (64 == 64 || TARGET_AVX512VL)) && 
#line 562 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 4152; /* avx512f_permvarv8di_mask */

        case V8DFmode:
          if (pattern495 (x2, V8DFmode, V8DImode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17138 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && (64 == 64 || TARGET_AVX512VL)) && 
#line 562 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 4154; /* avx512f_permvarv8df_mask */

        case V4DImode:
          if (pattern494 (x2, QImode, V4DImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17138 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && (32 == 64 || TARGET_AVX512VL)) && 
#line 563 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 4156; /* avx2_permvarv4di_mask */

        case V4DFmode:
          if (pattern495 (x2, V4DFmode, V4DImode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17138 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && (32 == 64 || TARGET_AVX512VL)) && 
#line 563 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 4158; /* avx2_permvarv4df_mask */

        case V64QImode:
          if (pattern494 (x2, DImode, V64QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 17150 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VBMI && (64 == 64 || TARGET_AVX512VL))))
            return -1;
          return 4160; /* avx512bw_permvarv64qi_mask */

        case V16QImode:
          if (pattern494 (x2, HImode, V16QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17150 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VBMI && (16 == 64 || TARGET_AVX512VL)) && 
#line 186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 4162; /* avx512vl_permvarv16qi_mask */

        case V32QImode:
          if (pattern494 (x2, SImode, V32QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17150 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VBMI && (32 == 64 || TARGET_AVX512VL)) && 
#line 186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 4164; /* avx512vl_permvarv32qi_mask */

        case V8HImode:
          if (pattern494 (x2, QImode, V8HImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17162 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW && (16 == 64 || TARGET_AVX512VL)) && 
#line 350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 4166; /* avx512vl_permvarv8hi_mask */

        case V16HImode:
          if (pattern494 (x2, HImode, V16HImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17162 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW && (32 == 64 || TARGET_AVX512VL)) && 
#line 350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 4168; /* avx512vl_permvarv16hi_mask */

        case V32HImode:
          if (pattern494 (x2, SImode, V32HImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 17162 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW && (64 == 64 || TARGET_AVX512VL))))
            return -1;
          return 4170; /* avx512bw_permvarv32hi_mask */

        default:
          return -1;
        }

    case 137:
      x4 = XVECEXP (x3, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x3, 0, 1);
      operands[2] = x5;
      x7 = XEXP (x2, 1);
      operands[3] = x7;
      x6 = XEXP (x2, 2);
      operands[4] = x6;
      switch (GET_MODE (operands[0]))
        {
        case V16SFmode:
          if (pattern496 (x2, V16SFmode, V16SImode, HImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17728 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && (64 == 64 || TARGET_AVX512VL)) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 4336; /* avx512f_vpermilvarv16sf3_mask */

        case V8SFmode:
          if (pattern496 (x2, V8SFmode, V8SImode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17728 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && (32 == 64 || TARGET_AVX512VL)) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 4338; /* avx_vpermilvarv8sf3_mask */

        case V4SFmode:
          if (pattern496 (x2, V4SFmode, V4SImode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 17728 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && (16 == 64 || TARGET_AVX512VL))))
            return -1;
          return 4340; /* avx_vpermilvarv4sf3_mask */

        case V8DFmode:
          if (pattern496 (x2, V8DFmode, V8DImode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17728 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && (64 == 64 || TARGET_AVX512VL)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 4342; /* avx512f_vpermilvarv8df3_mask */

        case V4DFmode:
          if (pattern496 (x2, V4DFmode, V4DImode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17728 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && (32 == 64 || TARGET_AVX512VL)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 4344; /* avx_vpermilvarv4df3_mask */

        case V2DFmode:
          if (pattern496 (x2, V2DFmode, V2DImode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17728 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && (16 == 64 || TARGET_AVX512VL)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
            return -1;
          return 4346; /* avx_vpermilvarv2df3_mask */

        default:
          return -1;
        }

    case 143:
      x4 = XVECEXP (x3, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x3, 0, 1);
      operands[2] = x5;
      if (!const_0_to_255_operand (operands[2], SImode))
        return -1;
      x7 = XEXP (x2, 1);
      operands[3] = x7;
      x6 = XEXP (x2, 2);
      operands[4] = x6;
      switch (GET_MODE (operands[0]))
        {
        case V8HImode:
          if (pattern527 (x2, QImode, V8HImode, V8SFmode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 18628 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_F16C || TARGET_AVX512VL)))
            return -1;
          return 4586; /* vcvtps2ph256_mask */

        case V16HImode:
          if (pattern527 (x2, HImode, V16HImode, V16SFmode) != 0
              || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 4588; /* avx512f_vcvtps2ph512_mask */

        default:
          return -1;
        }

    case 162:
      x4 = XVECEXP (x3, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x3, 0, 1);
      operands[2] = x5;
      if (!const_0_to_15_operand (operands[2], SImode))
        return -1;
      switch (pattern372 (x2))
        {
        case 0:
          if (!
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 4877; /* avx512f_getmantv16sf_mask */

        case 1:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 19150 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 4881; /* avx512vl_getmantv8sf_mask */

        case 2:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 19150 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 4885; /* avx512vl_getmantv4sf_mask */

        case 3:
          if (!
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 4889; /* avx512f_getmantv8df_mask */

        case 4:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 19150 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 4893; /* avx512vl_getmantv4df_mask */

        case 5:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 19150 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 4897; /* avx512vl_getmantv2df_mask */

        default:
          return -1;
        }

    case 194:
      x4 = XVECEXP (x3, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x3, 0, 1);
      operands[2] = x5;
      x7 = XEXP (x2, 1);
      operands[3] = x7;
      x6 = XEXP (x2, 2);
      operands[4] = x6;
      switch (GET_MODE (operands[0]))
        {
        case V64QImode:
          if (pattern497 (x2, V64QImode, DImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 19399 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VBMI)))
            return -1;
          return 4965; /* vpmultishiftqbv64qi_mask */

        case V16QImode:
          if (pattern497 (x2, V16QImode, HImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 19399 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VBMI) && 
#line 186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 4967; /* vpmultishiftqbv16qi_mask */

        case V32QImode:
          if (pattern497 (x2, V32QImode, SImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 19399 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VBMI) && 
#line 186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 4969; /* vpmultishiftqbv32qi_mask */

        default:
          return -1;
        }

    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, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 2);
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
    case MEM:
      operands[3] = x4;
      switch (pattern278 (x2))
        {
        case 0:
          x5 = XEXP (x3, 0);
          x6 = XEXP (x5, 0);
          operands[1] = x6;
          x7 = XEXP (x3, 1);
          operands[2] = x7;
          x8 = XEXP (x2, 2);
          switch (pattern377 (x8))
            {
            case 0:
              if (pattern630 (x2, V16SFmode, HImode) != 0
                  || !
#line 3756 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && 1))
                return -1;
              return 1928; /* fma_fnmadd_v16sf_maskz_1 */

            case 1:
              if (pattern630 (x2, V8SFmode, QImode) != 0
                  || !(
#line 3756 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (32 == 64 || TARGET_AVX512VL) && 1) && 
#line 3615 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 1931; /* fma_fnmadd_v8sf_maskz_1 */

            case 2:
              if (pattern630 (x2, V4SFmode, QImode) != 0
                  || !(
#line 3756 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (16 == 64 || TARGET_AVX512VL) && 1) && 
#line 3615 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 1933; /* fma_fnmadd_v4sf_maskz_1 */

            case 3:
              if (pattern630 (x2, V8DFmode, QImode) != 0
                  || !
#line 3756 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && 1))
                return -1;
              return 1937; /* fma_fnmadd_v8df_maskz_1 */

            case 4:
              if (pattern630 (x2, V4DFmode, QImode) != 0
                  || !(
#line 3756 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (32 == 64 || TARGET_AVX512VL) && 1) && 
#line 3616 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 1940; /* fma_fnmadd_v4df_maskz_1 */

            case 5:
              if (pattern630 (x2, V2DFmode, QImode) != 0
                  || !(
#line 3756 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (16 == 64 || TARGET_AVX512VL) && 1) && 
#line 3616 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 1942; /* fma_fnmadd_v2df_maskz_1 */

            case 6:
              if (pattern631 (x2, V4SFmode) != 0
                  || !
#line 4177 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA4))
                return -1;
              return 2129; /* *fma4i_vmfnmadd_v4sf */

            case 7:
              if (pattern631 (x2, V2DFmode) != 0
                  || !(
#line 4177 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA4) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
                return -1;
              return 2130; /* *fma4i_vmfnmadd_v2df */

            default:
              return -1;
            }

        case 1:
          if (pattern567 (x2, V16SFmode, HImode) != 0)
            return -1;
          if (nonimmediate_operand (operands[3], V16SFmode))
            {
              x9 = XEXP (x2, 1);
              if (rtx_equal_p (x9, operands[1])
                  && 
#line 3774 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1))
                return 1943; /* avx512f_fnmadd_v16sf_mask */
            }
          if (!register_operand (operands[3], V16SFmode))
            return -1;
          x9 = XEXP (x2, 1);
          if (!rtx_equal_p (x9, operands[3])
              || !
#line 3792 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1))
            return -1;
          return 1951; /* avx512f_fnmadd_v16sf_mask3 */

        case 2:
          if (pattern567 (x2, V8SFmode, QImode) != 0)
            return -1;
          if (nonimmediate_operand (operands[3], V8SFmode))
            {
              x9 = XEXP (x2, 1);
              if (rtx_equal_p (x9, operands[1])
                  && (
#line 3774 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 1945; /* avx512vl_fnmadd_v8sf_mask */
            }
          if (!register_operand (operands[3], V8SFmode))
            return -1;
          x9 = XEXP (x2, 1);
          if (!rtx_equal_p (x9, operands[3])
              || !(
#line 3792 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1953; /* avx512vl_fnmadd_v8sf_mask3 */

        case 3:
          if (pattern567 (x2, V4SFmode, QImode) != 0)
            return -1;
          if (nonimmediate_operand (operands[3], V4SFmode))
            {
              x9 = XEXP (x2, 1);
              if (rtx_equal_p (x9, operands[1])
                  && (
#line 3774 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 1946; /* avx512vl_fnmadd_v4sf_mask */
            }
          if (!register_operand (operands[3], V4SFmode))
            return -1;
          x9 = XEXP (x2, 1);
          if (!rtx_equal_p (x9, operands[3])
              || !(
#line 3792 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1954; /* avx512vl_fnmadd_v4sf_mask3 */

        case 4:
          if (pattern567 (x2, V8DFmode, QImode) != 0)
            return -1;
          if (nonimmediate_operand (operands[3], V8DFmode))
            {
              x9 = XEXP (x2, 1);
              if (rtx_equal_p (x9, operands[1])
                  && 
#line 3774 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1))
                return 1947; /* avx512f_fnmadd_v8df_mask */
            }
          if (!register_operand (operands[3], V8DFmode))
            return -1;
          x9 = XEXP (x2, 1);
          if (!rtx_equal_p (x9, operands[3])
              || !
#line 3792 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1))
            return -1;
          return 1955; /* avx512f_fnmadd_v8df_mask3 */

        case 5:
          if (pattern567 (x2, V4DFmode, QImode) != 0)
            return -1;
          if (nonimmediate_operand (operands[3], V4DFmode))
            {
              x9 = XEXP (x2, 1);
              if (rtx_equal_p (x9, operands[1])
                  && (
#line 3774 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 1949; /* avx512vl_fnmadd_v4df_mask */
            }
          if (!register_operand (operands[3], V4DFmode))
            return -1;
          x9 = XEXP (x2, 1);
          if (!rtx_equal_p (x9, operands[3])
              || !(
#line 3792 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1957; /* avx512vl_fnmadd_v4df_mask3 */

        case 6:
          if (pattern567 (x2, V2DFmode, QImode) != 0)
            return -1;
          if (nonimmediate_operand (operands[3], V2DFmode))
            {
              x9 = XEXP (x2, 1);
              if (rtx_equal_p (x9, operands[1])
                  && (
#line 3774 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 1950; /* avx512vl_fnmadd_v2df_mask */
            }
          if (!register_operand (operands[3], V2DFmode))
            return -1;
          x9 = XEXP (x2, 1);
          if (!rtx_equal_p (x9, operands[3])
              || !(
#line 3792 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1958; /* avx512vl_fnmadd_v2df_mask3 */

        case 7:
          if (pattern632 (x2, V4SFmode) != 0
              || !
#line 4098 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_AVX512F))
            return -1;
          return 2117; /* *fmai_fnmadd_v4sf */

        case 8:
          if (pattern632 (x2, V2DFmode) != 0
              || !(
#line 4098 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_AVX512F) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return -1;
          return 2119; /* *fmai_fnmadd_v2df */

        default:
          return -1;
        }

    case NEG:
      x10 = XEXP (x4, 0);
      operands[3] = x10;
      switch (pattern278 (x2))
        {
        case 0:
          x5 = XEXP (x3, 0);
          x6 = XEXP (x5, 0);
          operands[1] = x6;
          x7 = XEXP (x3, 1);
          operands[2] = x7;
          x8 = XEXP (x2, 2);
          switch (GET_CODE (x8))
            {
            case REG:
            case SUBREG:
              operands[5] = x8;
              switch (GET_MODE (operands[0]))
                {
                case V4SFmode:
                  if (pattern633 (x2, V4SFmode) != 0)
                    return -1;
                  if (nonimmediate_operand (operands[1], V4SFmode)
                      && nonimmediate_operand (operands[2], V4SFmode)
                      && nonimmediate_operand (operands[3], V4SFmode)
                      && 
#line 3806 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4))
                    return 1965; /* *fma_fnmsub_v4sf */
                  if (!vector_operand (operands[1], V4SFmode)
                      || !vector_operand (operands[2], V4SFmode)
                      || !vector_operand (operands[3], V4SFmode)
                      || !(
#line 3825 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (16 == 64 || TARGET_AVX512VL) && 1) && 
#line 3615 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                    return -1;
                  return 1987; /* fma_fnmsub_v4sf_maskz_1 */

                case V2DFmode:
                  if (pattern633 (x2, V2DFmode) != 0)
                    return -1;
                  if (nonimmediate_operand (operands[1], V2DFmode)
                      && nonimmediate_operand (operands[2], V2DFmode)
                      && nonimmediate_operand (operands[3], V2DFmode)
                      && 
#line 3806 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4))
                    return 1969; /* *fma_fnmsub_v2df */
                  if (!vector_operand (operands[1], V2DFmode)
                      || !vector_operand (operands[2], V2DFmode)
                      || !vector_operand (operands[3], V2DFmode)
                      || !(
#line 3825 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (16 == 64 || TARGET_AVX512VL) && 1) && 
#line 3616 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                    return -1;
                  return 1996; /* fma_fnmsub_v2df_maskz_1 */

                case V8SFmode:
                  if (pattern633 (x2, V8SFmode) != 0)
                    return -1;
                  if (nonimmediate_operand (operands[1], V8SFmode)
                      && nonimmediate_operand (operands[2], V8SFmode)
                      && nonimmediate_operand (operands[3], V8SFmode)
                      && 
#line 3806 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4))
                    return 1973; /* *fma_fnmsub_v8sf */
                  if (!vector_operand (operands[1], V8SFmode)
                      || !vector_operand (operands[2], V8SFmode)
                      || !vector_operand (operands[3], V8SFmode)
                      || !(
#line 3825 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (32 == 64 || TARGET_AVX512VL) && 1) && 
#line 3615 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                    return -1;
                  return 1985; /* fma_fnmsub_v8sf_maskz_1 */

                case V4DFmode:
                  if (pattern633 (x2, V4DFmode) != 0)
                    return -1;
                  if (nonimmediate_operand (operands[1], V4DFmode)
                      && nonimmediate_operand (operands[2], V4DFmode)
                      && nonimmediate_operand (operands[3], V4DFmode)
                      && 
#line 3806 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4))
                    return 1977; /* *fma_fnmsub_v4df */
                  if (!vector_operand (operands[1], V4DFmode)
                      || !vector_operand (operands[2], V4DFmode)
                      || !vector_operand (operands[3], V4DFmode)
                      || !(
#line 3825 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (32 == 64 || TARGET_AVX512VL) && 1) && 
#line 3616 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                    return -1;
                  return 1994; /* fma_fnmsub_v4df_maskz_1 */

                case V16SFmode:
                  if (pattern634 (x2, HImode, V16SFmode) != 0
                      || !
#line 3825 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && 1))
                    return -1;
                  return 1982; /* fma_fnmsub_v16sf_maskz_1 */

                case V8DFmode:
                  if (pattern634 (x2, QImode, V8DFmode) != 0
                      || !
#line 3825 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && 1))
                    return -1;
                  return 1991; /* fma_fnmsub_v8df_maskz_1 */

                default:
                  return -1;
                }

            case CONST_INT:
              if (XWINT (x8, 0) != 1LL)
                return -1;
              switch (GET_MODE (operands[0]))
                {
                case V4SFmode:
                  if (pattern635 (x2, V4SFmode) != 0
                      || !
#line 4193 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA4))
                    return -1;
                  return 2131; /* *fma4i_vmfnmsub_v4sf */

                case V2DFmode:
                  if (pattern635 (x2, V2DFmode) != 0
                      || !(
#line 4193 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA4) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
                    return -1;
                  return 2132; /* *fma4i_vmfnmsub_v2df */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case 1:
          if (pattern568 (x2, V16SFmode, HImode) != 0)
            return -1;
          if (nonimmediate_operand (operands[3], V16SFmode))
            {
              x9 = XEXP (x2, 1);
              if (rtx_equal_p (x9, operands[1])
                  && 
#line 3844 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1))
                return 1997; /* avx512f_fnmsub_v16sf_mask */
            }
          if (!register_operand (operands[3], V16SFmode))
            return -1;
          x9 = XEXP (x2, 1);
          if (!rtx_equal_p (x9, operands[3])
              || !
#line 3863 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2005; /* avx512f_fnmsub_v16sf_mask3 */

        case 2:
          if (pattern568 (x2, V8SFmode, QImode) != 0)
            return -1;
          if (nonimmediate_operand (operands[3], V8SFmode))
            {
              x9 = XEXP (x2, 1);
              if (rtx_equal_p (x9, operands[1])
                  && (
#line 3844 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 1999; /* avx512vl_fnmsub_v8sf_mask */
            }
          if (!register_operand (operands[3], V8SFmode))
            return -1;
          x9 = XEXP (x2, 1);
          if (!rtx_equal_p (x9, operands[3])
              || !(
#line 3863 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 2007; /* avx512vl_fnmsub_v8sf_mask3 */

        case 3:
          if (pattern568 (x2, V4SFmode, QImode) != 0)
            return -1;
          if (nonimmediate_operand (operands[3], V4SFmode))
            {
              x9 = XEXP (x2, 1);
              if (rtx_equal_p (x9, operands[1])
                  && (
#line 3844 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 2000; /* avx512vl_fnmsub_v4sf_mask */
            }
          if (!register_operand (operands[3], V4SFmode))
            return -1;
          x9 = XEXP (x2, 1);
          if (!rtx_equal_p (x9, operands[3])
              || !(
#line 3863 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 2009; /* avx512vl_fnmsub_v4sf_mask3 */

        case 4:
          if (pattern568 (x2, V8DFmode, QImode) != 0)
            return -1;
          if (nonimmediate_operand (operands[3], V8DFmode))
            {
              x9 = XEXP (x2, 1);
              if (rtx_equal_p (x9, operands[1])
                  && 
#line 3844 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1))
                return 2001; /* avx512f_fnmsub_v8df_mask */
            }
          if (!register_operand (operands[3], V8DFmode))
            return -1;
          x9 = XEXP (x2, 1);
          if (!rtx_equal_p (x9, operands[3])
              || !
#line 3863 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2011; /* avx512f_fnmsub_v8df_mask3 */

        case 5:
          if (pattern568 (x2, V4DFmode, QImode) != 0)
            return -1;
          if (nonimmediate_operand (operands[3], V4DFmode))
            {
              x9 = XEXP (x2, 1);
              if (rtx_equal_p (x9, operands[1])
                  && (
#line 3844 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 2003; /* avx512vl_fnmsub_v4df_mask */
            }
          if (!register_operand (operands[3], V4DFmode))
            return -1;
          x9 = XEXP (x2, 1);
          if (!rtx_equal_p (x9, operands[3])
              || !(
#line 3863 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 2013; /* avx512vl_fnmsub_v4df_mask3 */

        case 6:
          if (pattern568 (x2, V2DFmode, QImode) != 0)
            return -1;
          if (nonimmediate_operand (operands[3], V2DFmode))
            {
              x9 = XEXP (x2, 1);
              if (rtx_equal_p (x9, operands[1])
                  && (
#line 3844 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 2004; /* avx512vl_fnmsub_v2df_mask */
            }
          if (!register_operand (operands[3], V2DFmode))
            return -1;
          x9 = XEXP (x2, 1);
          if (!rtx_equal_p (x9, operands[3])
              || !(
#line 3863 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 2015; /* avx512vl_fnmsub_v2df_mask3 */

        case 7:
          if (pattern636 (x2, V4SFmode) != 0
              || !
#line 4116 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_AVX512F))
            return -1;
          return 2121; /* *fmai_fnmsub_v4sf */

        case 8:
          if (pattern636 (x2, V2DFmode) != 0
              || !(
#line 4116 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_AVX512F) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return -1;
          return 2123; /* *fmai_fnmsub_v2df */

        default:
          return -1;
        }

    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, 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, 1);
  if (pattern455 (x4) != 0)
    return -1;
  x5 = XVECEXP (x4, 0, 8);
  if (GET_CODE (x5) != CONST_INT)
    return -1;
  x6 = XVECEXP (x4, 0, 9);
  if (GET_CODE (x6) != CONST_INT)
    return -1;
  x7 = XVECEXP (x4, 0, 10);
  if (GET_CODE (x7) != CONST_INT)
    return -1;
  x8 = XVECEXP (x4, 0, 11);
  if (GET_CODE (x8) != CONST_INT)
    return -1;
  x9 = XVECEXP (x4, 0, 12);
  if (GET_CODE (x9) != CONST_INT)
    return -1;
  x10 = XVECEXP (x4, 0, 13);
  if (GET_CODE (x10) != CONST_INT)
    return -1;
  x11 = XVECEXP (x4, 0, 14);
  if (GET_CODE (x11) != CONST_INT)
    return -1;
  x12 = XVECEXP (x4, 0, 15);
  if (GET_CODE (x12) != CONST_INT)
    return -1;
  x13 = XEXP (x2, 2);
  if (!register_operand (x13, HImode))
    return -1;
  x14 = XVECEXP (x4, 0, 0);
  switch (XWINT (x14, 0))
    {
    case 2LL:
      x15 = XVECEXP (x4, 0, 1);
      if (XWINT (x15, 0) != 18LL)
        return -1;
      x16 = XVECEXP (x4, 0, 2);
      if (XWINT (x16, 0) != 3LL)
        return -1;
      x17 = XVECEXP (x4, 0, 3);
      if (XWINT (x17, 0) != 19LL
          || pattern921 (x4) != 0
          || XWINT (x5, 0) != 10LL
          || XWINT (x6, 0) != 26LL
          || XWINT (x7, 0) != 11LL
          || XWINT (x8, 0) != 27LL
          || pattern938 (x4) != 0)
        return -1;
      x18 = XEXP (x3, 0);
      x19 = XEXP (x18, 1);
      operands[2] = x19;
      x20 = XEXP (x2, 1);
      operands[3] = x20;
      operands[4] = x13;
      switch (GET_MODE (operands[0]))
        {
        case V16SFmode:
          if (pattern724 (x2, V16SFmode, V32SFmode) != 0
              || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 2449; /* avx512f_unpckhps512_mask */

        case V16SImode:
          if (pattern724 (x2, V16SImode, V32SImode) != 0
              || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 3619; /* avx512f_interleave_highv16si_mask */

        default:
          return -1;
        }

    case 0LL:
      x15 = XVECEXP (x4, 0, 1);
      switch (XWINT (x15, 0))
        {
        case 16LL:
          x16 = XVECEXP (x4, 0, 2);
          if (XWINT (x16, 0) != 1LL)
            return -1;
          x17 = XVECEXP (x4, 0, 3);
          if (XWINT (x17, 0) != 17LL)
            return -1;
          x18 = XEXP (x3, 0);
          x19 = XEXP (x18, 1);
          operands[2] = x19;
          x20 = XEXP (x2, 1);
          operands[3] = x20;
          operands[4] = x13;
          x21 = XVECEXP (x4, 0, 4);
          switch (XWINT (x21, 0))
            {
            case 4LL:
              x22 = XVECEXP (x4, 0, 5);
              if (XWINT (x22, 0) != 20LL)
                return -1;
              x23 = XVECEXP (x4, 0, 6);
              if (XWINT (x23, 0) != 5LL)
                return -1;
              x24 = XVECEXP (x4, 0, 7);
              if (XWINT (x24, 0) != 21LL
                  || XWINT (x5, 0) != 8LL
                  || XWINT (x6, 0) != 24LL
                  || XWINT (x7, 0) != 9LL
                  || XWINT (x8, 0) != 25LL
                  || XWINT (x9, 0) != 12LL
                  || XWINT (x10, 0) != 28LL
                  || XWINT (x11, 0) != 13LL
                  || XWINT (x12, 0) != 29LL)
                return -1;
              switch (GET_MODE (operands[0]))
                {
                case V16SFmode:
                  if (pattern724 (x2, V16SFmode, V32SFmode) != 0
                      || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                    return -1;
                  return 2455; /* avx512f_unpcklps512_mask */

                case V16SImode:
                  if (pattern724 (x2, V16SImode, V32SImode) != 0
                      || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                    return -1;
                  return 3625; /* avx512f_interleave_lowv16si_mask */

                default:
                  return -1;
                }

            case 2LL:
              x22 = XVECEXP (x4, 0, 5);
              if (XWINT (x22, 0) != 18LL)
                return -1;
              x23 = XVECEXP (x4, 0, 6);
              if (XWINT (x23, 0) != 3LL)
                return -1;
              x24 = XVECEXP (x4, 0, 7);
              if (XWINT (x24, 0) != 19LL)
                return -1;
              switch (XWINT (x5, 0))
                {
                case 4LL:
                  if (XWINT (x6, 0) != 20LL
                      || XWINT (x7, 0) != 5LL
                      || XWINT (x8, 0) != 21LL
                      || XWINT (x9, 0) != 6LL
                      || XWINT (x10, 0) != 22LL
                      || XWINT (x11, 0) != 7LL
                      || XWINT (x12, 0) != 23LL
                      || pattern725 (x2, V16QImode, V32QImode) != 0
                      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 11994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && TARGET_AVX512VL && TARGET_AVX512BW)))
                    return -1;
                  return 3603; /* vec_interleave_lowv16qi_mask */

                case 8LL:
                  if (XWINT (x6, 0) != 24LL
                      || XWINT (x7, 0) != 9LL
                      || XWINT (x8, 0) != 25LL
                      || XWINT (x9, 0) != 10LL
                      || XWINT (x10, 0) != 26LL
                      || XWINT (x11, 0) != 11LL
                      || XWINT (x12, 0) != 27LL
                      || pattern724 (x2, V16HImode, V32HImode) != 0
                      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 12114 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && TARGET_AVX512VL && TARGET_AVX512BW)))
                    return -1;
                  return 3613; /* avx2_interleave_lowv16hi_mask */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case 0LL:
          if (pattern772 (x4) != 0
              || XWINT (x5, 0) != 8LL
              || XWINT (x6, 0) != 8LL
              || XWINT (x7, 0) != 10LL
              || XWINT (x8, 0) != 10LL
              || XWINT (x9, 0) != 12LL
              || XWINT (x10, 0) != 12LL
              || XWINT (x11, 0) != 14LL
              || XWINT (x12, 0) != 14LL
              || pattern893 (x2, V16SFmode, V32SFmode) != 0
              || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 2471; /* avx512f_movsldup512_mask */

        default:
          return -1;
        }

    case 1LL:
      x15 = XVECEXP (x4, 0, 1);
      if (XWINT (x15, 0) != 1LL)
        return -1;
      x16 = XVECEXP (x4, 0, 2);
      if (XWINT (x16, 0) != 3LL)
        return -1;
      x17 = XVECEXP (x4, 0, 3);
      if (XWINT (x17, 0) != 3LL)
        return -1;
      x21 = XVECEXP (x4, 0, 4);
      if (XWINT (x21, 0) != 5LL)
        return -1;
      x22 = XVECEXP (x4, 0, 5);
      if (XWINT (x22, 0) != 5LL)
        return -1;
      x23 = XVECEXP (x4, 0, 6);
      if (XWINT (x23, 0) != 7LL)
        return -1;
      x24 = XVECEXP (x4, 0, 7);
      if (XWINT (x24, 0) != 7LL
          || XWINT (x5, 0) != 9LL
          || XWINT (x6, 0) != 9LL
          || XWINT (x7, 0) != 11LL
          || XWINT (x8, 0) != 11LL
          || XWINT (x9, 0) != 13LL
          || XWINT (x10, 0) != 13LL
          || XWINT (x11, 0) != 15LL
          || XWINT (x12, 0) != 15LL
          || pattern893 (x2, V16SFmode, V32SFmode) != 0
          || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
        return -1;
      return 2465; /* avx512f_movshdup512_mask */

    case 8LL:
      x15 = XVECEXP (x4, 0, 1);
      if (XWINT (x15, 0) != 24LL)
        return -1;
      x16 = XVECEXP (x4, 0, 2);
      if (XWINT (x16, 0) != 9LL)
        return -1;
      x17 = XVECEXP (x4, 0, 3);
      if (XWINT (x17, 0) != 25LL)
        return -1;
      x21 = XVECEXP (x4, 0, 4);
      if (XWINT (x21, 0) != 10LL)
        return -1;
      x22 = XVECEXP (x4, 0, 5);
      if (XWINT (x22, 0) != 26LL)
        return -1;
      x23 = XVECEXP (x4, 0, 6);
      if (XWINT (x23, 0) != 11LL)
        return -1;
      x24 = XVECEXP (x4, 0, 7);
      if (XWINT (x24, 0) != 27LL
          || pattern939 (x4) != 0
          || pattern894 (x2, V16QImode, V32QImode) != 0
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 11898 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && TARGET_AVX512VL)))
        return -1;
      return 3597; /* vec_interleave_highv16qi_mask */

    case 4LL:
      x15 = XVECEXP (x4, 0, 1);
      if (XWINT (x15, 0) != 20LL)
        return -1;
      x16 = XVECEXP (x4, 0, 2);
      if (XWINT (x16, 0) != 5LL)
        return -1;
      x17 = XVECEXP (x4, 0, 3);
      if (XWINT (x17, 0) != 21LL
          || pattern921 (x4) != 0
          || pattern939 (x4) != 0
          || pattern503 (x2, V16HImode, V32HImode) != 0)
        return -1;
      x20 = XEXP (x2, 1);
      operands[3] = x20;
      if (!vector_move_operand (operands[3], V16HImode))
        return -1;
      operands[4] = x13;
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 12046 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && TARGET_AVX512VL && TARGET_AVX512BW)))
        return -1;
      return 3607; /* avx2_interleave_highv16hi_mask */

    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];
  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 = XEXP (x2, 0);
  x4 = XEXP (x3, 1);
  if (pattern455 (x4) != 0)
    return -1;
  x5 = XEXP (x2, 2);
  if (!register_operand (x5, QImode))
    return -1;
  x6 = XVECEXP (x4, 0, 0);
  switch (XWINT (x6, 0))
    {
    case 2LL:
      x7 = XVECEXP (x4, 0, 1);
      if (XWINT (x7, 0) != 10LL)
        return -1;
      x8 = XVECEXP (x4, 0, 2);
      if (XWINT (x8, 0) != 3LL)
        return -1;
      x9 = XVECEXP (x4, 0, 3);
      if (XWINT (x9, 0) != 11LL)
        return -1;
      x10 = XVECEXP (x4, 0, 4);
      if (XWINT (x10, 0) != 6LL)
        return -1;
      x11 = XVECEXP (x4, 0, 5);
      if (XWINT (x11, 0) != 14LL)
        return -1;
      x12 = XVECEXP (x4, 0, 6);
      if (XWINT (x12, 0) != 7LL)
        return -1;
      x13 = XVECEXP (x4, 0, 7);
      if (XWINT (x13, 0) != 15LL)
        return -1;
      x14 = XEXP (x3, 0);
      x15 = XEXP (x14, 1);
      operands[2] = x15;
      x16 = XEXP (x2, 1);
      operands[3] = x16;
      operands[4] = x5;
      switch (GET_MODE (operands[0]))
        {
        case V8SFmode:
          if (pattern724 (x2, V8SFmode, V16SFmode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 6183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && TARGET_AVX512VL)))
            return -1;
          return 2451; /* avx_unpckhps256_mask */

        case V8SImode:
          if (pattern724 (x2, V8SImode, V16SImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 12150 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && TARGET_AVX512VL)))
            return -1;
          return 3617; /* avx2_interleave_highv8si_mask */

        default:
          return -1;
        }

    case 0LL:
      x7 = XVECEXP (x4, 0, 1);
      switch (XWINT (x7, 0))
        {
        case 8LL:
          x14 = XEXP (x3, 0);
          x15 = XEXP (x14, 1);
          operands[2] = x15;
          x16 = XEXP (x2, 1);
          operands[3] = x16;
          operands[4] = x5;
          x8 = XVECEXP (x4, 0, 2);
          switch (XWINT (x8, 0))
            {
            case 1LL:
              x9 = XVECEXP (x4, 0, 3);
              if (XWINT (x9, 0) != 9LL)
                return -1;
              x10 = XVECEXP (x4, 0, 4);
              switch (XWINT (x10, 0))
                {
                case 4LL:
                  x11 = XVECEXP (x4, 0, 5);
                  if (XWINT (x11, 0) != 12LL)
                    return -1;
                  x12 = XVECEXP (x4, 0, 6);
                  if (XWINT (x12, 0) != 5LL)
                    return -1;
                  x13 = XVECEXP (x4, 0, 7);
                  if (XWINT (x13, 0) != 13LL)
                    return -1;
                  switch (GET_MODE (operands[0]))
                    {
                    case V8SFmode:
                      if (pattern724 (x2, V8SFmode, V16SFmode) != 0
                          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 6271 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && TARGET_AVX512VL)))
                        return -1;
                      return 2457; /* avx_unpcklps256_mask */

                    case V8SImode:
                      if (pattern724 (x2, V8SImode, V16SImode) != 0
                          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 12205 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && TARGET_AVX512VL)))
                        return -1;
                      return 3623; /* avx2_interleave_lowv8si_mask */

                    default:
                      return -1;
                    }

                case 2LL:
                  x11 = XVECEXP (x4, 0, 5);
                  if (XWINT (x11, 0) != 10LL)
                    return -1;
                  x12 = XVECEXP (x4, 0, 6);
                  if (XWINT (x12, 0) != 3LL)
                    return -1;
                  x13 = XVECEXP (x4, 0, 7);
                  if (XWINT (x13, 0) != 11LL
                      || pattern725 (x2, V8HImode, V16HImode) != 0
                      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 12130 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && TARGET_AVX512VL && TARGET_AVX512BW)))
                    return -1;
                  return 3615; /* vec_interleave_lowv8hi_mask */

                default:
                  return -1;
                }

            case 2LL:
              x9 = XVECEXP (x4, 0, 3);
              if (XWINT (x9, 0) != 10LL)
                return -1;
              x10 = XVECEXP (x4, 0, 4);
              if (XWINT (x10, 0) != 4LL)
                return -1;
              x11 = XVECEXP (x4, 0, 5);
              if (XWINT (x11, 0) != 12LL)
                return -1;
              x12 = XVECEXP (x4, 0, 6);
              if (XWINT (x12, 0) != 6LL)
                return -1;
              x13 = XVECEXP (x4, 0, 7);
              if (XWINT (x13, 0) != 14LL)
                return -1;
              switch (GET_MODE (operands[0]))
                {
                case V8DFmode:
                  if (pattern828 (x2, V8DFmode, V16DFmode) != 0
                      || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                    return -1;
                  return 2566; /* *avx512f_unpcklpd512_mask */

                case V8DImode:
                  if (pattern724 (x2, V8DImode, V16DImode) != 0
                      || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                    return -1;
                  return 2749; /* avx512f_interleave_lowv8di_mask */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case 0LL:
          if (pattern772 (x4) != 0
              || pattern893 (x2, V8SFmode, V16SFmode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 6410 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && TARGET_AVX512VL)))
            return -1;
          return 2467; /* avx_movsldup256_mask */

        default:
          return -1;
        }

    case 1LL:
      x8 = XVECEXP (x4, 0, 2);
      if (XWINT (x8, 0) != 3LL)
        return -1;
      x10 = XVECEXP (x4, 0, 4);
      if (XWINT (x10, 0) != 5LL)
        return -1;
      x12 = XVECEXP (x4, 0, 6);
      if (XWINT (x12, 0) != 7LL)
        return -1;
      x7 = XVECEXP (x4, 0, 1);
      switch (XWINT (x7, 0))
        {
        case 1LL:
          x9 = XVECEXP (x4, 0, 3);
          if (XWINT (x9, 0) != 3LL)
            return -1;
          x11 = XVECEXP (x4, 0, 5);
          if (XWINT (x11, 0) != 5LL)
            return -1;
          x13 = XVECEXP (x4, 0, 7);
          if (XWINT (x13, 0) != 7LL
              || pattern893 (x2, V8SFmode, V16SFmode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 6357 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && TARGET_AVX512VL)))
            return -1;
          return 2461; /* avx_movshdup256_mask */

        case 9LL:
          x9 = XVECEXP (x4, 0, 3);
          if (XWINT (x9, 0) != 11LL)
            return -1;
          x11 = XVECEXP (x4, 0, 5);
          if (XWINT (x11, 0) != 13LL)
            return -1;
          x13 = XVECEXP (x4, 0, 7);
          if (XWINT (x13, 0) != 15LL)
            return -1;
          x14 = XEXP (x3, 0);
          x15 = XEXP (x14, 1);
          operands[2] = x15;
          x16 = XEXP (x2, 1);
          operands[3] = x16;
          operands[4] = x5;
          switch (GET_MODE (operands[0]))
            {
            case V8DFmode:
              if (pattern724 (x2, V8DFmode, V16DFmode) != 0
                  || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 2560; /* avx512f_unpckhpd512_mask */

            case V8DImode:
              if (pattern724 (x2, V8DImode, V16DImode) != 0
                  || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 2743; /* avx512f_interleave_highv8di_mask */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 4LL:
      x7 = XVECEXP (x4, 0, 1);
      if (XWINT (x7, 0) != 12LL)
        return -1;
      x8 = XVECEXP (x4, 0, 2);
      if (XWINT (x8, 0) != 5LL)
        return -1;
      x9 = XVECEXP (x4, 0, 3);
      if (XWINT (x9, 0) != 13LL)
        return -1;
      x10 = XVECEXP (x4, 0, 4);
      if (XWINT (x10, 0) != 6LL)
        return -1;
      x11 = XVECEXP (x4, 0, 5);
      if (XWINT (x11, 0) != 14LL)
        return -1;
      x12 = XVECEXP (x4, 0, 6);
      if (XWINT (x12, 0) != 7LL)
        return -1;
      x13 = XVECEXP (x4, 0, 7);
      if (XWINT (x13, 0) != 15LL
          || pattern894 (x2, V8HImode, V16HImode) != 0
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 12062 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && TARGET_AVX512VL && TARGET_AVX512BW)))
        return -1;
      return 3609; /* vec_interleave_highv8hi_mask */

    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];
  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);
  x5 = XVECEXP (x4, 0, 2);
  if (GET_CODE (x5) != CONST_INT)
    return -1;
  x6 = XVECEXP (x4, 0, 3);
  if (GET_CODE (x6) != CONST_INT)
    return -1;
  x7 = XEXP (x2, 2);
  if (!register_operand (x7, QImode))
    return -1;
  x8 = XVECEXP (x4, 0, 0);
  switch (XWINT (x8, 0))
    {
    case 2LL:
      x9 = XVECEXP (x4, 0, 1);
      if (XWINT (x9, 0) != 6LL
          || XWINT (x5, 0) != 3LL
          || XWINT (x6, 0) != 7LL)
        return -1;
      x10 = XEXP (x3, 0);
      x11 = XEXP (x10, 1);
      operands[2] = x11;
      x12 = XEXP (x2, 1);
      operands[3] = x12;
      operands[4] = x7;
      switch (GET_MODE (operands[0]))
        {
        case V4SFmode:
          if (pattern725 (x2, V4SFmode, V8SFmode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 6231 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && TARGET_AVX512VL)))
            return -1;
          return 2453; /* vec_interleave_highv4sf_mask */

        case V4SImode:
          if (pattern725 (x2, V4SImode, V8SImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 12185 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && TARGET_AVX512VL)))
            return -1;
          return 3621; /* vec_interleave_highv4si_mask */

        default:
          return -1;
        }

    case 0LL:
      x9 = XVECEXP (x4, 0, 1);
      switch (XWINT (x9, 0))
        {
        case 4LL:
          x10 = XEXP (x3, 0);
          x11 = XEXP (x10, 1);
          operands[2] = x11;
          x12 = XEXP (x2, 1);
          operands[3] = x12;
          operands[4] = x7;
          switch (XWINT (x5, 0))
            {
            case 1LL:
              if (XWINT (x6, 0) != 5LL)
                return -1;
              switch (GET_MODE (operands[0]))
                {
                case V4SFmode:
                  if (pattern724 (x2, V4SFmode, V8SFmode) != 0
                      || !
#line 6288 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                    return -1;
                  return 2458; /* unpcklps128_mask */

                case V4SImode:
                  if (pattern725 (x2, V4SImode, V8SImode) != 0
                      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 12239 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && TARGET_AVX512VL)))
                    return -1;
                  return 3627; /* vec_interleave_lowv4si_mask */

                default:
                  return -1;
                }

            case 2LL:
              if (XWINT (x6, 0) != 6LL)
                return -1;
              switch (GET_MODE (operands[0]))
                {
                case V4DFmode:
                  if (pattern828 (x2, V4DFmode, V8DFmode) != 0
                      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 7975 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && TARGET_AVX512VL)))
                    return -1;
                  return 2568; /* *avx_unpcklpd256_mask */

                case V4DImode:
                  if (pattern724 (x2, V4DImode, V8DImode) != 0
                      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 8610 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && TARGET_AVX512VL)))
                    return -1;
                  return 2747; /* avx2_interleave_lowv4di_mask */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case 0LL:
          if (XWINT (x5, 0) != 6LL
              || XWINT (x6, 0) != 6LL
              || pattern723 (x2) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 6426 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE3 && TARGET_AVX512VL)))
            return -1;
          return 2469; /* sse3_movsldup_mask */

        default:
          return -1;
        }

    case 1LL:
      if (XWINT (x6, 0) != 7LL)
        return -1;
      x9 = XVECEXP (x4, 0, 1);
      switch (XWINT (x9, 0))
        {
        case 1LL:
          if (XWINT (x5, 0) != 7LL
              || pattern723 (x2) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 6373 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE3 && TARGET_AVX512VL)))
            return -1;
          return 2463; /* sse3_movshdup_mask */

        case 5LL:
          if (XWINT (x5, 0) != 3LL)
            return -1;
          x10 = XEXP (x3, 0);
          x11 = XEXP (x10, 1);
          operands[2] = x11;
          x12 = XEXP (x2, 1);
          operands[3] = x12;
          operands[4] = x7;
          switch (GET_MODE (operands[0]))
            {
            case V4DFmode:
              if (pattern724 (x2, V4DFmode, V8DFmode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 7816 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && TARGET_AVX512VL)))
                return -1;
              return 2562; /* avx_unpckhpd256_mask */

            case V4DImode:
              if (pattern724 (x2, V4DImode, V8DImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 8560 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && TARGET_AVX512VL)))
                return -1;
              return 2741; /* avx2_interleave_highv4di_mask */

            default:
              return -1;
            }

        default:
          return -1;
        }

    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, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 1);
  operands[2] = x5;
  x6 = XEXP (x2, 1);
  operands[3] = x6;
  x7 = XEXP (x2, 2);
  operands[4] = x7;
  if (!register_operand (operands[4], QImode))
    return -1;
  x8 = XEXP (x3, 1);
  x9 = XVECEXP (x8, 0, 0);
  switch (XWINT (x9, 0))
    {
    case 1LL:
      x10 = XVECEXP (x8, 0, 1);
      if (XWINT (x10, 0) != 3LL)
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V2DFmode:
          if (pattern724 (x2, V2DFmode, V4DFmode) != 0
              || !
#line 7861 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2563; /* avx512vl_unpckhpd128_mask */

        case V2DImode:
          if (pattern725 (x2, V2DImode, V4DImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 8590 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && TARGET_AVX512VL)))
            return -1;
          return 2745; /* vec_interleave_highv2di_mask */

        default:
          return -1;
        }

    case 0LL:
      x10 = XVECEXP (x8, 0, 1);
      if (XWINT (x10, 0) != 2LL)
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V2DFmode:
          if (pattern724 (x2, V2DFmode, V4DFmode) != 0
              || !
#line 8021 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2569; /* avx512vl_unpcklpd128_mask */

        case V2DImode:
          if (pattern725 (x2, V2DImode, V4DImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 8640 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && TARGET_AVX512VL)))
            return -1;
          return 2751; /* vec_interleave_lowv2di_mask */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_93 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, 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, x67, x68, x69, x70;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 1);
  if (pattern333 (x4) != 0)
    return -1;
  x5 = XVECEXP (x4, 0, 32);
  if (GET_CODE (x5) != CONST_INT)
    return -1;
  x6 = XVECEXP (x4, 0, 33);
  if (GET_CODE (x6) != CONST_INT)
    return -1;
  x7 = XVECEXP (x4, 0, 34);
  if (GET_CODE (x7) != CONST_INT)
    return -1;
  x8 = XVECEXP (x4, 0, 35);
  if (GET_CODE (x8) != CONST_INT)
    return -1;
  x9 = XVECEXP (x4, 0, 36);
  if (GET_CODE (x9) != CONST_INT)
    return -1;
  x10 = XVECEXP (x4, 0, 37);
  if (GET_CODE (x10) != CONST_INT)
    return -1;
  x11 = XVECEXP (x4, 0, 38);
  if (GET_CODE (x11) != CONST_INT)
    return -1;
  x12 = XVECEXP (x4, 0, 39);
  if (GET_CODE (x12) != CONST_INT)
    return -1;
  x13 = XVECEXP (x4, 0, 40);
  if (GET_CODE (x13) != CONST_INT)
    return -1;
  x14 = XVECEXP (x4, 0, 41);
  if (GET_CODE (x14) != CONST_INT)
    return -1;
  x15 = XVECEXP (x4, 0, 42);
  if (GET_CODE (x15) != CONST_INT)
    return -1;
  x16 = XVECEXP (x4, 0, 43);
  if (GET_CODE (x16) != CONST_INT)
    return -1;
  x17 = XVECEXP (x4, 0, 44);
  if (GET_CODE (x17) != CONST_INT)
    return -1;
  x18 = XVECEXP (x4, 0, 45);
  if (GET_CODE (x18) != CONST_INT)
    return -1;
  x19 = XVECEXP (x4, 0, 46);
  if (GET_CODE (x19) != CONST_INT)
    return -1;
  x20 = XVECEXP (x4, 0, 47);
  if (GET_CODE (x20) != CONST_INT)
    return -1;
  x21 = XVECEXP (x4, 0, 48);
  if (GET_CODE (x21) != CONST_INT)
    return -1;
  x22 = XVECEXP (x4, 0, 49);
  if (GET_CODE (x22) != CONST_INT)
    return -1;
  x23 = XVECEXP (x4, 0, 50);
  if (GET_CODE (x23) != CONST_INT)
    return -1;
  x24 = XVECEXP (x4, 0, 51);
  if (GET_CODE (x24) != CONST_INT)
    return -1;
  x25 = XVECEXP (x4, 0, 52);
  if (GET_CODE (x25) != CONST_INT)
    return -1;
  x26 = XVECEXP (x4, 0, 53);
  if (GET_CODE (x26) != CONST_INT)
    return -1;
  x27 = XVECEXP (x4, 0, 54);
  if (GET_CODE (x27) != CONST_INT)
    return -1;
  x28 = XVECEXP (x4, 0, 55);
  if (GET_CODE (x28) != CONST_INT)
    return -1;
  x29 = XVECEXP (x4, 0, 56);
  if (GET_CODE (x29) != CONST_INT)
    return -1;
  x30 = XVECEXP (x4, 0, 57);
  if (GET_CODE (x30) != CONST_INT)
    return -1;
  x31 = XVECEXP (x4, 0, 58);
  if (GET_CODE (x31) != CONST_INT)
    return -1;
  x32 = XVECEXP (x4, 0, 59);
  if (GET_CODE (x32) != CONST_INT)
    return -1;
  x33 = XVECEXP (x4, 0, 60);
  if (GET_CODE (x33) != CONST_INT)
    return -1;
  x34 = XVECEXP (x4, 0, 61);
  if (GET_CODE (x34) != CONST_INT)
    return -1;
  x35 = XVECEXP (x4, 0, 62);
  if (GET_CODE (x35) != CONST_INT)
    return -1;
  x36 = XVECEXP (x4, 0, 63);
  if (GET_CODE (x36) != CONST_INT
      || pattern503 (x2, V64QImode, V128QImode) != 0)
    return -1;
  x37 = XEXP (x2, 1);
  operands[3] = x37;
  if (!vector_move_operand (operands[3], V64QImode))
    return -1;
  x38 = XEXP (x2, 2);
  operands[4] = x38;
  if (!register_operand (operands[4], DImode))
    return -1;
  x39 = XVECEXP (x4, 0, 0);
  switch (XWINT (x39, 0))
    {
    case 8LL:
      x40 = XVECEXP (x4, 0, 1);
      if (XWINT (x40, 0) != 72LL)
        return -1;
      x41 = XVECEXP (x4, 0, 2);
      if (XWINT (x41, 0) != 9LL)
        return -1;
      x42 = XVECEXP (x4, 0, 3);
      if (XWINT (x42, 0) != 73LL)
        return -1;
      x43 = XVECEXP (x4, 0, 4);
      if (XWINT (x43, 0) != 10LL)
        return -1;
      x44 = XVECEXP (x4, 0, 5);
      if (XWINT (x44, 0) != 74LL)
        return -1;
      x45 = XVECEXP (x4, 0, 6);
      if (XWINT (x45, 0) != 11LL)
        return -1;
      x46 = XVECEXP (x4, 0, 7);
      if (XWINT (x46, 0) != 75LL)
        return -1;
      x47 = XVECEXP (x4, 0, 8);
      if (XWINT (x47, 0) != 12LL)
        return -1;
      x48 = XVECEXP (x4, 0, 9);
      if (XWINT (x48, 0) != 76LL)
        return -1;
      x49 = XVECEXP (x4, 0, 10);
      if (XWINT (x49, 0) != 13LL)
        return -1;
      x50 = XVECEXP (x4, 0, 11);
      if (XWINT (x50, 0) != 77LL)
        return -1;
      x51 = XVECEXP (x4, 0, 12);
      if (XWINT (x51, 0) != 14LL)
        return -1;
      x52 = XVECEXP (x4, 0, 13);
      if (XWINT (x52, 0) != 78LL)
        return -1;
      x53 = XVECEXP (x4, 0, 14);
      if (XWINT (x53, 0) != 15LL)
        return -1;
      x54 = XVECEXP (x4, 0, 15);
      if (XWINT (x54, 0) != 79LL)
        return -1;
      x55 = XVECEXP (x4, 0, 16);
      if (XWINT (x55, 0) != 24LL)
        return -1;
      x56 = XVECEXP (x4, 0, 17);
      if (XWINT (x56, 0) != 88LL)
        return -1;
      x57 = XVECEXP (x4, 0, 18);
      if (XWINT (x57, 0) != 25LL)
        return -1;
      x58 = XVECEXP (x4, 0, 19);
      if (XWINT (x58, 0) != 89LL)
        return -1;
      x59 = XVECEXP (x4, 0, 20);
      if (XWINT (x59, 0) != 26LL)
        return -1;
      x60 = XVECEXP (x4, 0, 21);
      if (XWINT (x60, 0) != 90LL)
        return -1;
      x61 = XVECEXP (x4, 0, 22);
      if (XWINT (x61, 0) != 27LL)
        return -1;
      x62 = XVECEXP (x4, 0, 23);
      if (XWINT (x62, 0) != 91LL)
        return -1;
      x63 = XVECEXP (x4, 0, 24);
      if (XWINT (x63, 0) != 28LL)
        return -1;
      x64 = XVECEXP (x4, 0, 25);
      if (XWINT (x64, 0) != 92LL)
        return -1;
      x65 = XVECEXP (x4, 0, 26);
      if (XWINT (x65, 0) != 29LL)
        return -1;
      x66 = XVECEXP (x4, 0, 27);
      if (XWINT (x66, 0) != 93LL)
        return -1;
      x67 = XVECEXP (x4, 0, 28);
      if (XWINT (x67, 0) != 30LL)
        return -1;
      x68 = XVECEXP (x4, 0, 29);
      if (XWINT (x68, 0) != 94LL)
        return -1;
      x69 = XVECEXP (x4, 0, 30);
      if (XWINT (x69, 0) != 31LL)
        return -1;
      x70 = XVECEXP (x4, 0, 31);
      if (XWINT (x70, 0) != 95LL
          || XWINT (x5, 0) != 40LL
          || XWINT (x6, 0) != 104LL
          || XWINT (x7, 0) != 41LL
          || XWINT (x8, 0) != 105LL
          || XWINT (x9, 0) != 42LL
          || XWINT (x10, 0) != 106LL
          || XWINT (x11, 0) != 43LL
          || XWINT (x12, 0) != 107LL
          || XWINT (x13, 0) != 44LL
          || XWINT (x14, 0) != 108LL
          || XWINT (x15, 0) != 45LL
          || XWINT (x16, 0) != 109LL
          || XWINT (x17, 0) != 46LL
          || XWINT (x18, 0) != 110LL
          || XWINT (x19, 0) != 47LL
          || XWINT (x20, 0) != 111LL
          || XWINT (x21, 0) != 56LL
          || XWINT (x22, 0) != 120LL
          || XWINT (x23, 0) != 57LL
          || XWINT (x24, 0) != 121LL
          || XWINT (x25, 0) != 58LL
          || XWINT (x26, 0) != 122LL
          || XWINT (x27, 0) != 59LL
          || XWINT (x28, 0) != 123LL
          || XWINT (x29, 0) != 60LL
          || XWINT (x30, 0) != 124LL
          || XWINT (x31, 0) != 61LL
          || XWINT (x32, 0) != 125LL
          || XWINT (x33, 0) != 62LL
          || XWINT (x34, 0) != 126LL
          || XWINT (x35, 0) != 63LL
          || XWINT (x36, 0) != 127LL
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 11850 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
        return -1;
      return 3593; /* avx512bw_interleave_highv64qi_mask */

    case 0LL:
      x40 = XVECEXP (x4, 0, 1);
      if (XWINT (x40, 0) != 64LL)
        return -1;
      x41 = XVECEXP (x4, 0, 2);
      if (XWINT (x41, 0) != 1LL)
        return -1;
      x42 = XVECEXP (x4, 0, 3);
      if (XWINT (x42, 0) != 65LL)
        return -1;
      x43 = XVECEXP (x4, 0, 4);
      if (XWINT (x43, 0) != 2LL)
        return -1;
      x44 = XVECEXP (x4, 0, 5);
      if (XWINT (x44, 0) != 66LL)
        return -1;
      x45 = XVECEXP (x4, 0, 6);
      if (XWINT (x45, 0) != 3LL)
        return -1;
      x46 = XVECEXP (x4, 0, 7);
      if (XWINT (x46, 0) != 67LL)
        return -1;
      x47 = XVECEXP (x4, 0, 8);
      if (XWINT (x47, 0) != 4LL)
        return -1;
      x48 = XVECEXP (x4, 0, 9);
      if (XWINT (x48, 0) != 68LL)
        return -1;
      x49 = XVECEXP (x4, 0, 10);
      if (XWINT (x49, 0) != 5LL)
        return -1;
      x50 = XVECEXP (x4, 0, 11);
      if (XWINT (x50, 0) != 69LL)
        return -1;
      x51 = XVECEXP (x4, 0, 12);
      if (XWINT (x51, 0) != 6LL)
        return -1;
      x52 = XVECEXP (x4, 0, 13);
      if (XWINT (x52, 0) != 70LL)
        return -1;
      x53 = XVECEXP (x4, 0, 14);
      if (XWINT (x53, 0) != 7LL)
        return -1;
      x54 = XVECEXP (x4, 0, 15);
      if (XWINT (x54, 0) != 71LL)
        return -1;
      x55 = XVECEXP (x4, 0, 16);
      if (XWINT (x55, 0) != 16LL)
        return -1;
      x56 = XVECEXP (x4, 0, 17);
      if (XWINT (x56, 0) != 80LL)
        return -1;
      x57 = XVECEXP (x4, 0, 18);
      if (XWINT (x57, 0) != 17LL)
        return -1;
      x58 = XVECEXP (x4, 0, 19);
      if (XWINT (x58, 0) != 81LL)
        return -1;
      x59 = XVECEXP (x4, 0, 20);
      if (XWINT (x59, 0) != 18LL)
        return -1;
      x60 = XVECEXP (x4, 0, 21);
      if (XWINT (x60, 0) != 82LL)
        return -1;
      x61 = XVECEXP (x4, 0, 22);
      if (XWINT (x61, 0) != 19LL)
        return -1;
      x62 = XVECEXP (x4, 0, 23);
      if (XWINT (x62, 0) != 83LL)
        return -1;
      x63 = XVECEXP (x4, 0, 24);
      if (XWINT (x63, 0) != 20LL)
        return -1;
      x64 = XVECEXP (x4, 0, 25);
      if (XWINT (x64, 0) != 84LL)
        return -1;
      x65 = XVECEXP (x4, 0, 26);
      if (XWINT (x65, 0) != 21LL)
        return -1;
      x66 = XVECEXP (x4, 0, 27);
      if (XWINT (x66, 0) != 85LL)
        return -1;
      x67 = XVECEXP (x4, 0, 28);
      if (XWINT (x67, 0) != 22LL)
        return -1;
      x68 = XVECEXP (x4, 0, 29);
      if (XWINT (x68, 0) != 86LL)
        return -1;
      x69 = XVECEXP (x4, 0, 30);
      if (XWINT (x69, 0) != 23LL)
        return -1;
      x70 = XVECEXP (x4, 0, 31);
      if (XWINT (x70, 0) != 87LL
          || XWINT (x5, 0) != 32LL
          || XWINT (x6, 0) != 96LL
          || XWINT (x7, 0) != 33LL
          || XWINT (x8, 0) != 97LL
          || XWINT (x9, 0) != 34LL
          || XWINT (x10, 0) != 98LL
          || XWINT (x11, 0) != 35LL
          || XWINT (x12, 0) != 99LL
          || XWINT (x13, 0) != 36LL
          || XWINT (x14, 0) != 100LL
          || XWINT (x15, 0) != 37LL
          || XWINT (x16, 0) != 101LL
          || XWINT (x17, 0) != 38LL
          || XWINT (x18, 0) != 102LL
          || XWINT (x19, 0) != 39LL
          || XWINT (x20, 0) != 103LL
          || XWINT (x21, 0) != 48LL
          || XWINT (x22, 0) != 112LL
          || XWINT (x23, 0) != 49LL
          || XWINT (x24, 0) != 113LL
          || XWINT (x25, 0) != 50LL
          || XWINT (x26, 0) != 114LL
          || XWINT (x27, 0) != 51LL
          || XWINT (x28, 0) != 115LL
          || XWINT (x29, 0) != 52LL
          || XWINT (x30, 0) != 116LL
          || XWINT (x31, 0) != 53LL
          || XWINT (x32, 0) != 117LL
          || XWINT (x33, 0) != 54LL
          || XWINT (x34, 0) != 118LL
          || XWINT (x35, 0) != 55LL
          || XWINT (x36, 0) != 119LL
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 11946 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
        return -1;
      return 3599; /* avx512bw_interleave_lowv64qi_mask */

    default:
      return -1;
    }
}

static int
recog_94 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 1);
  x5 = XVECEXP (x4, 0, 1);
  operands[3] = x5;
  if (!const_0_to_7_operand (operands[3], VOIDmode))
    return -1;
  x6 = XEXP (x2, 1);
  operands[4] = x6;
  x7 = XEXP (x2, 2);
  operands[5] = x7;
  if (!register_operand (operands[5], QImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case V2DFmode:
      if (GET_MODE (x2) != V2DFmode
          || GET_MODE (x3) != V2DFmode
          || !register_operand (operands[1], V8DFmode))
        return -1;
      if (memory_operand (operands[0], V2DFmode)
          && memory_operand (operands[4], V2DFmode)
          && 
#line 7072 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ
   && (INTVAL (operands[2]) % 2 == 0)
   && (INTVAL (operands[2]) == INTVAL (operands[3]) - 1)
   && rtx_equal_p (operands[4], operands[0])))
        return 2497; /* avx512dq_vextractf64x2_1_maskm */
      if (!register_operand (operands[0], V2DFmode)
          || !vector_move_operand (operands[4], V2DFmode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 7121 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && (INTVAL (operands[2]) == INTVAL (operands[3]) - 1))))
        return -1;
      return 2502; /* avx512dq_vextractf64x2_1_mask */

    case V2DImode:
      if (GET_MODE (x2) != V2DImode
          || GET_MODE (x3) != V2DImode
          || !register_operand (operands[1], V8DImode))
        return -1;
      if (memory_operand (operands[0], V2DImode)
          && memory_operand (operands[4], V2DImode)
          && 
#line 7072 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ
   && (INTVAL (operands[2]) % 2 == 0)
   && (INTVAL (operands[2]) == INTVAL (operands[3]) - 1)
   && rtx_equal_p (operands[4], operands[0])))
        return 2498; /* avx512dq_vextracti64x2_1_maskm */
      if (!register_operand (operands[0], V2DImode)
          || !vector_move_operand (operands[4], V2DImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 7121 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && (INTVAL (operands[2]) == INTVAL (operands[3]) - 1))))
        return -1;
      return 2504; /* avx512dq_vextracti64x2_1_mask */

    default:
      return -1;
    }
}

static int
recog_95 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 1);
  x5 = XVECEXP (x4, 0, 0);
  if (GET_CODE (x5) != CONST_INT)
    return -1;
  operands[2] = x5;
  if (const_0_to_7_operand (operands[2], VOIDmode))
    {
      res = recog_94 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  x6 = XVECEXP (x4, 0, 1);
  if (GET_CODE (x6) != CONST_INT)
    return -1;
  x7 = XEXP (x2, 1);
  operands[2] = x7;
  x8 = XEXP (x2, 2);
  operands[3] = x8;
  if (!register_operand (operands[3], QImode))
    return -1;
  switch (XWINT (x5, 0))
    {
    case 0LL:
      if (XWINT (x6, 0) != 1LL)
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V2DImode:
          if (!register_operand (operands[0], V2DImode)
              || pattern454 (x2, V2DImode, V4DImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 7418 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX
   && TARGET_AVX512VL && TARGET_AVX512DQ
   && !(MEM_P (operands[0]) && MEM_P (operands[1])))))
            return -1;
          return 2532; /* vec_extract_lo_v4di_mask */

        case V2DFmode:
          if (!register_operand (operands[0], V2DFmode)
              || pattern454 (x2, V2DFmode, V4DFmode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 7418 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX
   && TARGET_AVX512VL && TARGET_AVX512DQ
   && !(MEM_P (operands[0]) && MEM_P (operands[1])))))
            return -1;
          return 2534; /* vec_extract_lo_v4df_mask */

        default:
          return -1;
        }

    case 2LL:
      if (XWINT (x6, 0) != 3LL)
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V2DImode:
          if (pattern696 (x2, V2DImode, V4DImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 7457 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && TARGET_AVX512VL && TARGET_AVX512DQ)))
            return -1;
          return 2536; /* vec_extract_hi_v4di_mask */

        case V2DFmode:
          if (pattern696 (x2, V2DFmode, V4DFmode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 7457 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && TARGET_AVX512VL && TARGET_AVX512DQ)))
            return -1;
          return 2538; /* vec_extract_hi_v4df_mask */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_96 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 1);
  x5 = XVECEXP (x4, 0, 1);
  operands[3] = x5;
  x6 = XVECEXP (x4, 0, 2);
  operands[4] = x6;
  x7 = XVECEXP (x4, 0, 3);
  operands[5] = x7;
  x8 = XEXP (x2, 1);
  operands[6] = x8;
  x9 = XEXP (x2, 2);
  operands[7] = x9;
  if (!register_operand (operands[7], QImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case V4SFmode:
      if (GET_MODE (x2) != V4SFmode
          || GET_MODE (x3) != V4SFmode
          || pattern773 (V16SFmode) != 0)
        return -1;
      if (memory_operand (operands[0], V4SFmode)
          && memory_operand (operands[6], V4SFmode)
          && 
#line 7098 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && ((INTVAL (operands[2]) % 4 == 0)
       && INTVAL (operands[2]) == (INTVAL (operands[3]) - 1)
       && INTVAL (operands[3]) == (INTVAL (operands[4]) - 1)
       && INTVAL (operands[4]) == (INTVAL (operands[5]) - 1))
   && rtx_equal_p (operands[6], operands[0])))
        return 2499; /* avx512f_vextractf32x4_1_maskm */
      if (!register_operand (operands[0], V4SFmode)
          || !vector_move_operand (operands[6], V4SFmode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 7140 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && (INTVAL (operands[2]) == (INTVAL (operands[3]) - 1)
       && INTVAL (operands[3]) == (INTVAL (operands[4]) - 1)
       && INTVAL (operands[4]) == (INTVAL (operands[5]) - 1)))))
        return -1;
      return 2506; /* avx512f_vextractf32x4_1_mask */

    case V4SImode:
      if (GET_MODE (x2) != V4SImode
          || GET_MODE (x3) != V4SImode)
        return -1;
      if (memory_operand (operands[0], V4SImode)
          && pattern773 (V16SImode) == 0
          && memory_operand (operands[6], V4SImode)
          && 
#line 7098 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && ((INTVAL (operands[2]) % 4 == 0)
       && INTVAL (operands[2]) == (INTVAL (operands[3]) - 1)
       && INTVAL (operands[3]) == (INTVAL (operands[4]) - 1)
       && INTVAL (operands[4]) == (INTVAL (operands[5]) - 1))
   && rtx_equal_p (operands[6], operands[0])))
        return 2500; /* avx512f_vextracti32x4_1_maskm */
      if (!register_operand (operands[0], V4SImode)
          || !vector_move_operand (operands[6], V4SImode))
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case V16SImode:
          if (pattern773 (V16SImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 7140 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && (INTVAL (operands[2]) == (INTVAL (operands[3]) - 1)
       && INTVAL (operands[3]) == (INTVAL (operands[4]) - 1)
       && INTVAL (operands[4]) == (INTVAL (operands[5]) - 1)))))
            return -1;
          return 2508; /* avx512f_vextracti32x4_1_mask */

        case V4SImode:
          if (!vector_operand (operands[1], V4SImode)
              || !const_0_to_3_operand (operands[2], VOIDmode)
              || !const_0_to_3_operand (operands[3], VOIDmode)
              || !const_0_to_3_operand (operands[4], VOIDmode)
              || !const_0_to_3_operand (operands[5], VOIDmode)
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 12924 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && TARGET_AVX512VL)))
            return -1;
          return 3677; /* sse2_pshufd_1_mask */

        default:
          return -1;
        }

    case V4DImode:
      if (pattern726 (x2, V4DImode) != 0
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 17209 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && (32 == 64 || TARGET_AVX512VL))))
        return -1;
      return 4172; /* avx2_permv4di_1_mask */

    case V4DFmode:
      if (pattern726 (x2, V4DFmode) != 0
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 17209 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && (32 == 64 || TARGET_AVX512VL))))
        return -1;
      return 4174; /* avx2_permv4df_1_mask */

    case V8DImode:
      if (pattern726 (x2, V8DImode) != 0
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17209 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && (64 == 64 || TARGET_AVX512VL)) && 
#line 558 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
        return -1;
      return 4176; /* avx512f_permv8di_1_mask */

    case V8DFmode:
      if (pattern726 (x2, V8DFmode) != 0
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17209 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && (64 == 64 || TARGET_AVX512VL)) && 
#line 558 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
        return -1;
      return 4178; /* avx512f_permv8df_1_mask */

    default:
      return -1;
    }
}

static int
recog_97 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 1);
  x5 = XVECEXP (x4, 0, 0);
  if (GET_CODE (x5) != CONST_INT)
    return -1;
  operands[2] = x5;
  res = recog_96 (x1, insn, pnum_clobbers);
  if (res >= 0)
    return res;
  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)
    return -1;
  x9 = XEXP (x2, 1);
  operands[2] = x9;
  x10 = XEXP (x2, 2);
  operands[3] = x10;
  switch (XWINT (x5, 0))
    {
    case 0LL:
      if (XWINT (x6, 0) != 1LL
          || XWINT (x7, 0) != 2LL
          || XWINT (x8, 0) != 3LL
          || !register_operand (operands[3], QImode))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V4DFmode:
          if (GET_MODE (x2) != V4DFmode
              || GET_MODE (x3) != V4DFmode)
            return -1;
          if (memory_operand (operands[0], V4DFmode)
              && register_operand (operands[1], V8DFmode)
              && memory_operand (operands[2], V4DFmode)
              && 
#line 7221 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && rtx_equal_p (operands[2], operands[0])))
            return 2509; /* vec_extract_lo_v8df_maskm */
          if (!register_operand (operands[0], V4DFmode)
              || !nonimmediate_operand (operands[1], V8DFmode)
              || !vector_move_operand (operands[2], V4DFmode)
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 7236 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1])))))
            return -1;
          return 2512; /* vec_extract_lo_v8df_mask */

        case V4DImode:
          if (GET_MODE (x2) != V4DImode
              || GET_MODE (x3) != V4DImode)
            return -1;
          if (memory_operand (operands[0], V4DImode)
              && register_operand (operands[1], V8DImode)
              && memory_operand (operands[2], V4DImode)
              && 
#line 7221 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && rtx_equal_p (operands[2], operands[0])))
            return 2510; /* vec_extract_lo_v8di_maskm */
          if (!register_operand (operands[0], V4DImode)
              || !nonimmediate_operand (operands[1], V8DImode)
              || !vector_move_operand (operands[2], V4DImode)
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 7236 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1])))))
            return -1;
          return 2514; /* vec_extract_lo_v8di_mask */

        case V4SImode:
          if (GET_MODE (x2) != V4SImode
              || GET_MODE (x3) != V4SImode
              || !register_operand (operands[1], V8SImode))
            return -1;
          if (register_operand (operands[0], V4SImode)
              && vector_move_operand (operands[2], V4SImode)
              && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 7501 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && TARGET_AVX512VL && TARGET_AVX512DQ)))
            return 2540; /* vec_extract_lo_v8si_mask */
          if (!memory_operand (operands[0], V4SImode)
              || !memory_operand (operands[2], V4SImode)
              || !
#line 7523 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL && TARGET_AVX512F
   && rtx_equal_p (operands[2], operands[0])))
            return -1;
          return 2543; /* vec_extract_lo_v8si_maskm */

        case V4SFmode:
          if (GET_MODE (x2) != V4SFmode
              || GET_MODE (x3) != V4SFmode
              || !register_operand (operands[1], V8SFmode))
            return -1;
          if (register_operand (operands[0], V4SFmode)
              && vector_move_operand (operands[2], V4SFmode)
              && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 7501 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && TARGET_AVX512VL && TARGET_AVX512DQ)))
            return 2542; /* vec_extract_lo_v8sf_mask */
          if (!memory_operand (operands[0], V4SFmode)
              || !memory_operand (operands[2], V4SFmode)
              || !
#line 7523 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL && TARGET_AVX512F
   && rtx_equal_p (operands[2], operands[0])))
            return -1;
          return 2544; /* vec_extract_lo_v8sf_maskm */

        default:
          return -1;
        }

    case 4LL:
      if (XWINT (x6, 0) != 5LL
          || XWINT (x7, 0) != 6LL
          || XWINT (x8, 0) != 7LL)
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V4DFmode:
          if (pattern774 (x2, V8DFmode, V4DFmode) != 0)
            return -1;
          if (memory_operand (operands[0], V4DFmode)
              && memory_operand (operands[2], V4DFmode)
              && 
#line 7258 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && rtx_equal_p (operands[2], operands[0])))
            return 2515; /* vec_extract_hi_v8df_maskm */
          if (!register_operand (operands[0], V4DFmode)
              || !vector_move_operand (operands[2], V4DFmode)
              || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 2518; /* vec_extract_hi_v8df_mask */

        case V4DImode:
          if (pattern774 (x2, V8DImode, V4DImode) != 0)
            return -1;
          if (memory_operand (operands[0], V4DImode)
              && memory_operand (operands[2], V4DImode)
              && 
#line 7258 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && rtx_equal_p (operands[2], operands[0])))
            return 2516; /* vec_extract_hi_v8di_maskm */
          if (!register_operand (operands[0], V4DImode)
              || !vector_move_operand (operands[2], V4DImode)
              || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 2520; /* vec_extract_hi_v8di_mask */

        case V4SImode:
          if (GET_MODE (x2) != V4SImode
              || GET_MODE (x3) != V4SImode
              || !register_operand (operands[1], V8SImode))
            return -1;
          if (memory_operand (operands[0], V4SImode)
              && memory_operand (operands[2], V4SImode)
              && register_operand (operands[3], V4SImode)
              && 
#line 7541 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && TARGET_AVX512VL
   && rtx_equal_p (operands[2], operands[0])))
            return 2545; /* vec_extract_hi_v8si_maskm */
          if (!register_operand (operands[0], V4SImode)
              || !vector_move_operand (operands[2], V4SImode)
              || !register_operand (operands[3], QImode)
              || !
#line 7558 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2547; /* vec_extract_hi_v8si_mask */

        case V4SFmode:
          if (GET_MODE (x2) != V4SFmode
              || GET_MODE (x3) != V4SFmode
              || !register_operand (operands[1], V8SFmode))
            return -1;
          if (memory_operand (operands[0], V4SFmode)
              && memory_operand (operands[2], V4SFmode)
              && register_operand (operands[3], V4SFmode)
              && 
#line 7541 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && TARGET_AVX512VL
   && rtx_equal_p (operands[2], operands[0])))
            return 2546; /* vec_extract_hi_v8sf_maskm */
          if (!register_operand (operands[0], V4SFmode)
              || !vector_move_operand (operands[2], V4SFmode)
              || !register_operand (operands[3], QImode)
              || !
#line 7558 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2548; /* vec_extract_hi_v8sf_mask */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_98 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, 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, 1);
  if (pattern455 (x4) != 0)
    return -1;
  x5 = XEXP (x2, 1);
  operands[2] = x5;
  x6 = XEXP (x2, 2);
  operands[3] = x6;
  if (!register_operand (operands[3], QImode))
    return -1;
  x7 = XVECEXP (x4, 0, 0);
  switch (XWINT (x7, 0))
    {
    case 8LL:
      x8 = XVECEXP (x4, 0, 1);
      if (XWINT (x8, 0) != 9LL)
        return -1;
      x9 = XVECEXP (x4, 0, 2);
      if (XWINT (x9, 0) != 10LL)
        return -1;
      x10 = XVECEXP (x4, 0, 3);
      if (XWINT (x10, 0) != 11LL)
        return -1;
      x11 = XVECEXP (x4, 0, 4);
      if (XWINT (x11, 0) != 12LL)
        return -1;
      x12 = XVECEXP (x4, 0, 5);
      if (XWINT (x12, 0) != 13LL)
        return -1;
      x13 = XVECEXP (x4, 0, 6);
      if (XWINT (x13, 0) != 14LL)
        return -1;
      x14 = XVECEXP (x4, 0, 7);
      if (XWINT (x14, 0) != 15LL)
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V8SFmode:
          if (GET_MODE (x2) != V8SFmode
              || GET_MODE (x3) != V8SFmode
              || !register_operand (operands[1], V16SFmode))
            return -1;
          if (memory_operand (operands[0], V8SFmode)
              && memory_operand (operands[2], V8SFmode)
              && 
#line 7293 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ
   && rtx_equal_p (operands[2], operands[0])))
            return 2521; /* vec_extract_hi_v16sf_maskm */
          if (!register_operand (operands[0], V8SFmode)
              || !vector_move_operand (operands[2], V8SFmode)
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 7310 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && TARGET_AVX512DQ)))
            return -1;
          return 2524; /* vec_extract_hi_v16sf_mask */

        case V8SImode:
          if (GET_MODE (x2) != V8SImode
              || GET_MODE (x3) != V8SImode
              || !register_operand (operands[1], V16SImode))
            return -1;
          if (memory_operand (operands[0], V8SImode)
              && memory_operand (operands[2], V8SImode)
              && 
#line 7293 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ
   && rtx_equal_p (operands[2], operands[0])))
            return 2522; /* vec_extract_hi_v16si_maskm */
          if (!register_operand (operands[0], V8SImode)
              || !vector_move_operand (operands[2], V8SImode)
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 7310 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && TARGET_AVX512DQ)))
            return -1;
          return 2526; /* vec_extract_hi_v16si_mask */

        default:
          return -1;
        }

    case 0LL:
      x8 = XVECEXP (x4, 0, 1);
      if (XWINT (x8, 0) != 1LL)
        return -1;
      x9 = XVECEXP (x4, 0, 2);
      if (XWINT (x9, 0) != 2LL)
        return -1;
      x10 = XVECEXP (x4, 0, 3);
      if (XWINT (x10, 0) != 3LL)
        return -1;
      x11 = XVECEXP (x4, 0, 4);
      if (XWINT (x11, 0) != 4LL)
        return -1;
      x12 = XVECEXP (x4, 0, 5);
      if (XWINT (x12, 0) != 5LL)
        return -1;
      x13 = XVECEXP (x4, 0, 6);
      if (XWINT (x13, 0) != 6LL)
        return -1;
      x14 = XVECEXP (x4, 0, 7);
      if (XWINT (x14, 0) != 7LL)
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V8SFmode:
          if (!nonimmediate_operand (operands[0], V8SFmode)
              || pattern454 (x2, V8SFmode, V16SFmode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 7382 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && (64 == 64 || TARGET_AVX512VL)
   && !(MEM_P (operands[0]) && MEM_P (operands[1])))))
            return -1;
          return 2528; /* vec_extract_lo_v16sf_mask */

        case V8SImode:
          if (!nonimmediate_operand (operands[0], V8SImode)
              || pattern454 (x2, V8SImode, V16SImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 7382 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && (64 == 64 || TARGET_AVX512VL)
   && !(MEM_P (operands[0]) && MEM_P (operands[1])))))
            return -1;
          return 2530; /* vec_extract_lo_v16si_mask */

        default:
          return -1;
        }

    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, x6, x7, x8, x9;
  rtx x10, x11, x12, x13;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 1);
  x5 = XVECEXP (x4, 0, 4);
  if (GET_CODE (x5) != CONST_INT)
    return -1;
  operands[6] = x5;
  if (pattern569 (x2, V8SImode) == 0)
    {
      x6 = XEXP (x2, 1);
      operands[10] = x6;
      if (vector_move_operand (operands[10], V8SImode))
        {
          x7 = XEXP (x2, 2);
          operands[11] = x7;
          if (register_operand (operands[11], QImode)
              && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 12862 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2
   && TARGET_AVX512VL
   && INTVAL (operands[2]) + 4 == INTVAL (operands[6])
   && INTVAL (operands[3]) + 4 == INTVAL (operands[7])
   && INTVAL (operands[4]) + 4 == INTVAL (operands[8])
   && INTVAL (operands[5]) + 4 == INTVAL (operands[9]))))
            return 3675; /* avx2_pshufd_1_mask */
        }
    }
  if (XWINT (x5, 0) != 4LL)
    return -1;
  x8 = XVECEXP (x4, 0, 5);
  if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
    return -1;
  x9 = XVECEXP (x4, 0, 6);
  if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
    return -1;
  x10 = XVECEXP (x4, 0, 7);
  if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
      || pattern570 (x2, V8HImode) != 0)
    return -1;
  x11 = XVECEXP (x4, 0, 1);
  operands[3] = x11;
  if (!const_0_to_3_operand (operands[3], VOIDmode))
    return -1;
  x12 = XVECEXP (x4, 0, 2);
  operands[4] = x12;
  if (!const_0_to_3_operand (operands[4], VOIDmode))
    return -1;
  x13 = XVECEXP (x4, 0, 3);
  operands[5] = x13;
  if (!const_0_to_3_operand (operands[5], VOIDmode))
    return -1;
  x6 = XEXP (x2, 1);
  operands[6] = x6;
  if (!vector_move_operand (operands[6], V8HImode))
    return -1;
  x7 = XEXP (x2, 2);
  operands[7] = x7;
  if (!register_operand (operands[7], QImode)
      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 13080 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && TARGET_AVX512BW && TARGET_AVX512VL)))
    return -1;
  return 3683; /* sse2_pshuflw_1_mask */
}

static int
recog_100 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 1);
  x5 = XVECEXP (x4, 0, 0);
  if (GET_CODE (x5) != CONST_INT)
    return -1;
  x6 = XVECEXP (x4, 0, 1);
  if (GET_CODE (x6) == CONST_INT)
    {
      res = recog_98 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  operands[2] = x5;
  if (const_0_to_3_operand (operands[2], VOIDmode))
    {
      res = recog_99 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  if (XWINT (x5, 0) != 0LL
      || x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x7 = XVECEXP (x4, 0, 2);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
    return -1;
  x8 = XVECEXP (x4, 0, 3);
  if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 3]
      || pattern570 (x2, V8HImode) != 0
      || pattern727 (x4) != 0)
    return -1;
  x9 = XEXP (x2, 1);
  operands[6] = x9;
  if (!vector_move_operand (operands[6], V8HImode))
    return -1;
  x10 = XEXP (x2, 2);
  operands[7] = x10;
  if (!register_operand (operands[7], QImode)
      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 13237 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && TARGET_AVX512BW && TARGET_AVX512VL)))
    return -1;
  return 3689; /* sse2_pshufhw_1_mask */
}

static int
recog_101 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (pattern569 (x2, V16SImode) != 0)
    return -1;
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 1);
  x5 = XVECEXP (x4, 0, 8);
  operands[10] = x5;
  if (!const_8_to_11_operand (operands[10], VOIDmode))
    return -1;
  x6 = XVECEXP (x4, 0, 9);
  operands[11] = x6;
  if (!const_8_to_11_operand (operands[11], VOIDmode))
    return -1;
  x7 = XVECEXP (x4, 0, 10);
  operands[12] = x7;
  if (!const_8_to_11_operand (operands[12], VOIDmode))
    return -1;
  x8 = XVECEXP (x4, 0, 11);
  operands[13] = x8;
  if (!const_8_to_11_operand (operands[13], VOIDmode))
    return -1;
  x9 = XVECEXP (x4, 0, 12);
  operands[14] = x9;
  if (!const_12_to_15_operand (operands[14], VOIDmode))
    return -1;
  x10 = XVECEXP (x4, 0, 13);
  operands[15] = x10;
  if (!const_12_to_15_operand (operands[15], VOIDmode))
    return -1;
  x11 = XVECEXP (x4, 0, 14);
  operands[16] = x11;
  if (!const_12_to_15_operand (operands[16], VOIDmode))
    return -1;
  x12 = XVECEXP (x4, 0, 15);
  operands[17] = x12;
  if (!const_12_to_15_operand (operands[17], VOIDmode))
    return -1;
  x13 = XEXP (x2, 1);
  operands[18] = x13;
  if (!vector_move_operand (operands[18], V16SImode))
    return -1;
  x14 = XEXP (x2, 2);
  operands[19] = x14;
  if (!register_operand (operands[19], HImode)
      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 12781 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && INTVAL (operands[2]) + 4 == INTVAL (operands[6])
   && INTVAL (operands[3]) + 4 == INTVAL (operands[7])
   && INTVAL (operands[4]) + 4 == INTVAL (operands[8])
   && INTVAL (operands[5]) + 4 == INTVAL (operands[9])
   && INTVAL (operands[2]) + 8 == INTVAL (operands[10])
   && INTVAL (operands[3]) + 8 == INTVAL (operands[11])
   && INTVAL (operands[4]) + 8 == INTVAL (operands[12])
   && INTVAL (operands[5]) + 8 == INTVAL (operands[13])
   && INTVAL (operands[2]) + 12 == INTVAL (operands[14])
   && INTVAL (operands[3]) + 12 == INTVAL (operands[15])
   && INTVAL (operands[4]) + 12 == INTVAL (operands[16])
   && INTVAL (operands[5]) + 12 == INTVAL (operands[17]))))
    return -1;
  return 3673; /* avx512f_pshufd_1_mask */
}

static int
recog_102 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, 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);
  x4 = XEXP (x3, 1);
  x5 = XVECEXP (x4, 0, 4);
  if (GET_CODE (x5) != CONST_INT)
    return -1;
  operands[6] = x5;
  res = recog_101 (x1, insn, pnum_clobbers);
  if (res >= 0)
    return res;
  if (XWINT (x5, 0) != 4LL)
    return -1;
  x6 = XVECEXP (x4, 0, 5);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
    return -1;
  x7 = XVECEXP (x4, 0, 6);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
    return -1;
  x8 = XVECEXP (x4, 0, 7);
  if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
      || pattern697 (x4) != 0
      || !register_operand (operands[0], V16HImode)
      || GET_MODE (x2) != V16HImode
      || GET_MODE (x3) != V16HImode
      || !nonimmediate_operand (operands[1], V16HImode))
    return -1;
  x9 = XVECEXP (x4, 0, 1);
  operands[3] = x9;
  if (!const_0_to_3_operand (operands[3], VOIDmode))
    return -1;
  x10 = XVECEXP (x4, 0, 2);
  operands[4] = x10;
  if (!const_0_to_3_operand (operands[4], VOIDmode))
    return -1;
  x11 = XVECEXP (x4, 0, 3);
  operands[5] = x11;
  if (!const_0_to_3_operand (operands[5], VOIDmode))
    return -1;
  x12 = XVECEXP (x4, 0, 8);
  operands[6] = x12;
  if (!const_8_to_11_operand (operands[6], VOIDmode))
    return -1;
  x13 = XVECEXP (x4, 0, 9);
  operands[7] = x13;
  if (!const_8_to_11_operand (operands[7], VOIDmode))
    return -1;
  x14 = XVECEXP (x4, 0, 10);
  operands[8] = x14;
  if (!const_8_to_11_operand (operands[8], VOIDmode))
    return -1;
  x15 = XVECEXP (x4, 0, 11);
  operands[9] = x15;
  if (!const_8_to_11_operand (operands[9], VOIDmode))
    return -1;
  x16 = XEXP (x2, 1);
  operands[10] = x16;
  if (!vector_move_operand (operands[10], V16HImode))
    return -1;
  x17 = XEXP (x2, 2);
  operands[11] = x17;
  if (!register_operand (operands[11], HImode)
      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 13014 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2
   && TARGET_AVX512BW && TARGET_AVX512VL
   && INTVAL (operands[2]) + 8 == INTVAL (operands[6])
   && INTVAL (operands[3]) + 8 == INTVAL (operands[7])
   && INTVAL (operands[4]) + 8 == INTVAL (operands[8])
   && INTVAL (operands[5]) + 8 == INTVAL (operands[9]))))
    return -1;
  return 3681; /* avx2_pshuflw_1_mask */
}

static int
recog_103 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, 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, 1);
  x5 = XVECEXP (x4, 0, 0);
  if (GET_CODE (x5) != CONST_INT)
    return -1;
  operands[2] = x5;
  if (const_0_to_3_operand (operands[2], VOIDmode))
    {
      res = recog_102 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  if (XWINT (x5, 0) != 0LL)
    return -1;
  x6 = XVECEXP (x4, 0, 1);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x7 = XVECEXP (x4, 0, 2);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
    return -1;
  x8 = XVECEXP (x4, 0, 3);
  if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 3]
      || pattern571 (x4) != 0
      || pattern339 (x2, V16HImode) != 0
      || pattern727 (x4) != 0)
    return -1;
  x9 = XVECEXP (x4, 0, 12);
  operands[6] = x9;
  if (!const_12_to_15_operand (operands[6], VOIDmode))
    return -1;
  x10 = XVECEXP (x4, 0, 13);
  operands[7] = x10;
  if (!const_12_to_15_operand (operands[7], VOIDmode))
    return -1;
  x11 = XVECEXP (x4, 0, 14);
  operands[8] = x11;
  if (!const_12_to_15_operand (operands[8], VOIDmode))
    return -1;
  x12 = XVECEXP (x4, 0, 15);
  operands[9] = x12;
  if (!const_12_to_15_operand (operands[9], VOIDmode))
    return -1;
  x13 = XEXP (x2, 1);
  operands[10] = x13;
  if (!vector_move_operand (operands[10], V16HImode))
    return -1;
  x14 = XEXP (x2, 2);
  operands[11] = x14;
  if (!register_operand (operands[11], HImode)
      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 13171 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2
   && TARGET_AVX512BW && TARGET_AVX512VL
   && INTVAL (operands[2]) + 8 == INTVAL (operands[6])
   && INTVAL (operands[3]) + 8 == INTVAL (operands[7])
   && INTVAL (operands[4]) + 8 == INTVAL (operands[8])
   && INTVAL (operands[5]) + 8 == INTVAL (operands[9]))))
    return -1;
  return 3687; /* avx2_pshufhw_1_mask */
}

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, 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 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  operands[1] = x5;
  x6 = XEXP (x3, 1);
  switch (XVECLEN (x6, 0))
    {
    case 16:
      x7 = XVECEXP (x6, 0, 0);
      if (GET_CODE (x7) != CONST_INT)
        return -1;
      x8 = XVECEXP (x6, 0, 1);
      if (GET_CODE (x8) == CONST_INT)
        {
          res = recog_89 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      operands[3] = x7;
      x9 = XEXP (x4, 1);
      operands[2] = x9;
      operands[4] = x8;
      x10 = XVECEXP (x6, 0, 2);
      operands[5] = x10;
      x11 = XVECEXP (x6, 0, 3);
      operands[6] = x11;
      x12 = XVECEXP (x6, 0, 4);
      operands[7] = x12;
      x13 = XVECEXP (x6, 0, 5);
      operands[8] = x13;
      x14 = XVECEXP (x6, 0, 6);
      operands[9] = x14;
      x15 = XVECEXP (x6, 0, 7);
      operands[10] = x15;
      x16 = XVECEXP (x6, 0, 8);
      operands[11] = x16;
      x17 = XVECEXP (x6, 0, 9);
      operands[12] = x17;
      x18 = XVECEXP (x6, 0, 10);
      operands[13] = x18;
      x19 = XVECEXP (x6, 0, 11);
      operands[14] = x19;
      x20 = XVECEXP (x6, 0, 12);
      operands[15] = x20;
      x21 = XVECEXP (x6, 0, 13);
      operands[16] = x21;
      x22 = XVECEXP (x6, 0, 14);
      operands[17] = x22;
      x23 = XVECEXP (x6, 0, 15);
      operands[18] = x23;
      x24 = XEXP (x2, 1);
      operands[19] = x24;
      x25 = XEXP (x2, 2);
      operands[20] = x25;
      if (!register_operand (operands[20], HImode))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V16SFmode:
          if (pattern750 (x2, V16SFmode, V32SFmode) != 0
              || !vector_move_operand (operands[19], V16SFmode))
            return -1;
          if (const_0_to_3_operand (operands[3], VOIDmode)
              && const_0_to_3_operand (operands[4], VOIDmode)
              && const_16_to_19_operand (operands[5], VOIDmode)
              && const_16_to_19_operand (operands[6], VOIDmode)
              && const_4_to_7_operand (operands[7], VOIDmode)
              && const_4_to_7_operand (operands[8], VOIDmode)
              && const_20_to_23_operand (operands[9], VOIDmode)
              && const_20_to_23_operand (operands[10], VOIDmode)
              && const_8_to_11_operand (operands[11], VOIDmode)
              && const_8_to_11_operand (operands[12], VOIDmode)
              && const_24_to_27_operand (operands[13], VOIDmode)
              && const_24_to_27_operand (operands[14], VOIDmode)
              && const_12_to_15_operand (operands[15], VOIDmode)
              && const_12_to_15_operand (operands[16], VOIDmode)
              && const_28_to_31_operand (operands[17], VOIDmode)
              && const_28_to_31_operand (operands[18], VOIDmode)
              && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 8379 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && (INTVAL (operands[3]) == (INTVAL (operands[7]) - 4)
       && INTVAL (operands[4]) == (INTVAL (operands[8]) - 4)
       && INTVAL (operands[5]) == (INTVAL (operands[9]) - 4)
       && INTVAL (operands[6]) == (INTVAL (operands[10]) - 4)
       && INTVAL (operands[3]) == (INTVAL (operands[11]) - 8)
       && INTVAL (operands[4]) == (INTVAL (operands[12]) - 8)
       && INTVAL (operands[5]) == (INTVAL (operands[13]) - 8)
       && INTVAL (operands[6]) == (INTVAL (operands[14]) - 8)
       && INTVAL (operands[3]) == (INTVAL (operands[15]) - 12)
       && INTVAL (operands[4]) == (INTVAL (operands[16]) - 12)
       && INTVAL (operands[5]) == (INTVAL (operands[17]) - 12)
       && INTVAL (operands[6]) == (INTVAL (operands[18]) - 12)))))
            return 2734; /* avx512f_shufps512_1_mask */
          if (!const_0_to_15_operand (operands[3], VOIDmode)
              || pattern945 () != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 12703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && (INTVAL (operands[3]) == (INTVAL (operands[4]) - 1)
       && INTVAL (operands[3]) == (INTVAL (operands[5]) - 2)
       && INTVAL (operands[3]) == (INTVAL (operands[6]) - 3)
       && INTVAL (operands[7]) == (INTVAL (operands[8]) - 1)
       && INTVAL (operands[7]) == (INTVAL (operands[9]) - 2)
       && INTVAL (operands[7]) == (INTVAL (operands[10]) - 3)
       && INTVAL (operands[11]) == (INTVAL (operands[12]) - 1)
       && INTVAL (operands[11]) == (INTVAL (operands[13]) - 2)
       && INTVAL (operands[11]) == (INTVAL (operands[14]) - 3)
       && INTVAL (operands[15]) == (INTVAL (operands[16]) - 1)
       && INTVAL (operands[15]) == (INTVAL (operands[17]) - 2)
       && INTVAL (operands[15]) == (INTVAL (operands[18]) - 3)))))
            return -1;
          return 3669; /* avx512f_shuf_f32x4_1_mask */

        case V16SImode:
          if (pattern750 (x2, V16SImode, V32SImode) != 0
              || !const_0_to_15_operand (operands[3], VOIDmode)
              || pattern945 () != 0
              || !vector_move_operand (operands[19], V16SImode)
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 12703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && (INTVAL (operands[3]) == (INTVAL (operands[4]) - 1)
       && INTVAL (operands[3]) == (INTVAL (operands[5]) - 2)
       && INTVAL (operands[3]) == (INTVAL (operands[6]) - 3)
       && INTVAL (operands[7]) == (INTVAL (operands[8]) - 1)
       && INTVAL (operands[7]) == (INTVAL (operands[9]) - 2)
       && INTVAL (operands[7]) == (INTVAL (operands[10]) - 3)
       && INTVAL (operands[11]) == (INTVAL (operands[12]) - 1)
       && INTVAL (operands[11]) == (INTVAL (operands[13]) - 2)
       && INTVAL (operands[11]) == (INTVAL (operands[14]) - 3)
       && INTVAL (operands[15]) == (INTVAL (operands[16]) - 1)
       && INTVAL (operands[15]) == (INTVAL (operands[17]) - 2)
       && INTVAL (operands[15]) == (INTVAL (operands[18]) - 3)))))
            return -1;
          return 3671; /* avx512f_shuf_i32x4_1_mask */

        default:
          return -1;
        }

    case 8:
      x7 = XVECEXP (x6, 0, 0);
      if (GET_CODE (x7) != CONST_INT)
        return -1;
      x8 = XVECEXP (x6, 0, 1);
      if (GET_CODE (x8) == CONST_INT)
        {
          res = recog_90 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      operands[3] = x7;
      x9 = XEXP (x4, 1);
      operands[2] = x9;
      operands[4] = x8;
      x10 = XVECEXP (x6, 0, 2);
      operands[5] = x10;
      x11 = XVECEXP (x6, 0, 3);
      operands[6] = x11;
      x12 = XVECEXP (x6, 0, 4);
      operands[7] = x12;
      x13 = XVECEXP (x6, 0, 5);
      operands[8] = x13;
      x14 = XVECEXP (x6, 0, 6);
      operands[9] = x14;
      x15 = XVECEXP (x6, 0, 7);
      operands[10] = x15;
      x24 = XEXP (x2, 1);
      operands[11] = x24;
      x25 = XEXP (x2, 2);
      operands[12] = x25;
      if (!register_operand (operands[12], QImode))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V8SFmode:
          if (pattern853 (x2, V8SFmode, V16SFmode) != 0)
            return -1;
          if (const_0_to_3_operand (operands[3], VOIDmode)
              && const_0_to_3_operand (operands[4], VOIDmode)
              && const_8_to_11_operand (operands[5], VOIDmode)
              && const_8_to_11_operand (operands[6], VOIDmode)
              && const_4_to_7_operand (operands[7], VOIDmode)
              && const_4_to_7_operand (operands[8], VOIDmode)
              && const_12_to_15_operand (operands[9], VOIDmode)
              && const_12_to_15_operand (operands[10], VOIDmode)
              && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 6491 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX
   && TARGET_AVX512VL
   && (INTVAL (operands[3]) == (INTVAL (operands[7]) - 4)
       && INTVAL (operands[4]) == (INTVAL (operands[8]) - 4)
       && INTVAL (operands[5]) == (INTVAL (operands[9]) - 4)
       && INTVAL (operands[6]) == (INTVAL (operands[10]) - 4)))))
            return 2473; /* avx_shufps256_1_mask */
          if (!const_0_to_7_operand (operands[3], VOIDmode)
              || pattern927 () != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 12629 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL
   && (INTVAL (operands[3]) == (INTVAL (operands[4]) - 1)
       && INTVAL (operands[3]) == (INTVAL (operands[5]) - 2)
       && INTVAL (operands[3]) == (INTVAL (operands[6]) - 3)
       && INTVAL (operands[7]) == (INTVAL (operands[8]) - 1)
       && INTVAL (operands[7]) == (INTVAL (operands[9]) - 2)
       && INTVAL (operands[7]) == (INTVAL (operands[10]) - 3)))))
            return -1;
          return 3667; /* avx512vl_shuf_f32x4_1_mask */

        case V8DFmode:
          if (pattern853 (x2, V8DFmode, V16DFmode) != 0)
            return -1;
          if (const_0_to_1_operand (operands[3], VOIDmode)
              && const_8_to_9_operand (operands[4], VOIDmode)
              && const_2_to_3_operand (operands[5], VOIDmode)
              && const_10_to_11_operand (operands[6], VOIDmode)
              && const_4_to_5_operand (operands[7], VOIDmode)
              && const_12_to_13_operand (operands[8], VOIDmode)
              && const_6_to_7_operand (operands[9], VOIDmode)
              && const_14_to_15_operand (operands[10], VOIDmode)
              && 
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return 2736; /* avx512f_shufpd512_1_mask */
          if (!const_0_to_7_operand (operands[3], VOIDmode)
              || pattern927 () != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 12571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && (INTVAL (operands[3]) == (INTVAL (operands[4]) - 1)
       && INTVAL (operands[5]) == (INTVAL (operands[6]) - 1)
       && INTVAL (operands[7]) == (INTVAL (operands[8]) - 1)
       && INTVAL (operands[9]) == (INTVAL (operands[10]) - 1)))))
            return -1;
          return 3661; /* avx512f_shuf_f64x2_1_mask */

        case V8DImode:
          if (pattern854 (x2, V8DImode, V16DImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 12571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && (INTVAL (operands[3]) == (INTVAL (operands[4]) - 1)
       && INTVAL (operands[5]) == (INTVAL (operands[6]) - 1)
       && INTVAL (operands[7]) == (INTVAL (operands[8]) - 1)
       && INTVAL (operands[9]) == (INTVAL (operands[10]) - 1)))))
            return -1;
          return 3663; /* avx512f_shuf_i64x2_1_mask */

        case V8SImode:
          if (pattern854 (x2, V8SImode, V16SImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 12629 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL
   && (INTVAL (operands[3]) == (INTVAL (operands[4]) - 1)
       && INTVAL (operands[3]) == (INTVAL (operands[5]) - 2)
       && INTVAL (operands[3]) == (INTVAL (operands[6]) - 3)
       && INTVAL (operands[7]) == (INTVAL (operands[8]) - 1)
       && INTVAL (operands[7]) == (INTVAL (operands[9]) - 2)
       && INTVAL (operands[7]) == (INTVAL (operands[10]) - 3)))))
            return -1;
          return 3665; /* avx512vl_shuf_i32x4_1_mask */

        default:
          return -1;
        }

    case 4:
      x7 = XVECEXP (x6, 0, 0);
      if (GET_CODE (x7) != CONST_INT)
        return -1;
      x8 = XVECEXP (x6, 0, 1);
      if (GET_CODE (x8) == CONST_INT)
        {
          res = recog_91 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      operands[3] = x7;
      x9 = XEXP (x4, 1);
      operands[2] = x9;
      operands[4] = x8;
      x10 = XVECEXP (x6, 0, 2);
      operands[5] = x10;
      x11 = XVECEXP (x6, 0, 3);
      operands[6] = x11;
      x24 = XEXP (x2, 1);
      operands[7] = x24;
      x25 = XEXP (x2, 2);
      operands[8] = x25;
      if (!register_operand (operands[8], QImode))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V4SFmode:
          if (pattern749 (x2, V4SFmode, V8SFmode) != 0
              || !
#line 6544 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2474; /* sse_shufps_v4sf_mask */

        case V4DFmode:
          if (pattern750 (x2, V4DFmode, V8DFmode) != 0
              || !vector_move_operand (operands[7], V4DFmode))
            return -1;
          if (const_0_to_1_operand (operands[3], VOIDmode)
              && const_4_to_5_operand (operands[4], VOIDmode)
              && const_2_to_3_operand (operands[5], VOIDmode)
              && const_6_to_7_operand (operands[6], VOIDmode)
              && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 8493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && TARGET_AVX512VL)))
            return 2738; /* avx_shufpd256_1_mask */
          if (!const_0_to_3_operand (operands[3], VOIDmode)
              || !const_0_to_3_operand (operands[4], VOIDmode)
              || !const_4_to_7_operand (operands[5], VOIDmode)
              || !const_4_to_7_operand (operands[6], VOIDmode)
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 12518 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL
   && (INTVAL (operands[3]) == (INTVAL (operands[4]) - 1)
       && INTVAL (operands[5]) == (INTVAL (operands[6]) - 1)))))
            return -1;
          return 3659; /* avx512dq_shuf_f64x2_1_mask */

        case V4DImode:
          if (pattern749 (x2, V4DImode, V8DImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 12518 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL
   && (INTVAL (operands[3]) == (INTVAL (operands[4]) - 1)
       && INTVAL (operands[5]) == (INTVAL (operands[6]) - 1)))))
            return -1;
          return 3657; /* avx512dq_shuf_i64x2_1_mask */

        default:
          return -1;
        }

    case 2:
      x7 = XVECEXP (x6, 0, 0);
      if (GET_CODE (x7) != CONST_INT)
        return -1;
      x8 = XVECEXP (x6, 0, 1);
      if (GET_CODE (x8) == CONST_INT)
        {
          res = recog_92 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      operands[3] = x7;
      if (!const_0_to_1_operand (operands[3], VOIDmode)
          || pattern503 (x2, V2DFmode, V4DFmode) != 0)
        return -1;
      operands[4] = x8;
      if (!const_2_to_3_operand (operands[4], VOIDmode))
        return -1;
      x24 = XEXP (x2, 1);
      operands[5] = x24;
      if (!vector_move_operand (operands[5], V2DFmode))
        return -1;
      x25 = XEXP (x2, 2);
      operands[6] = x25;
      if (!register_operand (operands[6], QImode)
          || !
#line 8535 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
        return -1;
      return 2739; /* sse2_shufpd_v2df_mask */

    case 64:
      return recog_93 (x1, insn, pnum_clobbers);

    case 32:
      if (pattern333 (x6) != 0)
        return -1;
      x9 = XEXP (x4, 1);
      operands[2] = x9;
      x24 = XEXP (x2, 1);
      operands[3] = x24;
      x25 = XEXP (x2, 2);
      operands[4] = x25;
      if (!register_operand (operands[4], SImode))
        return -1;
      x7 = XVECEXP (x6, 0, 0);
      switch (XWINT (x7, 0))
        {
        case 8LL:
          x8 = XVECEXP (x6, 0, 1);
          if (XWINT (x8, 0) != 40LL)
            return -1;
          x10 = XVECEXP (x6, 0, 2);
          if (XWINT (x10, 0) != 9LL)
            return -1;
          x11 = XVECEXP (x6, 0, 3);
          if (XWINT (x11, 0) != 41LL)
            return -1;
          x12 = XVECEXP (x6, 0, 4);
          if (XWINT (x12, 0) != 10LL)
            return -1;
          x13 = XVECEXP (x6, 0, 5);
          if (XWINT (x13, 0) != 42LL)
            return -1;
          x14 = XVECEXP (x6, 0, 6);
          if (XWINT (x14, 0) != 11LL)
            return -1;
          x15 = XVECEXP (x6, 0, 7);
          if (XWINT (x15, 0) != 43LL
              || pattern954 (x6) != 0)
            return -1;
          x26 = XVECEXP (x6, 0, 16);
          if (XWINT (x26, 0) != 24LL)
            return -1;
          x27 = XVECEXP (x6, 0, 17);
          if (XWINT (x27, 0) != 56LL)
            return -1;
          x28 = XVECEXP (x6, 0, 18);
          if (XWINT (x28, 0) != 25LL)
            return -1;
          x29 = XVECEXP (x6, 0, 19);
          if (XWINT (x29, 0) != 57LL)
            return -1;
          x30 = XVECEXP (x6, 0, 20);
          if (XWINT (x30, 0) != 26LL)
            return -1;
          x31 = XVECEXP (x6, 0, 21);
          if (XWINT (x31, 0) != 58LL)
            return -1;
          x32 = XVECEXP (x6, 0, 22);
          if (XWINT (x32, 0) != 27LL)
            return -1;
          x33 = XVECEXP (x6, 0, 23);
          if (XWINT (x33, 0) != 59LL
              || pattern956 (x2, V32QImode, V64QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 11878 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && TARGET_AVX512VL)))
            return -1;
          return 3595; /* avx2_interleave_highv32qi_mask */

        case 0LL:
          x8 = XVECEXP (x6, 0, 1);
          if (XWINT (x8, 0) != 32LL)
            return -1;
          x10 = XVECEXP (x6, 0, 2);
          if (XWINT (x10, 0) != 1LL)
            return -1;
          x11 = XVECEXP (x6, 0, 3);
          if (XWINT (x11, 0) != 33LL)
            return -1;
          x12 = XVECEXP (x6, 0, 4);
          if (XWINT (x12, 0) != 2LL)
            return -1;
          x13 = XVECEXP (x6, 0, 5);
          if (XWINT (x13, 0) != 34LL)
            return -1;
          x14 = XVECEXP (x6, 0, 6);
          if (XWINT (x14, 0) != 3LL)
            return -1;
          x15 = XVECEXP (x6, 0, 7);
          if (XWINT (x15, 0) != 35LL)
            return -1;
          x26 = XVECEXP (x6, 0, 16);
          if (XWINT (x26, 0) != 16LL)
            return -1;
          x27 = XVECEXP (x6, 0, 17);
          if (XWINT (x27, 0) != 48LL)
            return -1;
          x28 = XVECEXP (x6, 0, 18);
          if (XWINT (x28, 0) != 17LL)
            return -1;
          x29 = XVECEXP (x6, 0, 19);
          if (XWINT (x29, 0) != 49LL)
            return -1;
          x30 = XVECEXP (x6, 0, 20);
          if (XWINT (x30, 0) != 18LL)
            return -1;
          x31 = XVECEXP (x6, 0, 21);
          if (XWINT (x31, 0) != 50LL)
            return -1;
          x32 = XVECEXP (x6, 0, 22);
          if (XWINT (x32, 0) != 19LL)
            return -1;
          x33 = XVECEXP (x6, 0, 23);
          if (XWINT (x33, 0) != 51LL)
            return -1;
          x16 = XVECEXP (x6, 0, 8);
          switch (XWINT (x16, 0))
            {
            case 4LL:
              x17 = XVECEXP (x6, 0, 9);
              if (XWINT (x17, 0) != 36LL)
                return -1;
              x18 = XVECEXP (x6, 0, 10);
              if (XWINT (x18, 0) != 5LL)
                return -1;
              x19 = XVECEXP (x6, 0, 11);
              if (XWINT (x19, 0) != 37LL)
                return -1;
              x20 = XVECEXP (x6, 0, 12);
              if (XWINT (x20, 0) != 6LL)
                return -1;
              x21 = XVECEXP (x6, 0, 13);
              if (XWINT (x21, 0) != 38LL)
                return -1;
              x22 = XVECEXP (x6, 0, 14);
              if (XWINT (x22, 0) != 7LL)
                return -1;
              x23 = XVECEXP (x6, 0, 15);
              if (XWINT (x23, 0) != 39LL)
                return -1;
              x34 = XVECEXP (x6, 0, 24);
              if (XWINT (x34, 0) != 20LL)
                return -1;
              x35 = XVECEXP (x6, 0, 25);
              if (XWINT (x35, 0) != 52LL)
                return -1;
              x36 = XVECEXP (x6, 0, 26);
              if (XWINT (x36, 0) != 21LL)
                return -1;
              x37 = XVECEXP (x6, 0, 27);
              if (XWINT (x37, 0) != 53LL)
                return -1;
              x38 = XVECEXP (x6, 0, 28);
              if (XWINT (x38, 0) != 22LL)
                return -1;
              x39 = XVECEXP (x6, 0, 29);
              if (XWINT (x39, 0) != 54LL)
                return -1;
              x40 = XVECEXP (x6, 0, 30);
              if (XWINT (x40, 0) != 23LL)
                return -1;
              x41 = XVECEXP (x6, 0, 31);
              if (XWINT (x41, 0) != 55LL
                  || pattern724 (x2, V32QImode, V64QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 11974 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && TARGET_AVX512VL && TARGET_AVX512BW)))
                return -1;
              return 3601; /* avx2_interleave_lowv32qi_mask */

            case 8LL:
              x17 = XVECEXP (x6, 0, 9);
              if (XWINT (x17, 0) != 40LL)
                return -1;
              x18 = XVECEXP (x6, 0, 10);
              if (XWINT (x18, 0) != 9LL)
                return -1;
              x19 = XVECEXP (x6, 0, 11);
              if (XWINT (x19, 0) != 41LL)
                return -1;
              x20 = XVECEXP (x6, 0, 12);
              if (XWINT (x20, 0) != 10LL)
                return -1;
              x21 = XVECEXP (x6, 0, 13);
              if (XWINT (x21, 0) != 42LL)
                return -1;
              x22 = XVECEXP (x6, 0, 14);
              if (XWINT (x22, 0) != 11LL)
                return -1;
              x23 = XVECEXP (x6, 0, 15);
              if (XWINT (x23, 0) != 43LL)
                return -1;
              x34 = XVECEXP (x6, 0, 24);
              if (XWINT (x34, 0) != 24LL)
                return -1;
              x35 = XVECEXP (x6, 0, 25);
              if (XWINT (x35, 0) != 56LL)
                return -1;
              x36 = XVECEXP (x6, 0, 26);
              if (XWINT (x36, 0) != 25LL)
                return -1;
              x37 = XVECEXP (x6, 0, 27);
              if (XWINT (x37, 0) != 57LL)
                return -1;
              x38 = XVECEXP (x6, 0, 28);
              if (XWINT (x38, 0) != 26LL)
                return -1;
              x39 = XVECEXP (x6, 0, 29);
              if (XWINT (x39, 0) != 58LL)
                return -1;
              x40 = XVECEXP (x6, 0, 30);
              if (XWINT (x40, 0) != 27LL)
                return -1;
              x41 = XVECEXP (x6, 0, 31);
              if (XWINT (x41, 0) != 59LL
                  || pattern724 (x2, V32HImode, V64HImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 12094 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
                return -1;
              return 3611; /* avx512bw_interleave_lowv32hi_mask */

            default:
              return -1;
            }

        case 4LL:
          x8 = XVECEXP (x6, 0, 1);
          if (XWINT (x8, 0) != 36LL)
            return -1;
          x10 = XVECEXP (x6, 0, 2);
          if (XWINT (x10, 0) != 5LL)
            return -1;
          x11 = XVECEXP (x6, 0, 3);
          if (XWINT (x11, 0) != 37LL)
            return -1;
          x12 = XVECEXP (x6, 0, 4);
          if (XWINT (x12, 0) != 6LL)
            return -1;
          x13 = XVECEXP (x6, 0, 5);
          if (XWINT (x13, 0) != 38LL)
            return -1;
          x14 = XVECEXP (x6, 0, 6);
          if (XWINT (x14, 0) != 7LL)
            return -1;
          x15 = XVECEXP (x6, 0, 7);
          if (XWINT (x15, 0) != 39LL
              || pattern954 (x6) != 0)
            return -1;
          x26 = XVECEXP (x6, 0, 16);
          if (XWINT (x26, 0) != 20LL)
            return -1;
          x27 = XVECEXP (x6, 0, 17);
          if (XWINT (x27, 0) != 52LL)
            return -1;
          x28 = XVECEXP (x6, 0, 18);
          if (XWINT (x28, 0) != 21LL)
            return -1;
          x29 = XVECEXP (x6, 0, 19);
          if (XWINT (x29, 0) != 53LL)
            return -1;
          x30 = XVECEXP (x6, 0, 20);
          if (XWINT (x30, 0) != 22LL)
            return -1;
          x31 = XVECEXP (x6, 0, 21);
          if (XWINT (x31, 0) != 54LL)
            return -1;
          x32 = XVECEXP (x6, 0, 22);
          if (XWINT (x32, 0) != 23LL)
            return -1;
          x33 = XVECEXP (x6, 0, 23);
          if (XWINT (x33, 0) != 55LL
              || pattern956 (x2, V32HImode, V64HImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 12026 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return -1;
          return 3605; /* avx512bw_interleave_highv32hi_mask */

        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, 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 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  x6 = XEXP (x5, 1);
  if (GET_CODE (x6) != CONST_VECTOR
      || XVECLEN (x6, 0) != 32
      || GET_MODE (x6) != V32HImode)
    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 + 1])
    return -1;
  x9 = XVECEXP (x6, 0, 2);
  if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x10 = XVECEXP (x6, 0, 3);
  if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x11 = XVECEXP (x6, 0, 4);
  if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x12 = XVECEXP (x6, 0, 5);
  if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x13 = XVECEXP (x6, 0, 6);
  if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x14 = XVECEXP (x6, 0, 7);
  if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x15 = XVECEXP (x6, 0, 8);
  if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x16 = XVECEXP (x6, 0, 9);
  if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x17 = XVECEXP (x6, 0, 10);
  if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x18 = XVECEXP (x6, 0, 11);
  if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x19 = XVECEXP (x6, 0, 12);
  if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x20 = XVECEXP (x6, 0, 13);
  if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x21 = XVECEXP (x6, 0, 14);
  if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x22 = XVECEXP (x6, 0, 15);
  if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x23 = XVECEXP (x6, 0, 16);
  if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x24 = XVECEXP (x6, 0, 17);
  if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x25 = XVECEXP (x6, 0, 18);
  if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x26 = XVECEXP (x6, 0, 19);
  if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x27 = XVECEXP (x6, 0, 20);
  if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x28 = XVECEXP (x6, 0, 21);
  if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x29 = XVECEXP (x6, 0, 22);
  if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x30 = XVECEXP (x6, 0, 23);
  if (x30 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x31 = XVECEXP (x6, 0, 24);
  if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x32 = XVECEXP (x6, 0, 25);
  if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x33 = XVECEXP (x6, 0, 26);
  if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x34 = XVECEXP (x6, 0, 27);
  if (x34 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x35 = XVECEXP (x6, 0, 28);
  if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x36 = XVECEXP (x6, 0, 29);
  if (x36 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x37 = XVECEXP (x6, 0, 30);
  if (x37 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x38 = XVECEXP (x6, 0, 31);
  if (x38 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
      || !register_operand (operands[0], V32HImode)
      || GET_MODE (x2) != V32HImode
      || GET_MODE (x3) != V32HImode
      || GET_MODE (x4) != V32SImode
      || GET_MODE (x5) != V32SImode)
    return -1;
  x39 = XEXP (x5, 0);
  if (GET_MODE (x39) != V32SImode)
    return -1;
  x40 = XEXP (x39, 0);
  if (GET_MODE (x40) != V32SImode)
    return -1;
  x41 = XEXP (x40, 0);
  if (GET_MODE (x41) != V32SImode)
    return -1;
  x42 = XEXP (x40, 1);
  if (GET_MODE (x42) != V32SImode)
    return -1;
  x43 = XEXP (x42, 0);
  operands[2] = x43;
  if (!nonimmediate_operand (operands[2], V32HImode))
    return -1;
  x44 = XEXP (x2, 1);
  operands[3] = x44;
  if (!vector_move_operand (operands[3], V32HImode))
    return -1;
  x45 = XEXP (x2, 2);
  operands[4] = x45;
  if (!register_operand (operands[4], SImode)
      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 14272 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
    return -1;
  return 3773; /* avx512bw_umulhrswv32hi3_mask */
}

static int
recog_106 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case CONST_INT:
    case CONST_WIDE_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:
      x5 = XEXP (x2, 2);
      switch (GET_CODE (x5))
        {
        case CONST_INT:
          operands[3] = x5;
          if (const_int_operand (operands[3], SImode))
            {
              operands[2] = x4;
              x6 = XEXP (x2, 1);
              operands[1] = x6;
              switch (GET_MODE (operands[0]))
                {
                case V4HImode:
                  if (pattern488 (x2, V4HImode, HImode) == 0
                      && 
#line 1170 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
((TARGET_SSE || TARGET_3DNOW_A)
   && ((unsigned) exact_log2 (INTVAL (operands[3]))
       < GET_MODE_NUNITS (V4HImode))))
                    return 1205; /* *mmx_pinsrw */
                  break;

                case V16QImode:
                  if (pattern488 (x2, V16QImode, QImode) == 0
                      && (
#line 12303 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ((unsigned) exact_log2 (INTVAL (operands[3]))
       < GET_MODE_NUNITS (V16QImode))) && 
#line 12287 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1)))
                    return 3628; /* sse4_1_pinsrb */
                  break;

                case V8HImode:
                  if (pattern488 (x2, V8HImode, HImode) == 0
                      && 
#line 12303 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ((unsigned) exact_log2 (INTVAL (operands[3]))
       < GET_MODE_NUNITS (V8HImode))))
                    return 3629; /* sse2_pinsrw */
                  break;

                case V2DImode:
                  if (pattern488 (x2, V2DImode, DImode) == 0
                      && (
#line 12303 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ((unsigned) exact_log2 (INTVAL (operands[3]))
       < GET_MODE_NUNITS (V2DImode))) && 
#line 12289 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && TARGET_64BIT)))
                    return 3631; /* sse4_1_pinsrq */
                  break;

                default:
                  break;
                }
            }
          operands[2] = x4;
          x6 = XEXP (x2, 1);
          operands[1] = x6;
          if (XWINT (x5, 0) == 1LL)
            {
              switch (GET_MODE (operands[0]))
                {
                case V4SImode:
                  if (pattern440 (x2, V4SImode, SImode) == 0
                      && 
#line 6840 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
                    return 2490; /* vec_setv4si_0 */
                  break;

                case V4SFmode:
                  if (pattern440 (x2, V4SFmode, SFmode) == 0
                      && 
#line 6840 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
                    return 2491; /* vec_setv4sf_0 */
                  break;

                default:
                  break;
                }
            }
          operands[3] = x5;
          if (const_int_operand (operands[3], SImode))
            {
              switch (GET_MODE (operands[0]))
                {
                case V4SFmode:
                  if (pattern488 (x2, V4SFmode, SFmode) == 0
                      && 
#line 6878 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1
   && ((unsigned) exact_log2 (INTVAL (operands[3]))
       < GET_MODE_NUNITS (V4SFmode))))
                    return 2492; /* *vec_setv4sf_sse4_1 */
                  break;

                case V4SImode:
                  if (pattern488 (x2, V4SImode, SImode) == 0
                      && (
#line 12303 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ((unsigned) exact_log2 (INTVAL (operands[3]))
       < GET_MODE_NUNITS (V4SImode))) && 
#line 12288 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1)))
                    return 3630; /* sse4_1_pinsrd */
                  break;

                default:
                  break;
                }
            }
          if (!reg_or_0_operand (operands[1], V4SImode)
              || XWINT (x5, 0) != 1LL
              || !register_operand (operands[0], V4SImode)
              || GET_MODE (x2) != V4SImode
              || GET_MODE (x3) != V4SImode
              || !nonimmediate_operand (operands[2], SImode)
              || !
#line 13272 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
            return -1;
          return 3690; /* sse2_loadld */

        case REG:
        case SUBREG:
          operands[3] = x5;
          operands[1] = x4;
          x6 = XEXP (x2, 1);
          operands[2] = x6;
          switch (GET_MODE (operands[0]))
            {
            case V2DFmode:
              if (pattern84 (x2, V2DFmode, DFmode, QImode) != 0)
                return -1;
              if ((
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 8943 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && TARGET_AVX512VL)))
                return 2762; /* vec_dupv2df_mask */
              if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17336 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4264; /* avx512vl_vec_dup_gprv2df_mask */

            case V16SFmode:
              if (pattern74 (x2, V16SFmode, HImode) != 0)
                return -1;
              switch (GET_MODE (operands[1]))
                {
                case V4SFmode:
                  if (!nonimmediate_operand (operands[1], V4SFmode)
                      || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                    return -1;
                  return 4222; /* avx512f_broadcastv16sf_mask */

                case SFmode:
                  if (!nonimmediate_operand (operands[1], SFmode)
                      || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                    return -1;
                  return 4254; /* avx512f_vec_dup_gprv16sf_mask */

                case V8SFmode:
                  if (!nonimmediate_operand (operands[1], V8SFmode)
                      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 17537 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ)))
                    return -1;
                  return 4303; /* avx512dq_broadcastv16sf_mask_1 */

                default:
                  return -1;
                }

            case V16SImode:
              if (pattern74 (x2, V16SImode, HImode) != 0)
                return -1;
              switch (GET_MODE (operands[1]))
                {
                case V4SImode:
                  if (!nonimmediate_operand (operands[1], V4SImode)
                      || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                    return -1;
                  return 4224; /* avx512f_broadcastv16si_mask */

                case SImode:
                  if (!nonimmediate_operand (operands[1], SImode)
                      || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                    return -1;
                  return 4242; /* avx512f_vec_dup_gprv16si_mask */

                case V8SImode:
                  if (!nonimmediate_operand (operands[1], V8SImode)
                      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 17537 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ)))
                    return -1;
                  return 4305; /* avx512dq_broadcastv16si_mask_1 */

                default:
                  return -1;
                }

            case V8DFmode:
              if (pattern74 (x2, V8DFmode, QImode) != 0)
                return -1;
              switch (GET_MODE (operands[1]))
                {
                case V4DFmode:
                  if (!nonimmediate_operand (operands[1], V4DFmode)
                      || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                    return -1;
                  return 4226; /* avx512f_broadcastv8df_mask */

                case DFmode:
                  if (!nonimmediate_operand (operands[1], DFmode)
                      || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                    return -1;
                  return 4260; /* avx512f_vec_dup_gprv8df_mask */

                case V2DFmode:
                  if (!nonimmediate_operand (operands[1], V2DFmode)
                      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 17554 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ)))
                    return -1;
                  return 4309; /* avx512dq_broadcastv8df_mask_1 */

                default:
                  return -1;
                }

            case V8DImode:
              if (pattern74 (x2, V8DImode, QImode) != 0)
                return -1;
              switch (GET_MODE (operands[1]))
                {
                case V4DImode:
                  if (!nonimmediate_operand (operands[1], V4DImode)
                      || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                    return -1;
                  return 4228; /* avx512f_broadcastv8di_mask */

                case DImode:
                  if (!nonimmediate_operand (operands[1], DImode)
                      || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                    return -1;
                  return 4248; /* avx512f_vec_dup_gprv8di_mask */

                case V2DImode:
                  if (!nonimmediate_operand (operands[1], V2DImode)
                      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 17554 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ)))
                    return -1;
                  return 4307; /* avx512dq_broadcastv8di_mask_1 */

                default:
                  return -1;
                }

            case V64QImode:
              if (pattern84 (x2, V64QImode, QImode, DImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 17324 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
                return -1;
              return 4230; /* avx512bw_vec_dup_gprv64qi_mask */

            case V16QImode:
              if (pattern84 (x2, V16QImode, QImode, HImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17324 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4232; /* avx512vl_vec_dup_gprv16qi_mask */

            case V32QImode:
              if (pattern84 (x2, V32QImode, QImode, SImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17324 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4234; /* avx512vl_vec_dup_gprv32qi_mask */

            case V32HImode:
              if (pattern84 (x2, V32HImode, HImode, SImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 17324 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
                return -1;
              return 4236; /* avx512bw_vec_dup_gprv32hi_mask */

            case V16HImode:
              if (pattern335 (x2, HImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17324 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4238; /* avx512vl_vec_dup_gprv16hi_mask */

            case V8HImode:
              if (pattern84 (x2, V8HImode, HImode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17324 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4240; /* avx512vl_vec_dup_gprv8hi_mask */

            case V8SImode:
              if (pattern74 (x2, V8SImode, QImode) != 0)
                return -1;
              switch (GET_MODE (operands[1]))
                {
                case SImode:
                  if (!nonimmediate_operand (operands[1], SImode)
                      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17336 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 175 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 4244; /* avx512vl_vec_dup_gprv8si_mask */

                case V4SImode:
                  if (!nonimmediate_operand (operands[1], V4SImode)
                      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 17524 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                    return -1;
                  return 4299; /* avx512vl_broadcastv8si_mask_1 */

                default:
                  return -1;
                }

            case V4SImode:
              if (pattern84 (x2, V4SImode, SImode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17336 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 175 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4246; /* avx512vl_vec_dup_gprv4si_mask */

            case V4DImode:
              if (pattern74 (x2, V4DImode, QImode) != 0)
                return -1;
              switch (GET_MODE (operands[1]))
                {
                case DImode:
                  if (!nonimmediate_operand (operands[1], DImode)
                      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17336 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 176 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 4250; /* avx512vl_vec_dup_gprv4di_mask */

                case V2DImode:
                  if (!nonimmediate_operand (operands[1], V2DImode)
                      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17554 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 17548 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 4311; /* avx512dq_broadcastv4di_mask_1 */

                default:
                  return -1;
                }

            case V2DImode:
              if (pattern84 (x2, V2DImode, DImode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17336 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 176 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4252; /* avx512vl_vec_dup_gprv2di_mask */

            case V8SFmode:
              if (pattern74 (x2, V8SFmode, QImode) != 0)
                return -1;
              switch (GET_MODE (operands[1]))
                {
                case SFmode:
                  if (!nonimmediate_operand (operands[1], SFmode)
                      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17336 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 177 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 4256; /* avx512vl_vec_dup_gprv8sf_mask */

                case V4SFmode:
                  if (!nonimmediate_operand (operands[1], V4SFmode)
                      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 17524 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                    return -1;
                  return 4301; /* avx512vl_broadcastv8sf_mask_1 */

                default:
                  return -1;
                }

            case V4SFmode:
              if (pattern84 (x2, V4SFmode, SFmode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17336 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 177 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4258; /* avx512vl_vec_dup_gprv4sf_mask */

            case V4DFmode:
              if (pattern74 (x2, V4DFmode, QImode) != 0)
                return -1;
              switch (GET_MODE (operands[1]))
                {
                case DFmode:
                  if (!nonimmediate_operand (operands[1], DFmode)
                      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17336 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 4262; /* avx512vl_vec_dup_gprv4df_mask */

                case V2DFmode:
                  if (!nonimmediate_operand (operands[1], V2DFmode)
                      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17554 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 17548 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 4313; /* avx512dq_broadcastv4df_mask_1 */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    case FLOAT:
      x5 = XEXP (x2, 2);
      if (GET_CODE (x5) != CONST_INT)
        return -1;
      x7 = XEXP (x4, 0);
      operands[2] = x7;
      x6 = XEXP (x2, 1);
      operands[1] = x6;
      switch (XWINT (x5, 0))
        {
        case 3LL:
          if (pattern369 (x2, V2SFmode, V4SFmode) != 0
              || !nonimmediate_operand (operands[2], V2SImode)
              || !register_operand (operands[1], V4SFmode)
              || !
#line 4211 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
            return -1;
          return 2133; /* sse_cvtpi2ps */

        case 1LL:
          switch (GET_MODE (operands[0]))
            {
            case V4SFmode:
              switch (pattern441 (x2, V4SFmode, SFmode))
                {
                case 0:
                  if (!
#line 4247 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
                    return -1;
                  return 2136; /* sse_cvtsi2ss */

                case 1:
                  if (!
#line 4269 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && TARGET_64BIT))
                    return -1;
                  return 2138; /* sse_cvtsi2ssq */

                default:
                  return -1;
                }

            case V2DFmode:
              switch (pattern441 (x2, V2DFmode, DFmode))
                {
                case 0:
                  if (!
#line 4643 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))
                    return -1;
                  return 2228; /* sse2_cvtsi2sd */

                case 1:
                  if (!
#line 4665 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && TARGET_64BIT))
                    return -1;
                  return 2229; /* sse2_cvtsi2sdq */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    case UNSIGNED_FLOAT:
      x5 = XEXP (x2, 2);
      if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x7 = XEXP (x4, 0);
      operands[2] = x7;
      x6 = XEXP (x2, 1);
      operands[1] = x6;
      switch (GET_MODE (operands[0]))
        {
        case V4SFmode:
          switch (pattern370 (x2, V4SFmode, SFmode))
            {
            case 0:
              if (!
#line 4385 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1))
                return -1;
              return 2150; /* cvtusi2ss32 */

            case 1:
              if (!
#line 4399 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && TARGET_64BIT))
                return -1;
              return 2153; /* cvtusi2ss64 */

            default:
              return -1;
            }

        case V2DFmode:
          switch (pattern370 (x2, V2DFmode, DFmode))
            {
            case 0:
              if (!(
#line 4385 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
                return -1;
              return 2152; /* cvtusi2sd32 */

            case 1:
              if (!(
#line 4399 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && TARGET_64BIT) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
                return -1;
              return 2155; /* cvtusi2sd64 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case FLOAT_TRUNCATE:
      if (GET_MODE (x4) != V2SFmode
          || pattern203 (x2, V4SFmode) != 0)
        return -1;
      x7 = XEXP (x4, 0);
      operands[2] = x7;
      if (!nonimmediate_operand (operands[2], V2DFmode))
        return -1;
      x6 = XEXP (x2, 1);
      operands[1] = x6;
      if (!register_operand (operands[1], V4SFmode)
          || !
#line 5259 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))
        return -1;
      return 2400; /* sse2_cvtsd2ss */

    case VEC_SELECT:
      x8 = XEXP (x4, 1);
      if (GET_CODE (x8) != PARALLEL)
        return -1;
      x7 = XEXP (x4, 0);
      operands[1] = x7;
      x6 = XEXP (x2, 1);
      operands[2] = x6;
      x5 = XEXP (x2, 2);
      operands[3] = x5;
      switch (XVECLEN (x8, 0))
        {
        case 1:
          x9 = XVECEXP (x8, 0, 0);
          if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case V16SImode:
              if (pattern525 (x2, V16SImode, HImode, V4SImode, SImode) != 0
                  || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 4186; /* avx512f_vec_dupv16si_mask */

            case V8SImode:
              if (pattern525 (x2, V8SImode, QImode, V4SImode, SImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17268 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 175 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4188; /* avx512vl_vec_dupv8si_mask */

            case V4SImode:
              if (pattern526 (x2, V4SImode, SImode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17268 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 175 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4190; /* avx512vl_vec_dupv4si_mask */

            case V8DImode:
              if (pattern525 (x2, V8DImode, QImode, V2DImode, DImode) != 0
                  || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 4192; /* avx512f_vec_dupv8di_mask */

            case V4DImode:
              if (pattern525 (x2, V4DImode, QImode, V2DImode, DImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17268 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 176 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4194; /* avx512vl_vec_dupv4di_mask */

            case V2DImode:
              if (pattern526 (x2, V2DImode, DImode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17268 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 176 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4196; /* avx512vl_vec_dupv2di_mask */

            case V16SFmode:
              if (pattern525 (x2, V16SFmode, HImode, V4SFmode, SFmode) != 0
                  || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 4198; /* avx512f_vec_dupv16sf_mask */

            case V8SFmode:
              if (pattern525 (x2, V8SFmode, QImode, V4SFmode, SFmode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17268 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 177 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4200; /* avx512vl_vec_dupv8sf_mask */

            case V4SFmode:
              if (pattern526 (x2, V4SFmode, SFmode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17268 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 177 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4202; /* avx512vl_vec_dupv4sf_mask */

            case V8DFmode:
              if (pattern525 (x2, V8DFmode, QImode, V2DFmode, DFmode) != 0
                  || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 4204; /* avx512f_vec_dupv8df_mask */

            case V4DFmode:
              if (pattern525 (x2, V4DFmode, QImode, V2DFmode, DFmode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17268 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4206; /* avx512vl_vec_dupv4df_mask */

            case V2DFmode:
              if (pattern526 (x2, V2DFmode, DFmode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17268 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4208; /* avx512vl_vec_dupv2df_mask */

            case V64QImode:
              if (pattern525 (x2, V64QImode, DImode, V16QImode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 17290 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
                return -1;
              return 4210; /* avx512bw_vec_dupv64qi_mask */

            case V16QImode:
              if (pattern526 (x2, V16QImode, QImode, HImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17290 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4212; /* avx512vl_vec_dupv16qi_mask */

            case V32QImode:
              if (pattern525 (x2, V32QImode, SImode, V16QImode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17290 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4214; /* avx512vl_vec_dupv32qi_mask */

            case V32HImode:
              if (pattern525 (x2, V32HImode, SImode, V8HImode, HImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 17290 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
                return -1;
              return 4216; /* avx512bw_vec_dupv32hi_mask */

            case V16HImode:
              if (pattern369 (x2, HImode, V16HImode) != 0
                  || !nonimmediate_operand (operands[1], V8HImode)
                  || !vector_move_operand (operands[2], V16HImode)
                  || !register_operand (operands[3], HImode)
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17290 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4218; /* avx512vl_vec_dupv16hi_mask */

            case V8HImode:
              if (pattern526 (x2, V8HImode, HImode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17290 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4220; /* avx512vl_vec_dupv8hi_mask */

            default:
              return -1;
            }

        case 2:
          x9 = XVECEXP (x8, 0, 0);
          if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x10 = XVECEXP (x8, 0, 1);
          if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case V16SImode:
              if (pattern525 (x2, V16SImode, HImode, V4SImode, V2SImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 17513 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ)))
                return -1;
              return 4289; /* avx512dq_broadcastv16si_mask */

            case V8SImode:
              if (pattern525 (x2, V8SImode, QImode, V4SImode, V2SImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17513 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 17497 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4291; /* avx512dq_broadcastv8si_mask */

            case V4SImode:
              if (pattern526 (x2, V4SImode, V2SImode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17513 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 17497 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4293; /* avx512dq_broadcastv4si_mask */

            case V16SFmode:
              if (pattern525 (x2, V16SFmode, HImode, V4SFmode, V2SFmode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 17513 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ)))
                return -1;
              return 4295; /* avx512dq_broadcastv16sf_mask */

            case V8SFmode:
              if (pattern525 (x2, V8SFmode, QImode, V4SFmode, V2SFmode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17513 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 17498 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4297; /* avx512dq_broadcastv8sf_mask */

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_107 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
    case MEM:
      operands[1] = x4;
      x5 = XEXP (x3, 1);
      operands[2] = x5;
      x6 = XEXP (x3, 2);
      switch (GET_CODE (x6))
        {
        case REG:
        case SUBREG:
        case MEM:
          operands[3] = x6;
          switch (pattern378 (x2))
            {
            case 0:
              if (pattern622 (x2, V16SFmode, HImode) != 0
                  || !
#line 3624 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && 1))
                return -1;
              return 1840; /* fma_fmadd_v16sf_maskz_1 */

            case 1:
              if (pattern622 (x2, V8SFmode, QImode) != 0
                  || !(
#line 3624 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (32 == 64 || TARGET_AVX512VL) && 1) && 
#line 3615 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 1843; /* fma_fmadd_v8sf_maskz_1 */

            case 2:
              if (pattern622 (x2, V4SFmode, QImode) != 0
                  || !(
#line 3624 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (16 == 64 || TARGET_AVX512VL) && 1) && 
#line 3615 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 1845; /* fma_fmadd_v4sf_maskz_1 */

            case 3:
              if (pattern622 (x2, V8DFmode, QImode) != 0
                  || !
#line 3624 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && 1))
                return -1;
              return 1849; /* fma_fmadd_v8df_maskz_1 */

            case 4:
              if (pattern622 (x2, V4DFmode, QImode) != 0
                  || !(
#line 3624 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (32 == 64 || TARGET_AVX512VL) && 1) && 
#line 3616 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 1852; /* fma_fmadd_v4df_maskz_1 */

            case 5:
              if (pattern622 (x2, V2DFmode, QImode) != 0
                  || !(
#line 3624 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (16 == 64 || TARGET_AVX512VL) && 1) && 
#line 3616 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 1854; /* fma_fmadd_v2df_maskz_1 */

            case 6:
              if (pattern623 (x2, V4SFmode) != 0
                  || !
#line 4147 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA4))
                return -1;
              return 2125; /* *fma4i_vmfmadd_v4sf */

            case 7:
              if (pattern623 (x2, V2DFmode) != 0
                  || !(
#line 4147 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA4) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
                return -1;
              return 2126; /* *fma4i_vmfmadd_v2df */

            case 8:
              if (pattern565 (x2, V16SFmode, HImode) != 0)
                return -1;
              if (nonimmediate_operand (operands[3], V16SFmode))
                {
                  x7 = XEXP (x2, 1);
                  if (rtx_equal_p (x7, operands[1])
                      && 
#line 3641 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1))
                    return 1855; /* avx512f_fmadd_v16sf_mask */
                }
              if (!register_operand (operands[3], V16SFmode))
                return -1;
              x7 = XEXP (x2, 1);
              if (!rtx_equal_p (x7, operands[3])
                  || !
#line 3658 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 1863; /* avx512f_fmadd_v16sf_mask3 */

            case 9:
              if (pattern565 (x2, V8SFmode, QImode) != 0)
                return -1;
              if (nonimmediate_operand (operands[3], V8SFmode))
                {
                  x7 = XEXP (x2, 1);
                  if (rtx_equal_p (x7, operands[1])
                      && (
#line 3641 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                    return 1857; /* avx512vl_fmadd_v8sf_mask */
                }
              if (!register_operand (operands[3], V8SFmode))
                return -1;
              x7 = XEXP (x2, 1);
              if (!rtx_equal_p (x7, operands[3])
                  || !(
#line 3658 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 1865; /* avx512vl_fmadd_v8sf_mask3 */

            case 10:
              if (pattern565 (x2, V4SFmode, QImode) != 0)
                return -1;
              if (nonimmediate_operand (operands[3], V4SFmode))
                {
                  x7 = XEXP (x2, 1);
                  if (rtx_equal_p (x7, operands[1])
                      && (
#line 3641 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                    return 1858; /* avx512vl_fmadd_v4sf_mask */
                }
              if (!register_operand (operands[3], V4SFmode))
                return -1;
              x7 = XEXP (x2, 1);
              if (!rtx_equal_p (x7, operands[3])
                  || !(
#line 3658 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 1867; /* avx512vl_fmadd_v4sf_mask3 */

            case 11:
              if (pattern565 (x2, V8DFmode, QImode) != 0)
                return -1;
              if (nonimmediate_operand (operands[3], V8DFmode))
                {
                  x7 = XEXP (x2, 1);
                  if (rtx_equal_p (x7, operands[1])
                      && 
#line 3641 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1))
                    return 1859; /* avx512f_fmadd_v8df_mask */
                }
              if (!register_operand (operands[3], V8DFmode))
                return -1;
              x7 = XEXP (x2, 1);
              if (!rtx_equal_p (x7, operands[3])
                  || !
#line 3658 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 1869; /* avx512f_fmadd_v8df_mask3 */

            case 12:
              if (pattern565 (x2, V4DFmode, QImode) != 0)
                return -1;
              if (nonimmediate_operand (operands[3], V4DFmode))
                {
                  x7 = XEXP (x2, 1);
                  if (rtx_equal_p (x7, operands[1])
                      && (
#line 3641 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                    return 1861; /* avx512vl_fmadd_v4df_mask */
                }
              if (!register_operand (operands[3], V4DFmode))
                return -1;
              x7 = XEXP (x2, 1);
              if (!rtx_equal_p (x7, operands[3])
                  || !(
#line 3658 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 1871; /* avx512vl_fmadd_v4df_mask3 */

            case 13:
              if (pattern565 (x2, V2DFmode, QImode) != 0)
                return -1;
              if (nonimmediate_operand (operands[3], V2DFmode))
                {
                  x7 = XEXP (x2, 1);
                  if (rtx_equal_p (x7, operands[1])
                      && (
#line 3641 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                    return 1862; /* avx512vl_fmadd_v2df_mask */
                }
              if (!register_operand (operands[3], V2DFmode))
                return -1;
              x7 = XEXP (x2, 1);
              if (!rtx_equal_p (x7, operands[3])
                  || !(
#line 3658 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 1873; /* avx512vl_fmadd_v2df_mask3 */

            case 14:
              if (pattern624 (x2, V4SFmode) != 0
                  || !
#line 4064 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_AVX512F))
                return -1;
              return 2109; /* *fmai_fmadd_v4sf */

            case 15:
              if (pattern624 (x2, V2DFmode) != 0
                  || !(
#line 4064 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_AVX512F) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
                return -1;
              return 2111; /* *fmai_fmadd_v2df */

            default:
              return -1;
            }

        case NEG:
          x8 = XEXP (x6, 0);
          operands[3] = x8;
          switch (pattern378 (x2))
            {
            case 0:
              if (pattern626 (x2, V16SFmode, HImode) != 0
                  || !
#line 3689 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && 1))
                return -1;
              return 1884; /* fma_fmsub_v16sf_maskz_1 */

            case 1:
              if (pattern626 (x2, V8SFmode, QImode) != 0
                  || !(
#line 3689 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (32 == 64 || TARGET_AVX512VL) && 1) && 
#line 3615 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 1887; /* fma_fmsub_v8sf_maskz_1 */

            case 2:
              if (pattern626 (x2, V4SFmode, QImode) != 0
                  || !(
#line 3689 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (16 == 64 || TARGET_AVX512VL) && 1) && 
#line 3615 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 1889; /* fma_fmsub_v4sf_maskz_1 */

            case 3:
              if (pattern626 (x2, V8DFmode, QImode) != 0
                  || !
#line 3689 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && 1))
                return -1;
              return 1893; /* fma_fmsub_v8df_maskz_1 */

            case 4:
              if (pattern626 (x2, V4DFmode, QImode) != 0
                  || !(
#line 3689 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (32 == 64 || TARGET_AVX512VL) && 1) && 
#line 3616 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 1896; /* fma_fmsub_v4df_maskz_1 */

            case 5:
              if (pattern626 (x2, V2DFmode, QImode) != 0
                  || !(
#line 3689 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (16 == 64 || TARGET_AVX512VL) && 1) && 
#line 3616 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 1898; /* fma_fmsub_v2df_maskz_1 */

            case 6:
              if (pattern628 (x2, V4SFmode) != 0
                  || !
#line 4162 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA4))
                return -1;
              return 2127; /* *fma4i_vmfmsub_v4sf */

            case 7:
              if (pattern628 (x2, V2DFmode) != 0
                  || !(
#line 4162 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA4) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
                return -1;
              return 2128; /* *fma4i_vmfmsub_v2df */

            case 8:
              if (pattern566 (x2, V16SFmode, HImode) != 0)
                return -1;
              if (nonimmediate_operand (operands[3], V16SFmode))
                {
                  x7 = XEXP (x2, 1);
                  if (rtx_equal_p (x7, operands[1])
                      && 
#line 3707 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                    return 1899; /* avx512f_fmsub_v16sf_mask */
                }
              if (!register_operand (operands[3], V16SFmode))
                return -1;
              x7 = XEXP (x2, 1);
              if (!rtx_equal_p (x7, operands[3])
                  || !
#line 3725 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1))
                return -1;
              return 1911; /* avx512f_fmsub_v16sf_mask3 */

            case 9:
              if (pattern566 (x2, V8SFmode, QImode) != 0)
                return -1;
              if (nonimmediate_operand (operands[3], V8SFmode))
                {
                  x7 = XEXP (x2, 1);
                  if (rtx_equal_p (x7, operands[1])
                      && (
#line 3707 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                    return 1901; /* avx512vl_fmsub_v8sf_mask */
                }
              if (!register_operand (operands[3], V8SFmode))
                return -1;
              x7 = XEXP (x2, 1);
              if (!rtx_equal_p (x7, operands[3])
                  || !(
#line 3725 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 1913; /* avx512vl_fmsub_v8sf_mask3 */

            case 10:
              if (pattern566 (x2, V4SFmode, QImode) != 0)
                return -1;
              if (nonimmediate_operand (operands[3], V4SFmode))
                {
                  x7 = XEXP (x2, 1);
                  if (rtx_equal_p (x7, operands[1])
                      && (
#line 3707 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                    return 1903; /* avx512vl_fmsub_v4sf_mask */
                }
              if (!register_operand (operands[3], V4SFmode))
                return -1;
              x7 = XEXP (x2, 1);
              if (!rtx_equal_p (x7, operands[3])
                  || !(
#line 3725 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 1914; /* avx512vl_fmsub_v4sf_mask3 */

            case 11:
              if (pattern566 (x2, V8DFmode, QImode) != 0)
                return -1;
              if (nonimmediate_operand (operands[3], V8DFmode))
                {
                  x7 = XEXP (x2, 1);
                  if (rtx_equal_p (x7, operands[1])
                      && 
#line 3707 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                    return 1905; /* avx512f_fmsub_v8df_mask */
                }
              if (!register_operand (operands[3], V8DFmode))
                return -1;
              x7 = XEXP (x2, 1);
              if (!rtx_equal_p (x7, operands[3])
                  || !
#line 3725 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1))
                return -1;
              return 1915; /* avx512f_fmsub_v8df_mask3 */

            case 12:
              if (pattern566 (x2, V4DFmode, QImode) != 0)
                return -1;
              if (nonimmediate_operand (operands[3], V4DFmode))
                {
                  x7 = XEXP (x2, 1);
                  if (rtx_equal_p (x7, operands[1])
                      && (
#line 3707 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                    return 1907; /* avx512vl_fmsub_v4df_mask */
                }
              if (!register_operand (operands[3], V4DFmode))
                return -1;
              x7 = XEXP (x2, 1);
              if (!rtx_equal_p (x7, operands[3])
                  || !(
#line 3725 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 1917; /* avx512vl_fmsub_v4df_mask3 */

            case 13:
              if (pattern566 (x2, V2DFmode, QImode) != 0)
                return -1;
              if (nonimmediate_operand (operands[3], V2DFmode))
                {
                  x7 = XEXP (x2, 1);
                  if (rtx_equal_p (x7, operands[1])
                      && (
#line 3707 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                    return 1909; /* avx512vl_fmsub_v2df_mask */
                }
              if (!register_operand (operands[3], V2DFmode))
                return -1;
              x7 = XEXP (x2, 1);
              if (!rtx_equal_p (x7, operands[3])
                  || !(
#line 3725 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 1918; /* avx512vl_fmsub_v2df_mask3 */

            case 14:
              if (pattern629 (x2, V4SFmode) != 0
                  || !
#line 4081 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_AVX512F))
                return -1;
              return 2113; /* *fmai_fmsub_v4sf */

            case 15:
              if (pattern629 (x2, V2DFmode) != 0
                  || !(
#line 4081 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_AVX512F) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
                return -1;
              return 2115; /* *fmai_fmsub_v2df */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case NEG:
      return recog_88 (x1, insn, pnum_clobbers);

    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, 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, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case UNSPEC:
      x5 = XEXP (x2, 2);
      if (!register_operand (x5, QImode))
        return -1;
      switch (XVECLEN (x4, 0))
        {
        case 1:
          x6 = XEXP (x3, 1);
          if (pattern216 (x6) != 0
              || pattern369 (x2, V2SImode, V4SImode) != 0)
            return -1;
          x7 = XVECEXP (x4, 0, 0);
          operands[1] = x7;
          x8 = XEXP (x2, 1);
          operands[2] = x8;
          if (!vector_move_operand (operands[2], V4SImode))
            return -1;
          operands[3] = x5;
          switch (XINT (x4, 1))
            {
            case 40:
              if (!vector_operand (operands[1], V2DFmode)
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 5077 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && TARGET_AVX512VL)))
                return -1;
              return 2321; /* sse2_cvtpd2dq_mask */

            case 151:
              if (!nonimmediate_operand (operands[1], V2DFmode)
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 5115 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2331; /* ufix_notruncv2dfv2si2_mask */

            default:
              return -1;
            }

        case 2:
          if (XINT (x4, 1) != 143
              || GET_MODE (x4) != V4HImode
              || pattern381 (x2, V4SFmode, V8HImode) != 0)
            return -1;
          x9 = XVECEXP (x4, 0, 1);
          operands[2] = x9;
          if (!const_0_to_255_operand (operands[2], SImode))
            return -1;
          x6 = XEXP (x3, 1);
          operands[3] = x6;
          if (!const0_operand (operands[3], V4HImode))
            return -1;
          x8 = XEXP (x2, 1);
          operands[4] = x8;
          if (!vector_move_operand (operands[4], V8HImode))
            return -1;
          operands[5] = x5;
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 18606 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
((TARGET_F16C || TARGET_AVX512VL) && TARGET_AVX512VL)))
            return -1;
          return 4583; /* *vcvtps2ph_mask */

        default:
          return -1;
        }

    case UNSIGNED_FIX:
      if (GET_MODE (x4) != V2SImode)
        return -1;
      x6 = XEXP (x3, 1);
      if (pattern216 (x6) != 0
          || !register_operand (operands[0], V4SImode)
          || GET_MODE (x2) != V4SImode
          || GET_MODE (x3) != V4SImode)
        return -1;
      x10 = XEXP (x4, 0);
      operands[1] = x10;
      if (!nonimmediate_operand (operands[1], V2DFmode))
        return -1;
      x8 = XEXP (x2, 1);
      operands[2] = x8;
      if (!vector_move_operand (operands[2], V4SImode))
        return -1;
      x5 = XEXP (x2, 2);
      operands[3] = x5;
      if (!register_operand (operands[3], QImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 5136 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 2341; /* ufix_truncv2dfv2si2_mask */

    case FIX:
      if (GET_MODE (x4) != V2SImode)
        return -1;
      x6 = XEXP (x3, 1);
      if (pattern216 (x6) != 0
          || pattern217 (x2, V4SImode) != 0)
        return -1;
      x8 = XEXP (x2, 1);
      operands[2] = x8;
      if (!vector_move_operand (operands[2], V4SImode))
        return -1;
      x5 = XEXP (x2, 2);
      operands[3] = x5;
      if (!register_operand (operands[3], QImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 5237 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && TARGET_AVX512VL)))
        return -1;
      return 2399; /* sse2_cvttpd2dq_mask */

    case FLOAT_TRUNCATE:
      if (GET_MODE (x4) != V2SFmode
          || pattern217 (x2, V4SFmode) != 0)
        return -1;
      x6 = XEXP (x3, 1);
      operands[2] = x6;
      if (!const0_operand (operands[2], V2SFmode))
        return -1;
      x8 = XEXP (x2, 1);
      operands[3] = x8;
      if (!vector_move_operand (operands[3], V4SFmode))
        return -1;
      x5 = XEXP (x2, 2);
      operands[4] = x5;
      if (!register_operand (operands[4], QImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 5344 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && TARGET_AVX512VL)))
        return -1;
      return 2411; /* *sse2_cvtpd2ps_mask */

    case SS_TRUNCATE:
      switch (pattern133 (x2, SS_TRUNCATE))
        {
        case 0:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11768 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) && 
#line 325 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))))
            return -1;
          return 3575; /* avx512bw_packsswb_mask */

        case 1:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11768 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) && 
#line 325 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))))
            return -1;
          return 3577; /* avx2_packsswb_mask */

        case 2:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 11768 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW)))
            return -1;
          return 3579; /* sse2_packsswb_mask */

        case 3:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11785 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) && 
#line 328 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))))
            return -1;
          return 3581; /* avx512bw_packssdw_mask */

        case 4:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11785 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) && 
#line 328 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))))
            return -1;
          return 3583; /* avx2_packssdw_mask */

        case 5:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 11785 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW)))
            return -1;
          return 3585; /* sse2_packssdw_mask */

        default:
          return -1;
        }

    case US_TRUNCATE:
      switch (pattern133 (x2, US_TRUNCATE))
        {
        case 0:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11802 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) && 
#line 325 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))))
            return -1;
          return 3587; /* avx512bw_packuswb_mask */

        case 1:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11802 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) && 
#line 325 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))))
            return -1;
          return 3589; /* avx2_packuswb_mask */

        case 2:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 11802 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW)))
            return -1;
          return 3591; /* sse2_packuswb_mask */

        case 3:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 14840 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) && 
#line 328 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))))
            return -1;
          return 3859; /* avx512bw_packusdw_mask */

        case 4:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 14840 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) && 
#line 328 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))))
            return -1;
          return 3861; /* avx2_packusdw_mask */

        case 5:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 14840 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW)))
            return -1;
          return 3863; /* sse4_1_packusdw_mask */

        default:
          return -1;
        }

    case REG:
    case SUBREG:
    case MEM:
      operands[2] = x4;
      x6 = XEXP (x3, 1);
      if (GET_CODE (x6) != VEC_SELECT)
        return -1;
      x11 = XEXP (x6, 1);
      if (GET_CODE (x11) != PARALLEL)
        return -1;
      x12 = XEXP (x6, 0);
      operands[1] = x12;
      x8 = XEXP (x2, 1);
      operands[3] = x8;
      x5 = XEXP (x2, 2);
      operands[4] = x5;
      switch (XVECLEN (x11, 0))
        {
        case 8:
          x13 = XVECEXP (x11, 0, 0);
          if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
            return -1;
          x14 = XVECEXP (x11, 0, 1);
          if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
            return -1;
          x15 = XVECEXP (x11, 0, 2);
          if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
            return -1;
          x16 = XVECEXP (x11, 0, 3);
          if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 11])
            return -1;
          x17 = XVECEXP (x11, 0, 4);
          if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
            return -1;
          x18 = XVECEXP (x11, 0, 5);
          if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 13])
            return -1;
          x19 = XVECEXP (x11, 0, 6);
          if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 14])
            return -1;
          x20 = XVECEXP (x11, 0, 7);
          if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 15]
              || !register_operand (operands[4], HImode))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case V16SFmode:
              if (pattern695 (x2, V16SFmode, V8SFmode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 12434 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ)))
                return -1;
              return 3641; /* vec_set_lo_v16sf_mask */

            case V16SImode:
              if (pattern695 (x2, V16SImode, V8SImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 12434 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ)))
                return -1;
              return 3643; /* vec_set_lo_v16si_mask */

            default:
              return -1;
            }

        case 4:
          x13 = XVECEXP (x11, 0, 0);
          if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
            return -1;
          x14 = XVECEXP (x11, 0, 1);
          if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
            return -1;
          x15 = XVECEXP (x11, 0, 2);
          if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
            return -1;
          x16 = XVECEXP (x11, 0, 3);
          if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
              || !register_operand (operands[4], QImode))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case V8DFmode:
              if (pattern695 (x2, V8DFmode, V4DFmode) != 0
                  || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 3649; /* vec_set_lo_v8df_mask */

            case V8DImode:
              if (pattern695 (x2, V8DImode, V4DImode) != 0
                  || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 3651; /* vec_set_lo_v8di_mask */

            case V8SImode:
              if (pattern695 (x2, V8SImode, V4SImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 18201 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
                return -1;
              return 4476; /* vec_set_lo_v8si_mask */

            case V8SFmode:
              if (pattern695 (x2, V8SFmode, V4SFmode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 18201 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
                return -1;
              return 4478; /* vec_set_lo_v8sf_mask */

            default:
              return -1;
            }

        case 2:
          x13 = XVECEXP (x11, 0, 0);
          if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
            return -1;
          x14 = XVECEXP (x11, 0, 1);
          if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 3]
              || !register_operand (operands[4], QImode))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case V4DImode:
              if (pattern695 (x2, V4DImode, V2DImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 18160 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
                return -1;
              return 4468; /* vec_set_lo_v4di_mask */

            case V4DFmode:
              if (pattern695 (x2, V4DFmode, V2DFmode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 18160 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
                return -1;
              return 4470; /* vec_set_lo_v4df_mask */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case VEC_SELECT:
      x21 = XEXP (x4, 1);
      if (GET_CODE (x21) != PARALLEL)
        return -1;
      x10 = XEXP (x4, 0);
      operands[1] = x10;
      x6 = XEXP (x3, 1);
      operands[2] = x6;
      x8 = XEXP (x2, 1);
      operands[3] = x8;
      x5 = XEXP (x2, 2);
      operands[4] = x5;
      switch (XVECLEN (x21, 0))
        {
        case 8:
          if (pattern502 (x21) != 0)
            return -1;
          x22 = XVECEXP (x21, 0, 4);
          if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
            return -1;
          x23 = XVECEXP (x21, 0, 5);
          if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
            return -1;
          x24 = XVECEXP (x21, 0, 6);
          if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
            return -1;
          x25 = XVECEXP (x21, 0, 7);
          if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
              || !register_operand (operands[4], HImode))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case V16SFmode:
              if (pattern672 (x2, V16SFmode, V8SFmode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 12451 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ)))
                return -1;
              return 3645; /* vec_set_hi_v16sf_mask */

            case V16SImode:
              if (pattern672 (x2, V16SImode, V8SImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 12451 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ)))
                return -1;
              return 3647; /* vec_set_hi_v16si_mask */

            default:
              return -1;
            }

        case 4:
          if (pattern502 (x21) != 0
              || !register_operand (operands[4], QImode))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case V8DFmode:
              if (pattern672 (x2, V8DFmode, V4DFmode) != 0
                  || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 3653; /* vec_set_hi_v8df_mask */

            case V8DImode:
              if (pattern672 (x2, V8DImode, V4DImode) != 0
                  || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 3655; /* vec_set_hi_v8di_mask */

            case V8SImode:
              if (pattern672 (x2, V8SImode, V4SImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 18222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
                return -1;
              return 4480; /* vec_set_hi_v8si_mask */

            case V8SFmode:
              if (pattern672 (x2, V8SFmode, V4SFmode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 18222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
                return -1;
              return 4482; /* vec_set_hi_v8sf_mask */

            default:
              return -1;
            }

        case 2:
          x26 = XVECEXP (x21, 0, 0);
          if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x27 = XVECEXP (x21, 0, 1);
          if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
              || !register_operand (operands[4], QImode))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case V4DImode:
              if (pattern672 (x2, V4DImode, V2DImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 18180 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
                return -1;
              return 4472; /* vec_set_hi_v4di_mask */

            case V4DFmode:
              if (pattern672 (x2, V4DFmode, V2DFmode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 18180 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
                return -1;
              return 4474; /* vec_set_hi_v4df_mask */

            default:
              return -1;
            }

        default:
          return -1;
        }

    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, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  operands[1] = x4;
  x5 = XEXP (x3, 1);
  operands[2] = x5;
  x6 = XEXP (x2, 1);
  switch (GET_CODE (x6))
    {
    case CONST_INT:
    case CONST_WIDE_INT:
    case CONST_DOUBLE:
    case CONST_VECTOR:
    case REG:
    case SUBREG:
    case MEM:
      switch (pattern277 (x2))
        {
        case 0:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MINUS, V16SFmode, operands) && (64 == 64 || TARGET_AVX512VL) && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 1397; /* *subv16sf3_mask */

        case 1:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MINUS, V8SFmode, operands) && (32 == 64 || TARGET_AVX512VL) && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 1405; /* *subv8sf3_mask */

        case 2:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MINUS, V4SFmode, operands) && (16 == 64 || TARGET_AVX512VL) && 1)))
            return -1;
          return 1413; /* *subv4sf3_mask */

        case 3:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MINUS, V8DFmode, operands) && (64 == 64 || TARGET_AVX512VL) && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 1421; /* *subv8df3_mask */

        case 4:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MINUS, V4DFmode, operands) && (32 == 64 || TARGET_AVX512VL) && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 1429; /* *subv4df3_mask */

        case 5:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MINUS, V2DFmode, operands) && (16 == 64 || TARGET_AVX512VL) && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
            return -1;
          return 1437; /* *subv2df3_mask */

        case 6:
          if (vector_operand (operands[1], V64QImode)
              && vector_operand (operands[2], V64QImode)
              && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MINUS, V64QImode, operands)) && 
#line 284 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))))
            return 2965; /* *subv64qi3 */
          if (!nonimmediate_operand (operands[1], V64QImode)
              || !nonimmediate_operand (operands[2], V64QImode)
              || !
#line 9832 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW && ix86_binary_operator_ok (MINUS, V64QImode, operands)))
            return -1;
          return 3023; /* *subv64qi3_mask */

        case 7:
          if (vector_operand (operands[1], V32QImode)
              && vector_operand (operands[2], V32QImode)
              && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MINUS, V32QImode, operands)) && 
#line 284 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))))
            return 2969; /* *subv32qi3 */
          if (!nonimmediate_operand (operands[1], V32QImode)
              || !nonimmediate_operand (operands[2], V32QImode)
              || !(
#line 9832 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW && ix86_binary_operator_ok (MINUS, V32QImode, operands)) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3027; /* *subv32qi3_mask */

        case 8:
          if (vector_operand (operands[1], V16QImode)
              && vector_operand (operands[2], V16QImode)
              && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MINUS, V16QImode, operands))))
            return 2973; /* *subv16qi3 */
          if (!nonimmediate_operand (operands[1], V16QImode)
              || !nonimmediate_operand (operands[2], V16QImode)
              || !(
#line 9832 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW && ix86_binary_operator_ok (MINUS, V16QImode, operands)) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3025; /* *subv16qi3_mask */

        case 9:
          if (vector_operand (operands[1], V32HImode)
              && vector_operand (operands[2], V32HImode)
              && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MINUS, V32HImode, operands)) && 
#line 285 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))))
            return 2977; /* *subv32hi3 */
          if (!nonimmediate_operand (operands[1], V32HImode)
              || !nonimmediate_operand (operands[2], V32HImode)
              || !
#line 9832 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW && ix86_binary_operator_ok (MINUS, V32HImode, operands)))
            return -1;
          return 3029; /* *subv32hi3_mask */

        case 10:
          if (vector_operand (operands[1], V16HImode)
              && vector_operand (operands[2], V16HImode)
              && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MINUS, V16HImode, operands)) && 
#line 285 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))))
            return 2981; /* *subv16hi3 */
          if (!nonimmediate_operand (operands[1], V16HImode)
              || !nonimmediate_operand (operands[2], V16HImode)
              || !(
#line 9832 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW && ix86_binary_operator_ok (MINUS, V16HImode, operands)) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3031; /* *subv16hi3_mask */

        case 11:
          if (vector_operand (operands[1], V8HImode)
              && vector_operand (operands[2], V8HImode)
              && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MINUS, V8HImode, operands))))
            return 2985; /* *subv8hi3 */
          if (!nonimmediate_operand (operands[1], V8HImode)
              || !nonimmediate_operand (operands[2], V8HImode)
              || !(
#line 9832 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW && ix86_binary_operator_ok (MINUS, V8HImode, operands)) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3033; /* *subv8hi3_mask */

        case 12:
          if (vector_operand (operands[1], V16SImode)
              && vector_operand (operands[2], V16SImode)
              && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MINUS, V16SImode, operands)) && 
#line 286 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return 2989; /* *subv16si3 */
          if (!nonimmediate_operand (operands[1], V16SImode)
              || !nonimmediate_operand (operands[2], V16SImode)
              || !
#line 9817 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && ix86_binary_operator_ok (MINUS, V16SImode, operands)))
            return -1;
          return 3011; /* *subv16si3_mask */

        case 13:
          if (vector_operand (operands[1], V8SImode)
              && vector_operand (operands[2], V8SImode)
              && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MINUS, V8SImode, operands)) && 
#line 286 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))))
            return 2993; /* *subv8si3 */
          if (!nonimmediate_operand (operands[1], V8SImode)
              || !nonimmediate_operand (operands[2], V8SImode)
              || !(
#line 9817 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && ix86_binary_operator_ok (MINUS, V8SImode, operands)) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3013; /* *subv8si3_mask */

        case 14:
          if (vector_operand (operands[1], V4SImode)
              && vector_operand (operands[2], V4SImode)
              && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MINUS, V4SImode, operands))))
            return 2997; /* *subv4si3 */
          if (!nonimmediate_operand (operands[1], V4SImode)
              || !nonimmediate_operand (operands[2], V4SImode)
              || !(
#line 9817 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && ix86_binary_operator_ok (MINUS, V4SImode, operands)) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3015; /* *subv4si3_mask */

        case 15:
          if (vector_operand (operands[1], V8DImode)
              && vector_operand (operands[2], V8DImode)
              && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MINUS, V8DImode, operands)) && 
#line 287 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return 3001; /* *subv8di3 */
          if (!nonimmediate_operand (operands[1], V8DImode)
              || !nonimmediate_operand (operands[2], V8DImode)
              || !
#line 9817 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && ix86_binary_operator_ok (MINUS, V8DImode, operands)))
            return -1;
          return 3017; /* *subv8di3_mask */

        case 16:
          if (vector_operand (operands[1], V4DImode)
              && vector_operand (operands[2], V4DImode)
              && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MINUS, V4DImode, operands)) && 
#line 287 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))))
            return 3005; /* *subv4di3 */
          if (!nonimmediate_operand (operands[1], V4DImode)
              || !nonimmediate_operand (operands[2], V4DImode)
              || !(
#line 9817 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && ix86_binary_operator_ok (MINUS, V4DImode, operands)) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3019; /* *subv4di3_mask */

        case 17:
          if (vector_operand (operands[1], V2DImode)
              && vector_operand (operands[2], V2DImode)
              && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MINUS, V2DImode, operands))))
            return 3009; /* *subv2di3 */
          if (!nonimmediate_operand (operands[1], V2DImode)
              || !nonimmediate_operand (operands[2], V2DImode)
              || !(
#line 9817 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && ix86_binary_operator_ok (MINUS, V2DImode, operands)) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3021; /* *subv2di3_mask */

        case 18:
          if (!
#line 1687 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
            return -1;
          return 1441; /* sse_vmsubv4sf3 */

        case 19:
          if (!(
#line 1687 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return -1;
          return 1445; /* sse2_vmsubv2df3 */

        default:
          return -1;
        }

    case PLUS:
      x7 = XEXP (x2, 2);
      if (GET_CODE (x7) != CONST_INT)
        return -1;
      x8 = XEXP (x6, 0);
      if (!rtx_equal_p (x8, operands[1]))
        return -1;
      x9 = XEXP (x6, 1);
      if (!rtx_equal_p (x9, operands[2]))
        return -1;
      switch (XWINT (x7, 0))
        {
        case 5LL:
          switch (GET_MODE (operands[0]))
            {
            case V4DFmode:
              if (pattern501 (x2, V4DFmode) != 0
                  || !
#line 2038 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
                return -1;
              return 1637; /* avx_addsubv4df3 */

            case V4SFmode:
              if (pattern500 (x2, V4SFmode) != 0
                  || !
#line 2084 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE3))
                return -1;
              return 1640; /* sse3_addsubv4sf3 */

            default:
              return -1;
            }

        case 1LL:
          if (pattern500 (x2, V2DFmode) != 0
              || !
#line 2052 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE3))
            return -1;
          return 1638; /* sse3_addsubv2df3 */

        case 85LL:
          if (pattern501 (x2, V8SFmode) != 0
              || !
#line 2070 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return -1;
          return 1639; /* avx_addsubv8sf3 */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_110 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  operands[1] = x4;
  x5 = XEXP (x3, 1);
  operands[2] = x5;
  x6 = XEXP (x2, 1);
  switch (GET_CODE (x6))
    {
    case MINUS:
      if (GET_MODE (x6) != V2SFmode
          || pattern203 (x2, V2SFmode) != 0
          || !register_operand (operands[1], V2SFmode)
          || !nonimmediate_operand (operands[2], V2SFmode))
        return -1;
      x7 = XEXP (x6, 0);
      if (!rtx_equal_p (x7, operands[1]))
        return -1;
      x8 = XEXP (x6, 1);
      if (!rtx_equal_p (x8, operands[2])
          || !
#line 450 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_3DNOW_A))
        return -1;
      return 1131; /* mmx_addsubv2sf3 */

    case CONST_INT:
    case CONST_WIDE_INT:
    case CONST_DOUBLE:
    case CONST_VECTOR:
    case REG:
    case SUBREG:
    case MEM:
      switch (pattern277 (x2))
        {
        case 0:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (PLUS, V16SFmode, operands) && (64 == 64 || TARGET_AVX512VL) && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 1393; /* *addv16sf3_mask */

        case 1:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (PLUS, V8SFmode, operands) && (32 == 64 || TARGET_AVX512VL) && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 1401; /* *addv8sf3_mask */

        case 2:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (PLUS, V4SFmode, operands) && (16 == 64 || TARGET_AVX512VL) && 1)))
            return -1;
          return 1409; /* *addv4sf3_mask */

        case 3:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (PLUS, V8DFmode, operands) && (64 == 64 || TARGET_AVX512VL) && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 1417; /* *addv8df3_mask */

        case 4:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (PLUS, V4DFmode, operands) && (32 == 64 || TARGET_AVX512VL) && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 1425; /* *addv4df3_mask */

        case 5:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (PLUS, V2DFmode, operands) && (16 == 64 || TARGET_AVX512VL) && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
            return -1;
          return 1433; /* *addv2df3_mask */

        case 6:
          if (vector_operand (operands[1], V64QImode)
              && vector_operand (operands[2], V64QImode)
              && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (PLUS, V64QImode, operands)) && 
#line 284 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))))
            return 2963; /* *addv64qi3 */
          if (!nonimmediate_operand (operands[1], V64QImode)
              || !nonimmediate_operand (operands[2], V64QImode)
              || !
#line 9832 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW && ix86_binary_operator_ok (PLUS, V64QImode, operands)))
            return -1;
          return 3022; /* *addv64qi3_mask */

        case 7:
          if (vector_operand (operands[1], V32QImode)
              && vector_operand (operands[2], V32QImode)
              && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (PLUS, V32QImode, operands)) && 
#line 284 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))))
            return 2967; /* *addv32qi3 */
          if (!nonimmediate_operand (operands[1], V32QImode)
              || !nonimmediate_operand (operands[2], V32QImode)
              || !(
#line 9832 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW && ix86_binary_operator_ok (PLUS, V32QImode, operands)) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3026; /* *addv32qi3_mask */

        case 8:
          if (vector_operand (operands[1], V16QImode)
              && vector_operand (operands[2], V16QImode)
              && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (PLUS, V16QImode, operands))))
            return 2971; /* *addv16qi3 */
          if (!nonimmediate_operand (operands[1], V16QImode)
              || !nonimmediate_operand (operands[2], V16QImode)
              || !(
#line 9832 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW && ix86_binary_operator_ok (PLUS, V16QImode, operands)) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3024; /* *addv16qi3_mask */

        case 9:
          if (vector_operand (operands[1], V32HImode)
              && vector_operand (operands[2], V32HImode)
              && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (PLUS, V32HImode, operands)) && 
#line 285 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))))
            return 2975; /* *addv32hi3 */
          if (!nonimmediate_operand (operands[1], V32HImode)
              || !nonimmediate_operand (operands[2], V32HImode)
              || !
#line 9832 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW && ix86_binary_operator_ok (PLUS, V32HImode, operands)))
            return -1;
          return 3028; /* *addv32hi3_mask */

        case 10:
          if (vector_operand (operands[1], V16HImode)
              && vector_operand (operands[2], V16HImode)
              && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (PLUS, V16HImode, operands)) && 
#line 285 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))))
            return 2979; /* *addv16hi3 */
          if (!nonimmediate_operand (operands[1], V16HImode)
              || !nonimmediate_operand (operands[2], V16HImode)
              || !(
#line 9832 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW && ix86_binary_operator_ok (PLUS, V16HImode, operands)) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3030; /* *addv16hi3_mask */

        case 11:
          if (vector_operand (operands[1], V8HImode)
              && vector_operand (operands[2], V8HImode)
              && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (PLUS, V8HImode, operands))))
            return 2983; /* *addv8hi3 */
          if (!nonimmediate_operand (operands[1], V8HImode)
              || !nonimmediate_operand (operands[2], V8HImode)
              || !(
#line 9832 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW && ix86_binary_operator_ok (PLUS, V8HImode, operands)) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3032; /* *addv8hi3_mask */

        case 12:
          if (vector_operand (operands[1], V16SImode)
              && vector_operand (operands[2], V16SImode)
              && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (PLUS, V16SImode, operands)) && 
#line 286 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return 2987; /* *addv16si3 */
          if (!nonimmediate_operand (operands[1], V16SImode)
              || !nonimmediate_operand (operands[2], V16SImode)
              || !
#line 9817 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && ix86_binary_operator_ok (PLUS, V16SImode, operands)))
            return -1;
          return 3010; /* *addv16si3_mask */

        case 13:
          if (vector_operand (operands[1], V8SImode)
              && vector_operand (operands[2], V8SImode)
              && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (PLUS, V8SImode, operands)) && 
#line 286 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))))
            return 2991; /* *addv8si3 */
          if (!nonimmediate_operand (operands[1], V8SImode)
              || !nonimmediate_operand (operands[2], V8SImode)
              || !(
#line 9817 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && ix86_binary_operator_ok (PLUS, V8SImode, operands)) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3012; /* *addv8si3_mask */

        case 14:
          if (vector_operand (operands[1], V4SImode)
              && vector_operand (operands[2], V4SImode)
              && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (PLUS, V4SImode, operands))))
            return 2995; /* *addv4si3 */
          if (!nonimmediate_operand (operands[1], V4SImode)
              || !nonimmediate_operand (operands[2], V4SImode)
              || !(
#line 9817 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && ix86_binary_operator_ok (PLUS, V4SImode, operands)) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3014; /* *addv4si3_mask */

        case 15:
          if (vector_operand (operands[1], V8DImode)
              && vector_operand (operands[2], V8DImode)
              && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (PLUS, V8DImode, operands)) && 
#line 287 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return 2999; /* *addv8di3 */
          if (!nonimmediate_operand (operands[1], V8DImode)
              || !nonimmediate_operand (operands[2], V8DImode)
              || !
#line 9817 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && ix86_binary_operator_ok (PLUS, V8DImode, operands)))
            return -1;
          return 3016; /* *addv8di3_mask */

        case 16:
          if (vector_operand (operands[1], V4DImode)
              && vector_operand (operands[2], V4DImode)
              && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (PLUS, V4DImode, operands)) && 
#line 287 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))))
            return 3003; /* *addv4di3 */
          if (!nonimmediate_operand (operands[1], V4DImode)
              || !nonimmediate_operand (operands[2], V4DImode)
              || !(
#line 9817 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && ix86_binary_operator_ok (PLUS, V4DImode, operands)) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3018; /* *addv4di3_mask */

        case 17:
          if (vector_operand (operands[1], V2DImode)
              && vector_operand (operands[2], V2DImode)
              && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 9798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (PLUS, V2DImode, operands))))
            return 3007; /* *addv2di3 */
          if (!nonimmediate_operand (operands[1], V2DImode)
              || !nonimmediate_operand (operands[2], V2DImode)
              || !(
#line 9817 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && ix86_binary_operator_ok (PLUS, V2DImode, operands)) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3020; /* *addv2di3_mask */

        case 18:
          if (!
#line 1687 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
            return -1;
          return 1439; /* sse_vmaddv4sf3 */

        case 19:
          if (!(
#line 1687 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return -1;
          return 1443; /* sse2_vmaddv2df3 */

        default:
          return -1;
        }

    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];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  operands[1] = x4;
  x5 = XEXP (x3, 1);
  operands[2] = x5;
  x6 = XEXP (x2, 1);
  operands[3] = x6;
  x7 = XEXP (x2, 2);
  operands[4] = x7;
  switch (GET_MODE (operands[0]))
    {
    case V16HImode:
      if (pattern65 (x2, V16HImode, HImode) != 0)
        return -1;
      if (nonimmediate_operand (operands[1], V16HImode)
          && nonmemory_operand (operands[2], DImode)
          && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10508 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 416 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))))
        return 3137; /* ashrv16hi3_mask */
      if (!register_operand (operands[1], V16HImode)
          || !nonimmediate_operand (operands[2], V16HImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 18464 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 4521; /* avx512vl_ashrvv16hi_mask */

    case V8HImode:
      if (pattern65 (x2, V8HImode, QImode) != 0)
        return -1;
      if (nonimmediate_operand (operands[1], V8HImode)
          && nonmemory_operand (operands[2], DImode)
          && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10508 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 416 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))))
        return 3139; /* ashrv8hi3_mask */
      if (!register_operand (operands[1], V8HImode)
          || !nonimmediate_operand (operands[2], V8HImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 18464 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 4519; /* avx512vl_ashrvv8hi_mask */

    case V8SImode:
      if (pattern65 (x2, V8SImode, QImode) != 0)
        return -1;
      if (nonimmediate_operand (operands[1], V8SImode)
          && nonmemory_operand (operands[2], DImode)
          && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10508 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return 3141; /* ashrv8si3_mask */
      if (!register_operand (operands[1], V8SImode)
          || !nonimmediate_operand (operands[2], V8SImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 18453 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && (32 == 64 || TARGET_AVX512VL))))
        return -1;
      return 4509; /* avx2_ashrvv8si_mask */

    case V4SImode:
      if (pattern65 (x2, V4SImode, QImode) != 0)
        return -1;
      if (nonimmediate_operand (operands[1], V4SImode)
          && nonmemory_operand (operands[2], DImode)
          && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10508 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return 3143; /* ashrv4si3_mask */
      if (!register_operand (operands[1], V4SImode)
          || !nonimmediate_operand (operands[2], V4SImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 18453 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && (16 == 64 || TARGET_AVX512VL))))
        return -1;
      return 4507; /* avx2_ashrvv4si_mask */

    case V2DImode:
      if (pattern65 (x2, V2DImode, QImode) != 0)
        return -1;
      if (nonimmediate_operand (operands[1], V2DImode)
          && nonmemory_operand (operands[2], DImode)
          && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10522 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return 3145; /* ashrv2di3_mask */
      if (!register_operand (operands[1], V2DImode)
          || !nonimmediate_operand (operands[2], V2DImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 18453 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && (16 == 64 || TARGET_AVX512VL)) && 
#line 347 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 4513; /* avx2_ashrvv2di_mask */

    case V32HImode:
      if (pattern65 (x2, V32HImode, SImode) != 0)
        return -1;
      if (nonimmediate_operand (operands[1], V32HImode)
          && nonmemory_operand (operands[2], DImode)
          && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10536 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 411 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))))
        return 3147; /* ashrv32hi3_mask */
      if (!register_operand (operands[1], V32HImode)
          || !nonimmediate_operand (operands[2], V32HImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 18464 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
        return -1;
      return 4523; /* avx512bw_ashrvv32hi_mask */

    case V4DImode:
      if (pattern65 (x2, V4DImode, QImode) != 0)
        return -1;
      if (nonimmediate_operand (operands[1], V4DImode)
          && nonmemory_operand (operands[2], DImode)
          && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10536 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 412 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return 3149; /* ashrv4di3_mask */
      if (!register_operand (operands[1], V4DImode)
          || !nonimmediate_operand (operands[2], V4DImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 18453 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && (32 == 64 || TARGET_AVX512VL)) && 
#line 347 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 4515; /* avx2_ashrvv4di_mask */

    case V16SImode:
      if (pattern65 (x2, V16SImode, HImode) != 0)
        return -1;
      if (nonimmediate_operand (operands[1], V16SImode)
          && nonmemory_operand (operands[2], DImode)
          && 
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
        return 3151; /* ashrv16si3_mask */
      if (!register_operand (operands[1], V16SImode)
          || !nonimmediate_operand (operands[2], V16SImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 18453 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && (64 == 64 || TARGET_AVX512VL)) && 
#line 346 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
        return -1;
      return 4511; /* avx512f_ashrvv16si_mask */

    case V8DImode:
      if (pattern65 (x2, V8DImode, QImode) != 0)
        return -1;
      if (nonimmediate_operand (operands[1], V8DImode)
          && nonmemory_operand (operands[2], DImode)
          && 
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
        return 3153; /* ashrv8di3_mask */
      if (!register_operand (operands[1], V8DImode)
          || !nonimmediate_operand (operands[2], V8DImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 18453 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && (64 == 64 || TARGET_AVX512VL)) && 
#line 347 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
        return -1;
      return 4517; /* avx512f_ashrvv8di_mask */

    default:
      return -1;
    }
}

static int
recog_112 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  switch (XVECLEN (x3, 0))
    {
    case 1:
      return recog_85 (x1, insn, pnum_clobbers);

    case 2:
      return recog_87 (x1, insn, pnum_clobbers);

    case 3:
      return recog_86 (x1, insn, pnum_clobbers);

    case 4:
      x4 = XVECEXP (x3, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x3, 0, 1);
      operands[2] = x5;
      x6 = XVECEXP (x3, 0, 2);
      operands[3] = x6;
      x7 = XVECEXP (x3, 0, 3);
      operands[4] = x7;
      if (!const_0_to_255_operand (operands[4], SImode))
        return -1;
      switch (XINT (x3, 1))
        {
        case 160:
          x8 = XEXP (x2, 1);
          switch (GET_CODE (x8))
            {
            case CONST_INT:
            case CONST_WIDE_INT:
            case CONST_DOUBLE:
            case CONST_VECTOR:
              operands[5] = x8;
              x9 = XEXP (x2, 2);
              operands[6] = x9;
              switch (GET_MODE (operands[0]))
                {
                case V16SImode:
                  if (pattern669 (x2, V16SImode, HImode) != 0
                      || !
#line 8143 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                    return -1;
                  return 2600; /* avx512f_vternlogv16si_maskz_1 */

                case V8SImode:
                  if (pattern669 (x2, V8SImode, QImode) != 0
                      || !(
#line 8143 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                    return -1;
                  return 2602; /* avx512vl_vternlogv8si_maskz_1 */

                case V4SImode:
                  if (pattern669 (x2, V4SImode, QImode) != 0
                      || !(
#line 8143 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                    return -1;
                  return 2604; /* avx512vl_vternlogv4si_maskz_1 */

                case V8DImode:
                  if (pattern669 (x2, V8DImode, QImode) != 0
                      || !
#line 8143 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                    return -1;
                  return 2606; /* avx512f_vternlogv8di_maskz_1 */

                case V4DImode:
                  if (pattern669 (x2, V4DImode, QImode) != 0
                      || !(
#line 8143 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                    return -1;
                  return 2608; /* avx512vl_vternlogv4di_maskz_1 */

                case V2DImode:
                  if (pattern669 (x2, V2DImode, QImode) != 0
                      || !(
#line 8143 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                    return -1;
                  return 2610; /* avx512vl_vternlogv2di_maskz_1 */

                default:
                  return -1;
                }

            case REG:
            case SUBREG:
              if (!rtx_equal_p (x8, operands[1]))
                return -1;
              x9 = XEXP (x2, 2);
              operands[5] = x9;
              switch (GET_MODE (operands[0]))
                {
                case V16SImode:
                  if (pattern670 (x2, V16SImode, HImode) != 0
                      || !
#line 8160 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                    return -1;
                  return 2611; /* avx512f_vternlogv16si_mask */

                case V8SImode:
                  if (pattern670 (x2, V8SImode, QImode) != 0
                      || !(
#line 8160 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                    return -1;
                  return 2612; /* avx512vl_vternlogv8si_mask */

                case V4SImode:
                  if (pattern670 (x2, V4SImode, QImode) != 0
                      || !(
#line 8160 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                    return -1;
                  return 2613; /* avx512vl_vternlogv4si_mask */

                case V8DImode:
                  if (pattern670 (x2, V8DImode, QImode) != 0
                      || !
#line 8160 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                    return -1;
                  return 2614; /* avx512f_vternlogv8di_mask */

                case V4DImode:
                  if (pattern670 (x2, V4DImode, QImode) != 0
                      || !(
#line 8160 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                    return -1;
                  return 2615; /* avx512vl_vternlogv4di_mask */

                case V2DImode:
                  if (pattern670 (x2, V2DImode, QImode) != 0
                      || !(
#line 8160 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                    return -1;
                  return 2616; /* avx512vl_vternlogv2di_mask */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case 158:
          x8 = XEXP (x2, 1);
          switch (GET_CODE (x8))
            {
            case CONST_INT:
            case CONST_WIDE_INT:
            case CONST_DOUBLE:
            case CONST_VECTOR:
              operands[5] = x8;
              x9 = XEXP (x2, 2);
              operands[6] = x9;
              switch (GET_MODE (operands[0]))
                {
                case V16SFmode:
                  if (pattern671 (x2, V16SFmode, V16SImode, HImode) != 0
                      || !
#line 8256 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                    return -1;
                  return 2659; /* avx512f_fixupimmv16sf_maskz_1 */

                case V8SFmode:
                  if (pattern671 (x2, V8SFmode, V8SImode, QImode) != 0
                      || !(
#line 8256 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                    return -1;
                  return 2663; /* avx512vl_fixupimmv8sf_maskz_1 */

                case V4SFmode:
                  if (pattern671 (x2, V4SFmode, V4SImode, QImode) != 0
                      || !(
#line 8256 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                    return -1;
                  return 2667; /* avx512vl_fixupimmv4sf_maskz_1 */

                case V8DFmode:
                  if (pattern671 (x2, V8DFmode, V8DImode, QImode) != 0
                      || !
#line 8256 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                    return -1;
                  return 2671; /* avx512f_fixupimmv8df_maskz_1 */

                case V4DFmode:
                  if (pattern671 (x2, V4DFmode, V4DImode, QImode) != 0
                      || !(
#line 8256 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                    return -1;
                  return 2675; /* avx512vl_fixupimmv4df_maskz_1 */

                case V2DFmode:
                  if (pattern671 (x2, V2DFmode, V2DImode, QImode) != 0
                      || !(
#line 8256 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                    return -1;
                  return 2679; /* avx512vl_fixupimmv2df_maskz_1 */

                default:
                  return -1;
                }

            case REG:
            case SUBREG:
              if (!rtx_equal_p (x8, operands[1]))
                return -1;
              x9 = XEXP (x2, 2);
              switch (pattern377 (x9))
                {
                case 0:
                  if (pattern693 (x2, V16SImode, V16SFmode, HImode) != 0
                      || !
#line 8272 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                    return -1;
                  return 2681; /* avx512f_fixupimmv16sf_mask */

                case 1:
                  if (pattern693 (x2, V8SImode, V8SFmode, QImode) != 0
                      || !(
#line 8272 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                    return -1;
                  return 2683; /* avx512vl_fixupimmv8sf_mask */

                case 2:
                  if (pattern693 (x2, V4SImode, V4SFmode, QImode) != 0
                      || !(
#line 8272 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                    return -1;
                  return 2685; /* avx512vl_fixupimmv4sf_mask */

                case 3:
                  if (pattern693 (x2, V8DImode, V8DFmode, QImode) != 0
                      || !
#line 8272 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                    return -1;
                  return 2687; /* avx512f_fixupimmv8df_mask */

                case 4:
                  if (pattern693 (x2, V4DImode, V4DFmode, QImode) != 0
                      || !(
#line 8272 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                    return -1;
                  return 2689; /* avx512vl_fixupimmv4df_mask */

                case 5:
                  if (pattern693 (x2, V2DImode, V2DFmode, QImode) != 0
                      || !(
#line 8272 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                    return -1;
                  return 2691; /* avx512vl_fixupimmv2df_mask */

                case 6:
                  if (pattern694 (x2, V4SImode, V4SFmode) != 0
                      || !
#line 8304 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                    return -1;
                  return 2693; /* avx512f_sfixupimmv4sf */

                case 7:
                  if (pattern694 (x2, V2DImode, V2DFmode) != 0
                      || !(
#line 8304 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
                    return -1;
                  return 2697; /* avx512f_sfixupimmv2df */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    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];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 1);
  operands[2] = x4;
  x5 = XEXP (x2, 1);
  operands[3] = x5;
  x6 = XEXP (x2, 2);
  operands[4] = x6;
  x7 = XEXP (x3, 0);
  switch (GET_CODE (x7))
    {
    case NOT:
      x8 = XEXP (x7, 0);
      operands[1] = x8;
      switch (GET_MODE (operands[0]))
        {
        case V8SFmode:
          if (pattern452 (x2, V8SFmode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 3111 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && TARGET_AVX512VL) && 
#line 221 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 1772; /* avx_andnotv8sf3_mask */

        case V4SFmode:
          if (pattern452 (x2, V4SFmode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3111 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && TARGET_AVX512VL)))
            return -1;
          return 1774; /* sse_andnotv4sf3_mask */

        case V4DFmode:
          if (pattern452 (x2, V4DFmode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 3111 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && TARGET_AVX512VL) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 1776; /* avx_andnotv4df3_mask */

        case V2DFmode:
          if (pattern452 (x2, V2DFmode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 3111 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && TARGET_AVX512VL) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
            return -1;
          return 1778; /* sse2_andnotv2df3_mask */

        case V16SFmode:
          if (pattern453 (x2, V16SFmode, HImode) != 0
              || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 1780; /* avx512f_andnotv16sf3_mask */

        case V8DFmode:
          if (pattern453 (x2, V8DFmode, QImode) != 0
              || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 1782; /* avx512f_andnotv8df3_mask */

        case V16SImode:
          if (pattern453 (x2, V16SImode, HImode) != 0
              || !
#line 11471 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 3448; /* *andnotv16si3_mask */

        case V8SImode:
          if (pattern453 (x2, V8SImode, QImode) != 0
              || !(
#line 11471 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3449; /* *andnotv8si3_mask */

        case V4SImode:
          if (pattern453 (x2, V4SImode, QImode) != 0
              || !(
#line 11471 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3450; /* *andnotv4si3_mask */

        case V8DImode:
          if (pattern453 (x2, V8DImode, QImode) != 0
              || !
#line 11471 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 3451; /* *andnotv8di3_mask */

        case V4DImode:
          if (pattern453 (x2, V4DImode, QImode) != 0
              || !(
#line 11471 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3452; /* *andnotv4di3_mask */

        case V2DImode:
          if (pattern453 (x2, V2DImode, QImode) != 0
              || !(
#line 11471 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3453; /* *andnotv2di3_mask */

        default:
          return -1;
        }

    case REG:
    case SUBREG:
    case MEM:
      operands[1] = x7;
      switch (GET_MODE (operands[0]))
        {
        case V8SFmode:
          if (pattern63 (x2, V8SFmode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 3216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && TARGET_AVX512VL
   && ix86_binary_operator_ok (AND, V8SFmode, operands)) && 
#line 221 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 1784; /* *andv8sf3_mask */

        case V4SFmode:
          if (pattern63 (x2, V4SFmode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && TARGET_AVX512VL
   && ix86_binary_operator_ok (AND, V4SFmode, operands))))
            return -1;
          return 1790; /* *andv4sf3_mask */

        case V4DFmode:
          if (pattern63 (x2, V4DFmode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 3216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && TARGET_AVX512VL
   && ix86_binary_operator_ok (AND, V4DFmode, operands)) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 1796; /* *andv4df3_mask */

        case V2DFmode:
          if (pattern63 (x2, V2DFmode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 3216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && TARGET_AVX512VL
   && ix86_binary_operator_ok (AND, V2DFmode, operands)) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
            return -1;
          return 1802; /* *andv2df3_mask */

        case V16SFmode:
          if (pattern64 (x2, V16SFmode, HImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3274 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (AND, V16SFmode, operands))))
            return -1;
          return 1808; /* *andv16sf3_mask */

        case V8DFmode:
          if (pattern64 (x2, V8DFmode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3274 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (AND, V8DFmode, operands))))
            return -1;
          return 1814; /* *andv8df3_mask */

        case V16SImode:
          if (pattern63 (x2, V16SImode, HImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (64 == 64 || TARGET_AVX512VL)
   && ix86_binary_operator_ok (AND, V16SImode, operands)) && 
#line 424 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 3455; /* andv16si3_mask */

        case V8SImode:
          if (pattern63 (x2, V8SImode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (32 == 64 || TARGET_AVX512VL)
   && ix86_binary_operator_ok (AND, V8SImode, operands)) && 
#line 424 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 3461; /* andv8si3_mask */

        case V4SImode:
          if (pattern63 (x2, V4SImode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 11493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (16 == 64 || TARGET_AVX512VL)
   && ix86_binary_operator_ok (AND, V4SImode, operands))))
            return -1;
          return 3467; /* andv4si3_mask */

        case V8DImode:
          if (pattern63 (x2, V8DImode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (64 == 64 || TARGET_AVX512VL)
   && ix86_binary_operator_ok (AND, V8DImode, operands)) && 
#line 425 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 3473; /* andv8di3_mask */

        case V4DImode:
          if (pattern63 (x2, V4DImode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (32 == 64 || TARGET_AVX512VL)
   && ix86_binary_operator_ok (AND, V4DImode, operands)) && 
#line 425 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 3479; /* andv4di3_mask */

        case V2DImode:
          if (pattern63 (x2, V2DImode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 11493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (16 == 64 || TARGET_AVX512VL)
   && ix86_binary_operator_ok (AND, V2DImode, operands))))
            return -1;
          return 3485; /* andv2di3_mask */

        case V64QImode:
          if (pattern63 (x2, V64QImode, DImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11588 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (AND, V64QImode, operands)) && 
#line 428 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 3491; /* *andv64qi3 */

        case V32QImode:
          if (pattern63 (x2, V32QImode, SImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11588 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (AND, V32QImode, operands)) && 
#line 428 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 3497; /* *andv32qi3 */

        case V16QImode:
          if (pattern63 (x2, V16QImode, HImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 11588 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (AND, V16QImode, operands))))
            return -1;
          return 3503; /* *andv16qi3 */

        case V32HImode:
          if (pattern63 (x2, V32HImode, SImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11588 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (AND, V32HImode, operands)) && 
#line 429 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 3509; /* *andv32hi3 */

        case V16HImode:
          if (pattern63 (x2, V16HImode, HImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11588 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (AND, V16HImode, operands)) && 
#line 429 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 3515; /* *andv16hi3 */

        case V8HImode:
          if (pattern63 (x2, V8HImode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 11588 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (AND, V8HImode, operands))))
            return -1;
          return 3521; /* *andv8hi3 */

        default:
          return -1;
        }

    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];
  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);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
      switch (pattern77 (x2))
        {
        case 0:
          if (!
#line 9017 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2777; /* avx512f_truncatev16siv16qi2_mask */

        case 1:
          if (!(
#line 9090 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 9068 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return -1;
          return 2810; /* avx512vl_truncatev16hiv16qi2_mask */

        case 2:
          if (!
#line 9017 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2780; /* avx512f_truncatev16siv16hi2_mask */

        case 3:
          if (!
#line 9017 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2783; /* avx512f_truncatev8div8si2_mask */

        case 4:
          if (!
#line 9017 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2786; /* avx512f_truncatev8div8hi2_mask */

        case 5:
          if (!
#line 9090 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2807; /* avx512vl_truncatev8siv8hi2_mask */

        case 6:
          if (!
#line 9051 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
            return -1;
          return 2792; /* avx512bw_truncatev32hiv32qi2_mask */

        case 7:
          if (!
#line 9090 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2804; /* avx512vl_truncatev4div4si2_mask */

        default:
          return -1;
        }

    case LSHIFTRT:
      x5 = XEXP (x4, 1);
      if (GET_CODE (x5) != CONST_INT)
        return -1;
      x6 = XEXP (x4, 0);
      switch (GET_CODE (x6))
        {
        case MULT:
          if (XWINT (x5, 0) != 16LL)
            return -1;
          x7 = XEXP (x2, 1);
          operands[3] = x7;
          x8 = XEXP (x2, 2);
          operands[4] = x8;
          x9 = XEXP (x6, 0);
          switch (GET_CODE (x9))
            {
            case SIGN_EXTEND:
              switch (pattern505 (x2, SIGN_EXTEND))
                {
                case 0:
                  if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9919 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MULT, V32HImode, operands)
   && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) && 
#line 328 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))))
                    return -1;
                  return 3089; /* *smulv32hi3_highpart_mask */

                case 1:
                  if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9919 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MULT, V16HImode, operands)
   && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) && 
#line 328 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))))
                    return -1;
                  return 3093; /* *smulv16hi3_highpart_mask */

                case 2:
                  if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 9919 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MULT, V8HImode, operands)
   && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW)))
                    return -1;
                  return 3097; /* *smulv8hi3_highpart_mask */

                default:
                  return -1;
                }

            case ZERO_EXTEND:
              switch (pattern505 (x2, ZERO_EXTEND))
                {
                case 0:
                  if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9919 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MULT, V32HImode, operands)
   && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) && 
#line 328 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))))
                    return -1;
                  return 3091; /* *umulv32hi3_highpart_mask */

                case 1:
                  if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9919 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MULT, V16HImode, operands)
   && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) && 
#line 328 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))))
                    return -1;
                  return 3095; /* *umulv16hi3_highpart_mask */

                case 2:
                  if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 9919 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MULT, V8HImode, operands)
   && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW)))
                    return -1;
                  return 3099; /* *umulv8hi3_highpart_mask */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case PLUS:
          if (XWINT (x5, 0) != 1LL)
            return -1;
          x9 = XEXP (x6, 0);
          switch (GET_CODE (x9))
            {
            case PLUS:
              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;
              x14 = XEXP (x6, 1);
              operands[5] = x14;
              x7 = XEXP (x2, 1);
              operands[3] = x7;
              x8 = XEXP (x2, 2);
              operands[4] = x8;
              switch (GET_MODE (operands[0]))
                {
                case V64QImode:
                  if (pattern728 (x2, DImode, V64QImode, V64HImode) != 0
                      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 13740 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
   && ix86_binary_operator_ok (PLUS, V64QImode, operands)) && 
#line 381 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))))
                    return -1;
                  return 3713; /* *avx512bw_uavgv64qi3_mask */

                case V32QImode:
                  if (pattern728 (x2, SImode, V32QImode, V32HImode) != 0
                      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 13740 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
   && ix86_binary_operator_ok (PLUS, V32QImode, operands)) && 
#line 381 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))))
                    return -1;
                  return 3715; /* *avx2_uavgv32qi3_mask */

                case V16QImode:
                  if (pattern728 (x2, HImode, V16QImode, V16HImode) != 0
                      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 13740 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
   && ix86_binary_operator_ok (PLUS, V16QImode, operands))))
                    return -1;
                  return 3717; /* *sse2_uavgv16qi3_mask */

                case V32HImode:
                  if (pattern728 (x2, SImode, V32HImode, V32SImode) != 0
                      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 13740 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
   && ix86_binary_operator_ok (PLUS, V32HImode, operands)) && 
#line 382 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))))
                    return -1;
                  return 3719; /* *avx512bw_uavgv32hi3_mask */

                case V16HImode:
                  if (pattern728 (x2, HImode, V16HImode, V16SImode) != 0
                      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 13740 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
   && ix86_binary_operator_ok (PLUS, V16HImode, operands)) && 
#line 382 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))))
                    return -1;
                  return 3721; /* *avx2_uavgv16hi3_mask */

                case V8HImode:
                  if (pattern728 (x2, QImode, V8HImode, V8SImode) != 0
                      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 13740 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
   && ix86_binary_operator_ok (PLUS, V8HImode, operands))))
                    return -1;
                  return 3723; /* *sse2_uavgv8hi3_mask */

                default:
                  return -1;
                }

            case LSHIFTRT:
              x10 = XEXP (x9, 0);
              if (GET_CODE (x10) != MULT)
                return -1;
              x12 = XEXP (x10, 0);
              if (GET_CODE (x12) != SIGN_EXTEND)
                return -1;
              x15 = XEXP (x10, 1);
              if (GET_CODE (x15) != SIGN_EXTEND)
                return -1;
              x11 = XEXP (x9, 1);
              if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 14])
                return -1;
              x16 = XEXP (x12, 0);
              operands[1] = x16;
              if (nonimmediate_operand (operands[1], V32HImode))
                {
                  res = recog_105 (x1, insn, pnum_clobbers);
                  if (res >= 0)
                    return res;
                }
              x17 = XEXP (x15, 0);
              operands[2] = x17;
              x14 = XEXP (x6, 1);
              operands[3] = x14;
              x7 = XEXP (x2, 1);
              operands[4] = x7;
              x8 = XEXP (x2, 2);
              operands[5] = x8;
              switch (GET_MODE (operands[0]))
                {
                case V32HImode:
                  if (pattern777 (x2, SImode, V32HImode, V32SImode) != 0
                      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 14412 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3 && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
   && ix86_binary_operator_ok (MULT, V32HImode, operands)) && 
#line 328 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))))
                    return -1;
                  return 3777; /* *avx512bw_pmulhrswv32hi3_mask */

                case V16HImode:
                  if (pattern777 (x2, HImode, V16HImode, V16SImode) != 0
                      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 14412 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3 && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
   && ix86_binary_operator_ok (MULT, V16HImode, operands)) && 
#line 328 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))))
                    return -1;
                  return 3779; /* *avx2_pmulhrswv16hi3_mask */

                case V8HImode:
                  if (pattern777 (x2, QImode, V8HImode, V8SImode) != 0
                      || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 14412 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3 && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
   && ix86_binary_operator_ok (MULT, V8HImode, operands))))
                    return -1;
                  return 3781; /* *ssse3_pmulhrswv8hi3_mask */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    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];
  rtx x2, x3, x4, x5, x6;
  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_DOUBLE:
    case CONST_VECTOR:
    case REG:
    case SUBREG:
    case MEM:
      x4 = XEXP (x2, 2);
      switch (GET_CODE (x4))
        {
        case REG:
        case SUBREG:
          return recog_81 (x1, insn, pnum_clobbers);

        case CONST_INT:
          x5 = XEXP (x2, 0);
          operands[2] = x5;
          operands[1] = x3;
          if (XWINT (x4, 0) == 1LL)
            {
              switch (GET_MODE (operands[0]))
                {
                case V4SFmode:
                  if (register_operand (operands[0], V4SFmode)
                      && GET_MODE (x2) == V4SFmode
                      && register_operand (operands[2], V4SFmode)
                      && register_operand (operands[1], V4SFmode)
                      && 
#line 6712 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
                    return 2481; /* sse_movss */
                  break;

                case V2DFmode:
                  if (nonimmediate_operand (operands[0], V2DFmode)
                      && GET_MODE (x2) == V2DFmode
                      && nonimmediate_operand (operands[2], V2DFmode)
                      && nonimmediate_operand (operands[1], V2DFmode)
                      && 
#line 8911 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))
                    return 2760; /* sse2_movsd */
                  break;

                default:
                  break;
                }
            }
          operands[3] = x4;
          switch (GET_MODE (operands[0]))
            {
            case V8SFmode:
              if (pattern442 (x2, V8SFmode) != 0
                  || !(
#line 14741 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1) && 
#line 221 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
                return -1;
              return 3841; /* avx_blendps256 */

            case V4SFmode:
              if (pattern443 (x2, V4SFmode) != 0
                  || !
#line 14741 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1))
                return -1;
              return 3842; /* sse4_1_blendps */

            case V4DFmode:
              if (pattern443 (x2, V4DFmode) != 0
                  || !(
#line 14741 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
                return -1;
              return 3843; /* avx_blendpd256 */

            case V2DFmode:
              if (!register_operand (operands[0], V2DFmode)
                  || GET_MODE (x2) != V2DFmode
                  || !vector_operand (operands[2], V2DFmode)
                  || !register_operand (operands[1], V2DFmode)
                  || !const_0_to_3_operand (operands[3], SImode)
                  || !(
#line 14741 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
                return -1;
              return 3844; /* sse4_1_blendpd */

            case V8HImode:
              if (pattern442 (x2, V8HImode) != 0
                  || !
#line 14877 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1))
                return -1;
              return 3866; /* sse4_1_pblendw */

            case V16HImode:
              if (!register_operand (operands[0], V16HImode)
                  || GET_MODE (x2) != V16HImode
                  || !nonimmediate_operand (operands[2], V16HImode)
                  || !register_operand (operands[1], V16HImode)
                  || !avx2_pblendw_operand (operands[3], SImode)
                  || !
#line 14908 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))
                return -1;
              return 3867; /* *avx2_pblendw */

            case V8SImode:
              if (pattern444 (x2, V8SImode) != 0
                  || !
#line 14925 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))
                return -1;
              return 3868; /* avx2_pblenddv8si */

            case V4SImode:
              if (pattern444 (x2, V4SImode) != 0
                  || !
#line 14925 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))
                return -1;
              return 3869; /* avx2_pblenddv4si */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case VEC_DUPLICATE:
      x5 = XEXP (x2, 0);
      operands[1] = x5;
      x6 = XEXP (x3, 0);
      operands[2] = x6;
      x4 = XEXP (x2, 2);
      operands[3] = x4;
      if (!const_int_operand (operands[3], SImode))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V8DFmode:
          if (pattern445 (x2, V2DFmode, V8DFmode) != 0
              || !(
#line 12378 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 7035 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ)))
            return -1;
          return 3632; /* *avx512dq_vinsertf64x2_1 */

        case V8DImode:
          if (pattern445 (x2, V2DImode, V8DImode) != 0
              || !(
#line 12378 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 7035 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ)))
            return -1;
          return 3634; /* *avx512dq_vinserti64x2_1 */

        case V16SFmode:
          if (pattern445 (x2, V4SFmode, V16SFmode) != 0
              || !
#line 12378 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 3636; /* *avx512f_vinsertf32x4_1 */

        case V16SImode:
          if (pattern445 (x2, V4SImode, V16SImode) != 0
              || !
#line 12378 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 3638; /* *avx512f_vinserti32x4_1 */

        default:
          return -1;
        }

    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];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
    case MEM:
      operands[1] = x4;
      x5 = XEXP (x3, 1);
      operands[2] = x5;
      x6 = XEXP (x2, 2);
      switch (GET_CODE (x6))
        {
        case REG:
        case SUBREG:
          operands[4] = x6;
          x7 = XEXP (x2, 1);
          operands[3] = x7;
          switch (GET_MODE (operands[0]))
            {
            case V16SFmode:
              if (pattern63 (x2, V16SFmode, HImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1709 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MULT, V16SFmode, operands) && (64 == 64 || TARGET_AVX512VL) && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
                return -1;
              return 1449; /* *mulv16sf3_mask */

            case V8SFmode:
              if (pattern63 (x2, V8SFmode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1709 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MULT, V8SFmode, operands) && (32 == 64 || TARGET_AVX512VL) && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
                return -1;
              return 1453; /* *mulv8sf3_mask */

            case V4SFmode:
              if (pattern63 (x2, V4SFmode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 1709 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MULT, V4SFmode, operands) && (16 == 64 || TARGET_AVX512VL) && 1)))
                return -1;
              return 1457; /* *mulv4sf3_mask */

            case V8DFmode:
              if (pattern63 (x2, V8DFmode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1709 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MULT, V8DFmode, operands) && (64 == 64 || TARGET_AVX512VL) && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
                return -1;
              return 1461; /* *mulv8df3_mask */

            case V4DFmode:
              if (pattern63 (x2, V4DFmode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1709 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MULT, V4DFmode, operands) && (32 == 64 || TARGET_AVX512VL) && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
                return -1;
              return 1465; /* *mulv4df3_mask */

            case V2DFmode:
              if (pattern63 (x2, V2DFmode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1709 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MULT, V2DFmode, operands) && (16 == 64 || TARGET_AVX512VL) && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
                return -1;
              return 1469; /* *mulv2df3_mask */

            case V32HImode:
              if (pattern63 (x2, V32HImode, SImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9883 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MULT, V32HImode, operands)
   && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) && 
#line 328 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))))
                return -1;
              return 3083; /* *mulv32hi3_mask */

            case V16HImode:
              if (pattern63 (x2, V16HImode, HImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9883 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MULT, V16HImode, operands)
   && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) && 
#line 328 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))))
                return -1;
              return 3085; /* *mulv16hi3_mask */

            case V8HImode:
              if (pattern63 (x2, V8HImode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 9883 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MULT, V8HImode, operands)
   && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW)))
                return -1;
              return 3087; /* *mulv8hi3_mask */

            case V8DImode:
              if (pattern66 (x2, V8DImode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10316 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && (64 == 64 || TARGET_AVX512VL)) && 
#line 313 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
                return -1;
              return 3121; /* avx512dq_mulv8di3_mask */

            case V4DImode:
              if (pattern66 (x2, V4DImode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10316 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && (32 == 64 || TARGET_AVX512VL)) && 
#line 313 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
                return -1;
              return 3123; /* avx512dq_mulv4di3_mask */

            case V2DImode:
              if (pattern66 (x2, V2DImode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10316 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && (16 == 64 || TARGET_AVX512VL))))
                return -1;
              return 3125; /* avx512dq_mulv2di3_mask */

            case V16SImode:
              if (pattern63 (x2, V16SImode, HImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10349 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && ix86_binary_operator_ok (MULT, V16SImode, operands) && (64 == 64 || TARGET_AVX512VL)) && 
#line 340 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
                return -1;
              return 3127; /* *avx512f_mulv16si3_mask */

            case V8SImode:
              if (pattern63 (x2, V8SImode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10349 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && ix86_binary_operator_ok (MULT, V8SImode, operands) && (32 == 64 || TARGET_AVX512VL)) && 
#line 340 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))))
                return -1;
              return 3129; /* *avx2_mulv8si3_mask */

            case V4SImode:
              if (pattern63 (x2, V4SImode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10349 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && ix86_binary_operator_ok (MULT, V4SImode, operands) && (16 == 64 || TARGET_AVX512VL))))
                return -1;
              return 3131; /* *sse4_1_mulv4si3_mask */

            default:
              return -1;
            }

        case CONST_INT:
          switch (pattern68 (x2))
            {
            case 0:
              if (!
#line 1727 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
                return -1;
              return 1471; /* sse_vmmulv4sf3 */

            case 1:
              if (!(
#line 1727 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
                return -1;
              return 1475; /* sse2_vmmulv2df3 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case ZERO_EXTEND:
      switch (pattern131 (x2, ZERO_EXTEND))
        {
        case 0:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 9968 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (MULT, V16SImode, operands))))
            return -1;
          return 3101; /* *vec_widen_umult_even_v16si_mask */

        case 1:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10005 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && TARGET_AVX512VL
   && ix86_binary_operator_ok (MULT, V8SImode, operands))))
            return -1;
          return 3103; /* *vec_widen_umult_even_v8si_mask */

        case 2:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10037 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && TARGET_AVX512VL
   && ix86_binary_operator_ok (MULT, V4SImode, operands))))
            return -1;
          return 3105; /* *vec_widen_umult_even_v4si_mask */

        default:
          return -1;
        }

    case SIGN_EXTEND:
      switch (pattern131 (x2, SIGN_EXTEND))
        {
        case 0:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10085 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (MULT, V16SImode, operands))))
            return -1;
          return 3107; /* *vec_widen_smult_even_v16si_mask */

        case 1:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10122 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2
   && ix86_binary_operator_ok (MULT, V8SImode, operands))))
            return -1;
          return 3109; /* *vec_widen_smult_even_v8si_mask */

        case 2:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10155 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && TARGET_AVX512VL
   && ix86_binary_operator_ok (MULT, V4SImode, operands))))
            return -1;
          return 3111; /* *sse4_1_mulv2siv2di3_mask */

        default:
          return -1;
        }

    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];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (pattern80 (x2))
    {
    case 0:
      if (nonmemory_operand (operands[2], DImode)
          && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10550 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) && 
#line 399 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))))
        return 3157; /* lshrv32hi3_mask */
      if (!nonimmediate_operand (operands[2], V32HImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 18486 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
        return -1;
      return 4559; /* avx512bw_lshrvv32hi_mask */

    case 1:
      if (nonmemory_operand (operands[2], DImode)
          && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10550 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) && 
#line 399 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))))
        return 3161; /* lshrv16hi3_mask */
      if (!nonimmediate_operand (operands[2], V16HImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 18486 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 4555; /* avx512vl_lshrvv16hi_mask */

    case 2:
      if (nonmemory_operand (operands[2], DImode)
          && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10550 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW)))
        return 3165; /* lshrv8hi3_mask */
      if (!nonimmediate_operand (operands[2], V8HImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 18486 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 4551; /* avx512vl_lshrvv8hi_mask */

    case 3:
      if (nonmemory_operand (operands[2], DImode)
          && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (32 == 64 || TARGET_AVX512VL)) && 
#line 402 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))))
        return 3169; /* lshrv8si3_mask */
      if (!nonimmediate_operand (operands[2], V8SImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 18475 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && (32 == 64 || TARGET_AVX512VL))))
        return -1;
      return 4531; /* avx2_lshrvv8si_mask */

    case 4:
      if (nonmemory_operand (operands[2], DImode)
          && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (16 == 64 || TARGET_AVX512VL))))
        return 3173; /* lshrv4si3_mask */
      if (!nonimmediate_operand (operands[2], V4SImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 18475 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && (16 == 64 || TARGET_AVX512VL))))
        return -1;
      return 4535; /* avx2_lshrvv4si_mask */

    case 5:
      if (nonmemory_operand (operands[2], DImode)
          && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (32 == 64 || TARGET_AVX512VL)) && 
#line 403 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))))
        return 3177; /* lshrv4di3_mask */
      if (!nonimmediate_operand (operands[2], V4DImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 18475 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && (32 == 64 || TARGET_AVX512VL))))
        return -1;
      return 4543; /* avx2_lshrvv4di_mask */

    case 6:
      if (nonmemory_operand (operands[2], DImode)
          && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (16 == 64 || TARGET_AVX512VL))))
        return 3181; /* lshrv2di3_mask */
      if (!nonimmediate_operand (operands[2], V2DImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 18475 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && (16 == 64 || TARGET_AVX512VL))))
        return -1;
      return 4547; /* avx2_lshrvv2di_mask */

    case 7:
      if (nonimmediate_operand (operands[1], V16SImode)
          && nonmemory_operand (operands[2], DImode)
          && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10589 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL))))
        return 3185; /* lshrv16si3_mask */
      if (!register_operand (operands[1], V16SImode)
          || !nonimmediate_operand (operands[2], V16SImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 18475 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && (64 == 64 || TARGET_AVX512VL)) && 
#line 420 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
        return -1;
      return 4527; /* avx512f_lshrvv16si_mask */

    case 8:
      if (nonimmediate_operand (operands[1], V8DImode)
          && nonmemory_operand (operands[2], DImode)
          && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10589 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL))))
        return 3189; /* lshrv8di3_mask */
      if (!register_operand (operands[1], V8DImode)
          || !nonimmediate_operand (operands[2], V8DImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 18475 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && (64 == 64 || TARGET_AVX512VL)) && 
#line 421 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
        return -1;
      return 4539; /* avx512f_lshrvv8di_mask */

    default:
      return -1;
    }
}

static int
recog_118 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (pattern80 (x2))
    {
    case 0:
      if (nonmemory_operand (operands[2], DImode)
          && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10550 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) && 
#line 399 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))))
        return 3155; /* ashlv32hi3_mask */
      if (!nonimmediate_operand (operands[2], V32HImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 18486 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
        return -1;
      return 4557; /* avx512bw_ashlvv32hi_mask */

    case 1:
      if (nonmemory_operand (operands[2], DImode)
          && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10550 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) && 
#line 399 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))))
        return 3159; /* ashlv16hi3_mask */
      if (!nonimmediate_operand (operands[2], V16HImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 18486 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 4553; /* avx512vl_ashlvv16hi_mask */

    case 2:
      if (nonmemory_operand (operands[2], DImode)
          && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10550 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW)))
        return 3163; /* ashlv8hi3_mask */
      if (!nonimmediate_operand (operands[2], V8HImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 18486 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 4549; /* avx512vl_ashlvv8hi_mask */

    case 3:
      if (nonmemory_operand (operands[2], DImode)
          && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (32 == 64 || TARGET_AVX512VL)) && 
#line 402 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))))
        return 3167; /* ashlv8si3_mask */
      if (!nonimmediate_operand (operands[2], V8SImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 18475 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && (32 == 64 || TARGET_AVX512VL))))
        return -1;
      return 4529; /* avx2_ashlvv8si_mask */

    case 4:
      if (nonmemory_operand (operands[2], DImode)
          && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (16 == 64 || TARGET_AVX512VL))))
        return 3171; /* ashlv4si3_mask */
      if (!nonimmediate_operand (operands[2], V4SImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 18475 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && (16 == 64 || TARGET_AVX512VL))))
        return -1;
      return 4533; /* avx2_ashlvv4si_mask */

    case 5:
      if (nonmemory_operand (operands[2], DImode)
          && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (32 == 64 || TARGET_AVX512VL)) && 
#line 403 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))))
        return 3175; /* ashlv4di3_mask */
      if (!nonimmediate_operand (operands[2], V4DImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 18475 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && (32 == 64 || TARGET_AVX512VL))))
        return -1;
      return 4541; /* avx2_ashlvv4di_mask */

    case 6:
      if (nonmemory_operand (operands[2], DImode)
          && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (16 == 64 || TARGET_AVX512VL))))
        return 3179; /* ashlv2di3_mask */
      if (!nonimmediate_operand (operands[2], V2DImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 18475 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && (16 == 64 || TARGET_AVX512VL))))
        return -1;
      return 4545; /* avx2_ashlvv2di_mask */

    case 7:
      if (nonimmediate_operand (operands[1], V16SImode)
          && nonmemory_operand (operands[2], DImode)
          && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10589 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL))))
        return 3183; /* ashlv16si3_mask */
      if (!register_operand (operands[1], V16SImode)
          || !nonimmediate_operand (operands[2], V16SImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 18475 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && (64 == 64 || TARGET_AVX512VL)) && 
#line 420 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
        return -1;
      return 4525; /* avx512f_ashlvv16si_mask */

    case 8:
      if (nonimmediate_operand (operands[1], V8DImode)
          && nonmemory_operand (operands[2], DImode)
          && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10589 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL))))
        return 3187; /* ashlv8di3_mask */
      if (!register_operand (operands[1], V8DImode)
          || !nonimmediate_operand (operands[2], V8DImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 18475 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && (64 == 64 || TARGET_AVX512VL)) && 
#line 421 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
        return -1;
      return 4537; /* avx512f_ashlvv8di_mask */

    default:
      return -1;
    }
}

static int
recog_119 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (pattern69 (x2))
    {
    case 0:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMIN, V16SFmode, operands)
   && (64 == 64 || TARGET_AVX512VL) && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
        return -1;
      return 1555; /* *sminv16sf3_mask */

    case 1:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMIN, V8SFmode, operands)
   && (32 == 64 || TARGET_AVX512VL) && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
        return -1;
      return 1563; /* *sminv8sf3_mask */

    case 2:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMIN, V4SFmode, operands)
   && (16 == 64 || TARGET_AVX512VL) && 1)))
        return -1;
      return 1571; /* *sminv4sf3_mask */

    case 3:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMIN, V8DFmode, operands)
   && (64 == 64 || TARGET_AVX512VL) && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
        return -1;
      return 1579; /* *sminv8df3_mask */

    case 4:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMIN, V4DFmode, operands)
   && (32 == 64 || TARGET_AVX512VL) && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
        return -1;
      return 1587; /* *sminv4df3_mask */

    case 5:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMIN, V2DFmode, operands)
   && (16 == 64 || TARGET_AVX512VL) && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
        return -1;
      return 1595; /* *sminv2df3_mask */

    case 6:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (SMIN, V16SImode, operands))))
        return -1;
      return 3259; /* *avx512f_sminv16si3_mask */

    case 7:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (SMIN, V8SImode, operands)) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 3267; /* *avx512f_sminv8si3_mask */

    case 8:
      if (nonimmediate_operand (operands[1], V4SImode)
          && nonimmediate_operand (operands[2], V4SImode)
          && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (SMIN, V4SImode, operands)) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return 3275; /* *avx512f_sminv4si3_mask */
      if (!vector_operand (operands[1], V4SImode)
          || !vector_operand (operands[2], V4SImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10840 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1
   && (16 == 64 || TARGET_AVX512VL)
   && ix86_binary_operator_ok (SMIN, V4SImode, operands))))
        return -1;
      return 3359; /* *sse4_1_sminv4si3_mask */

    case 9:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (SMIN, V8DImode, operands))))
        return -1;
      return 3283; /* *avx512f_sminv8di3_mask */

    case 10:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (SMIN, V4DImode, operands)) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 3291; /* *avx512f_sminv4di3_mask */

    case 11:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (SMIN, V2DImode, operands)) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 3299; /* *avx512f_sminv2di3_mask */

    case 12:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
        return -1;
      return 3307; /* sminv64qi3_mask */

    case 13:
      if (register_operand (operands[1], V16QImode)
          && nonimmediate_operand (operands[2], V16QImode)
          && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return 3315; /* sminv16qi3_mask */
      if (!vector_operand (operands[1], V16QImode)
          || !vector_operand (operands[2], V16QImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10840 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1
   && (16 == 64 || TARGET_AVX512VL)
   && ix86_binary_operator_ok (SMIN, V16QImode, operands))))
        return -1;
      return 3355; /* *sse4_1_sminv16qi3_mask */

    case 14:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 3323; /* sminv32qi3_mask */

    case 15:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
        return -1;
      return 3331; /* sminv32hi3_mask */

    case 16:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 3339; /* sminv16hi3_mask */

    case 17:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 3347; /* sminv8hi3_mask */

    case 18:
      if (!
#line 2020 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
        return -1;
      return 1631; /* sse_vmsminv4sf3 */

    case 19:
      if (!(
#line 2020 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
        return -1;
      return 1635; /* sse2_vmsminv2df3 */

    default:
      return -1;
    }
}

static int
recog_120 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (pattern69 (x2))
    {
    case 0:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMAX, V16SFmode, operands)
   && (64 == 64 || TARGET_AVX512VL) && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
        return -1;
      return 1551; /* *smaxv16sf3_mask */

    case 1:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMAX, V8SFmode, operands)
   && (32 == 64 || TARGET_AVX512VL) && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
        return -1;
      return 1559; /* *smaxv8sf3_mask */

    case 2:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMAX, V4SFmode, operands)
   && (16 == 64 || TARGET_AVX512VL) && 1)))
        return -1;
      return 1567; /* *smaxv4sf3_mask */

    case 3:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMAX, V8DFmode, operands)
   && (64 == 64 || TARGET_AVX512VL) && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
        return -1;
      return 1575; /* *smaxv8df3_mask */

    case 4:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMAX, V4DFmode, operands)
   && (32 == 64 || TARGET_AVX512VL) && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
        return -1;
      return 1583; /* *smaxv4df3_mask */

    case 5:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMAX, V2DFmode, operands)
   && (16 == 64 || TARGET_AVX512VL) && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
        return -1;
      return 1591; /* *smaxv2df3_mask */

    case 6:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (SMAX, V16SImode, operands))))
        return -1;
      return 3257; /* *avx512f_smaxv16si3_mask */

    case 7:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (SMAX, V8SImode, operands)) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 3265; /* *avx512f_smaxv8si3_mask */

    case 8:
      if (nonimmediate_operand (operands[1], V4SImode)
          && nonimmediate_operand (operands[2], V4SImode)
          && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (SMAX, V4SImode, operands)) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return 3273; /* *avx512f_smaxv4si3_mask */
      if (!vector_operand (operands[1], V4SImode)
          || !vector_operand (operands[2], V4SImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10840 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1
   && (16 == 64 || TARGET_AVX512VL)
   && ix86_binary_operator_ok (SMAX, V4SImode, operands))))
        return -1;
      return 3357; /* *sse4_1_smaxv4si3_mask */

    case 9:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (SMAX, V8DImode, operands))))
        return -1;
      return 3281; /* *avx512f_smaxv8di3_mask */

    case 10:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (SMAX, V4DImode, operands)) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 3289; /* *avx512f_smaxv4di3_mask */

    case 11:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (SMAX, V2DImode, operands)) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 3297; /* *avx512f_smaxv2di3_mask */

    case 12:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
        return -1;
      return 3305; /* smaxv64qi3_mask */

    case 13:
      if (register_operand (operands[1], V16QImode)
          && nonimmediate_operand (operands[2], V16QImode)
          && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return 3313; /* smaxv16qi3_mask */
      if (!vector_operand (operands[1], V16QImode)
          || !vector_operand (operands[2], V16QImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10840 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1
   && (16 == 64 || TARGET_AVX512VL)
   && ix86_binary_operator_ok (SMAX, V16QImode, operands))))
        return -1;
      return 3353; /* *sse4_1_smaxv16qi3_mask */

    case 14:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 3321; /* smaxv32qi3_mask */

    case 15:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
        return -1;
      return 3329; /* smaxv32hi3_mask */

    case 16:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 3337; /* smaxv16hi3_mask */

    case 17:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 3345; /* smaxv8hi3_mask */

    case 18:
      if (!
#line 2020 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
        return -1;
      return 1629; /* sse_vmsmaxv4sf3 */

    case 19:
      if (!(
#line 2020 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
        return -1;
      return 1633; /* sse2_vmsmaxv2df3 */

    default:
      return -1;
    }
}

static int
recog_121 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case UNSPEC:
      if (XVECLEN (x4, 0) != 4
          || XINT (x4, 1) != 158)
        return -1;
      x5 = XEXP (x3, 2);
      if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x6 = XVECEXP (x4, 0, 0);
      operands[1] = x6;
      x7 = XVECEXP (x4, 0, 1);
      operands[2] = x7;
      x8 = XVECEXP (x4, 0, 2);
      operands[3] = x8;
      x9 = XVECEXP (x4, 0, 3);
      operands[4] = x9;
      if (!const_0_to_255_operand (operands[4], SImode))
        return -1;
      x10 = XEXP (x2, 2);
      if (!register_operand (x10, QImode))
        return -1;
      x11 = XEXP (x3, 1);
      if (!rtx_equal_p (x11, operands[1]))
        return -1;
      x12 = XEXP (x2, 1);
      switch (GET_CODE (x12))
        {
        case CONST_INT:
        case CONST_WIDE_INT:
        case CONST_DOUBLE:
        case CONST_VECTOR:
          operands[5] = x12;
          operands[6] = x10;
          switch (GET_MODE (operands[0]))
            {
            case V4SFmode:
              if (pattern775 (x2, V4SFmode, V4SImode) != 0
                  || !
#line 8304 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 2695; /* avx512f_sfixupimmv4sf_maskz_1 */

            case V2DFmode:
              if (pattern775 (x2, V2DFmode, V2DImode) != 0
                  || !(
#line 8304 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
                return -1;
              return 2699; /* avx512f_sfixupimmv2df_maskz_1 */

            default:
              return -1;
            }

        case REG:
        case SUBREG:
          if (!rtx_equal_p (x12, operands[1]))
            return -1;
          operands[5] = x10;
          switch (GET_MODE (operands[0]))
            {
            case V4SFmode:
              if (pattern776 (x2, V4SImode, V4SFmode) != 0
                  || !
#line 8323 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 2701; /* avx512f_sfixupimmv4sf_mask */

            case V2DFmode:
              if (pattern776 (x2, V2DImode, V2DFmode) != 0
                  || !(
#line 8323 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
                return -1;
              return 2703; /* avx512f_sfixupimmv2df_mask */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case REG:
    case SUBREG:
      operands[1] = x4;
      x11 = XEXP (x3, 1);
      if (GET_CODE (x11) != VEC_DUPLICATE)
        return -1;
      x13 = XEXP (x11, 0);
      operands[2] = x13;
      x5 = XEXP (x3, 2);
      operands[3] = x5;
      if (!const_int_operand (operands[3], SImode))
        return -1;
      x12 = XEXP (x2, 1);
      operands[4] = x12;
      x10 = XEXP (x2, 2);
      operands[5] = x10;
      switch (GET_MODE (operands[0]))
        {
        case V8DFmode:
          if (pattern572 (x2, V8DFmode, V2DFmode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 12378 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 7035 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ))))
            return -1;
          return 3633; /* avx512dq_vinsertf64x2_1_mask */

        case V8DImode:
          if (pattern572 (x2, V8DImode, V2DImode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 12378 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 7035 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ))))
            return -1;
          return 3635; /* avx512dq_vinserti64x2_1_mask */

        case V16SFmode:
          if (pattern572 (x2, V16SFmode, V4SFmode, HImode) != 0
              || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 3637; /* avx512f_vinsertf32x4_1_mask */

        case V16SImode:
          if (pattern572 (x2, V16SImode, V4SImode, HImode) != 0
              || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 3639; /* avx512f_vinserti32x4_1_mask */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_122 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) != PARALLEL)
    return -1;
  x5 = XEXP (x3, 0);
  switch (GET_CODE (x5))
    {
    case VEC_CONCAT:
      return recog_104 (x1, insn, pnum_clobbers);

    case REG:
    case SUBREG:
    case MEM:
      operands[1] = x5;
      switch (XVECLEN (x4, 0))
        {
        case 2:
          res = recog_95 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

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

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

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

        default:
          break;
        }
      if (XVECLEN (x4, 0) < 1)
        return -1;
      operands[2] = x4;
      x6 = XVECEXP (x4, 0, 0);
      operands[3] = x6;
      if (!const_int_operand (operands[3], VOIDmode))
        return -1;
      x7 = XEXP (x2, 1);
      operands[4] = x7;
      x8 = XEXP (x2, 2);
      operands[5] = x8;
      switch (GET_MODE (operands[0]))
        {
        case V16SFmode:
          if (pattern637 (x2, V16SFmode, HImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17709 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && (64 == 64 || TARGET_AVX512VL)
   && avx_vpermilp_parallel (operands[2], V16SFmode)) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 4324; /* *avx512f_vpermilpv16sf_mask */

        case V8SFmode:
          if (pattern637 (x2, V8SFmode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17709 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && (32 == 64 || TARGET_AVX512VL)
   && avx_vpermilp_parallel (operands[2], V8SFmode)) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 4326; /* *avx_vpermilpv8sf_mask */

        case V4SFmode:
          if (pattern637 (x2, V4SFmode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 17709 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && (16 == 64 || TARGET_AVX512VL)
   && avx_vpermilp_parallel (operands[2], V4SFmode))))
            return -1;
          return 4328; /* *avx_vpermilpv4sf_mask */

        case V8DFmode:
          if (pattern637 (x2, V8DFmode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17709 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && (64 == 64 || TARGET_AVX512VL)
   && avx_vpermilp_parallel (operands[2], V8DFmode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 4330; /* *avx512f_vpermilpv8df_mask */

        case V4DFmode:
          if (pattern637 (x2, V4DFmode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17709 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && (32 == 64 || TARGET_AVX512VL)
   && avx_vpermilp_parallel (operands[2], V4DFmode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 4332; /* *avx_vpermilpv4df_mask */

        case V2DFmode:
          if (pattern637 (x2, V2DFmode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 17709 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && (16 == 64 || TARGET_AVX512VL)
   && avx_vpermilp_parallel (operands[2], V2DFmode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
            return -1;
          return 4334; /* *avx_vpermilpv2df_mask */

        default:
          return -1;
        }

    case UNSPEC:
      if (XVECLEN (x5, 0) != 1
          || XINT (x5, 1) != 142
          || GET_MODE (x5) != V8SFmode
          || XVECLEN (x4, 0) != 4
          || pattern276 (x4) != 0
          || pattern381 (x2, V8HImode, V4SFmode) != 0)
        return -1;
      x7 = XEXP (x2, 1);
      operands[2] = x7;
      if (!vector_move_operand (operands[2], V4SFmode))
        return -1;
      x8 = XEXP (x2, 2);
      operands[3] = x8;
      if (!register_operand (operands[3], QImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 18538 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_F16C || TARGET_AVX512VL)))
        return -1;
      return 4573; /* vcvtph2ps_mask */

    default:
      return -1;
    }
}

static int
recog_123 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  operands[2] = x3;
  x4 = XEXP (x2, 1);
  operands[3] = x4;
  x5 = XEXP (x2, 2);
  operands[1] = x5;
  switch (GET_MODE (operands[0]))
    {
    case V64QImode:
      if (pattern332 (x2, V64QImode, DImode) != 0
          || !
#line 5439 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
        return -1;
      return 2432; /* *avx512bw_cvtmask2bv64qi */

    case V16QImode:
      if (pattern332 (x2, V16QImode, HImode) != 0
          || !(
#line 5439 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 2433; /* *avx512vl_cvtmask2bv16qi */

    case V32QImode:
      if (pattern332 (x2, V32QImode, SImode) != 0
          || !(
#line 5439 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 2434; /* *avx512vl_cvtmask2bv32qi */

    case V32HImode:
      if (pattern332 (x2, V32HImode, SImode) != 0
          || !
#line 5439 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
        return -1;
      return 2435; /* *avx512bw_cvtmask2wv32hi */

    case V16HImode:
      if (pattern332 (x2, V16HImode, HImode) != 0
          || !(
#line 5439 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 2436; /* *avx512vl_cvtmask2wv16hi */

    case V8HImode:
      if (pattern332 (x2, V8HImode, QImode) != 0
          || !(
#line 5439 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 2437; /* *avx512vl_cvtmask2wv8hi */

    case V16SImode:
      if (pattern332 (x2, V16SImode, HImode) != 0
          || !
#line 5462 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ))
        return -1;
      return 2438; /* *avx512f_cvtmask2dv16si */

    case V8SImode:
      if (pattern332 (x2, V8SImode, QImode) != 0
          || !(
#line 5462 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 2439; /* *avx512vl_cvtmask2dv8si */

    case V4SImode:
      if (pattern332 (x2, V4SImode, QImode) != 0
          || !(
#line 5462 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 2440; /* *avx512vl_cvtmask2dv4si */

    case V8DImode:
      if (pattern332 (x2, V8DImode, QImode) != 0
          || !
#line 5462 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ))
        return -1;
      return 2441; /* *avx512f_cvtmask2qv8di */

    case V4DImode:
      if (pattern332 (x2, V4DImode, QImode) != 0
          || !(
#line 5462 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 2442; /* *avx512vl_cvtmask2qv4di */

    case V2DImode:
      if (pattern332 (x2, V2DImode, QImode) != 0
          || !(
#line 5462 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 2443; /* *avx512vl_cvtmask2qv2di */

    default:
      return -1;
    }
}

static int
recog_124 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  operands[1] = x4;
  x5 = XEXP (x2, 1);
  operands[2] = x5;
  x6 = XEXP (x2, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[0]))
    {
    case V16SImode:
      if (pattern334 (x2, V16SImode, HImode) != 0
          || !
#line 14602 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 3818; /* absv16si2_mask */

    case V8SImode:
      if (pattern334 (x2, V8SImode, QImode) != 0
          || !(
#line 14602 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 3819; /* absv8si2_mask */

    case V4SImode:
      if (pattern334 (x2, V4SImode, QImode) != 0
          || !(
#line 14602 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 3820; /* absv4si2_mask */

    case V8DImode:
      if (pattern334 (x2, V8DImode, QImode) != 0
          || !
#line 14602 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 3821; /* absv8di2_mask */

    case V4DImode:
      if (pattern334 (x2, V4DImode, QImode) != 0
          || !(
#line 14602 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 3822; /* absv4di2_mask */

    case V2DImode:
      if (pattern334 (x2, V2DImode, QImode) != 0
          || !(
#line 14602 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 3823; /* absv2di2_mask */

    case V64QImode:
      if (pattern334 (x2, V64QImode, DImode) != 0
          || !
#line 14615 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
        return -1;
      return 3824; /* absv64qi2_mask */

    case V16QImode:
      if (pattern334 (x2, V16QImode, HImode) != 0
          || !(
#line 14615 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 3825; /* absv16qi2_mask */

    case V32QImode:
      if (pattern334 (x2, V32QImode, SImode) != 0
          || !(
#line 14615 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 3826; /* absv32qi2_mask */

    case V32HImode:
      if (pattern334 (x2, V32HImode, SImode) != 0
          || !
#line 14615 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
        return -1;
      return 3827; /* absv32hi2_mask */

    case V16HImode:
      if (pattern335 (x2, V16HImode) != 0
          || !(
#line 14615 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 3828; /* absv16hi2_mask */

    case V8HImode:
      if (pattern334 (x2, V8HImode, QImode) != 0
          || !(
#line 14615 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 3829; /* absv8hi2_mask */

    default:
      return -1;
    }
}

static int
recog_125 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case VEC_SELECT:
      if (GET_MODE (x4) != V2SFmode)
        return -1;
      x5 = XEXP (x4, 1);
      if (GET_CODE (x5) != PARALLEL
          || XVECLEN (x5, 0) != 2)
        return -1;
      x6 = XVECEXP (x5, 0, 0);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x7 = XVECEXP (x5, 0, 1);
      if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
          || !register_operand (operands[0], V2DFmode)
          || GET_MODE (x2) != V2DFmode
          || GET_MODE (x3) != V2DFmode)
        return -1;
      x8 = XEXP (x2, 2);
      switch (GET_CODE (x8))
        {
        case CONST_INT:
          if (XWINT (x8, 0) != 1LL)
            return -1;
          x9 = XEXP (x4, 0);
          operands[2] = x9;
          if (!nonimmediate_operand (operands[2], V4SFmode))
            return -1;
          x10 = XEXP (x2, 1);
          operands[1] = x10;
          if (!register_operand (operands[1], V2DFmode)
              || !
#line 5282 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))
            return -1;
          return 2402; /* sse2_cvtss2sd */

        case REG:
        case SUBREG:
          operands[3] = x8;
          if (!register_operand (operands[3], QImode))
            return -1;
          x9 = XEXP (x4, 0);
          operands[1] = x9;
          if (!vector_operand (operands[1], V4SFmode))
            return -1;
          x10 = XEXP (x2, 1);
          operands[2] = x10;
          if (!vector_move_operand (operands[2], V2DFmode)
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 5473 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && TARGET_AVX512VL)))
            return -1;
          return 2445; /* sse2_cvtps2pd_mask */

        default:
          return -1;
        }

    case REG:
    case SUBREG:
    case MEM:
      operands[1] = x4;
      x10 = XEXP (x2, 1);
      operands[2] = x10;
      x8 = XEXP (x2, 2);
      operands[3] = x8;
      if (!register_operand (operands[3], QImode))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V8DFmode:
          if (pattern382 (x2, V8DFmode, V8SFmode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 5367 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && (64 == 64 || TARGET_AVX512VL) && 1) && 
#line 244 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 2414; /* avx512f_cvtps2pd512_mask */

        case V4DFmode:
          if (pattern382 (x2, V4DFmode, V4SFmode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 5367 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && (32 == 64 || TARGET_AVX512VL) && 1)))
            return -1;
          return 2417; /* avx_cvtps2pd256_mask */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_126 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (pattern72 (x2))
    {
    case 0:
      if (pattern73 (x2, V16SFmode, HImode, V16SImode) != 0
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4409 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (64 == 64 || TARGET_AVX512VL) && 1) && 
#line 226 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
        return -1;
      return 2159; /* floatv16siv16sf2_mask */

    case 1:
      if (pattern74 (x2, V8SFmode, QImode) != 0)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case V8SImode:
          if (!vector_operand (operands[1], V8SImode)
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4409 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (32 == 64 || TARGET_AVX512VL) && 1) && 
#line 226 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 2162; /* floatv8siv8sf2_mask */

        case V8DImode:
          if (!nonimmediate_operand (operands[1], V8DImode)
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4917 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1)))
            return -1;
          return 2287; /* floatv8div8sf2_mask */

        default:
          return -1;
        }

    case 2:
      if (pattern74 (x2, V4SFmode, QImode) != 0)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case V4SImode:
          if (!vector_operand (operands[1], V4SImode)
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4409 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (16 == 64 || TARGET_AVX512VL) && 1)))
            return -1;
          return 2164; /* floatv4siv4sf2_mask */

        case V4DImode:
          if (!nonimmediate_operand (operands[1], V4DImode)
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4917 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 233 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 2294; /* floatv4div4sf2_mask */

        default:
          return -1;
        }

    case 3:
      switch (pattern379 (x2, V8DFmode))
        {
        case 0:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4883 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && (64 == 64 || TARGET_AVX512VL)) && 
#line 244 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 2258; /* floatv8siv8df2_mask */

        case 1:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4893 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ)))
            return -1;
          return 2263; /* floatv8div8df2_mask */

        default:
          return -1;
        }

    case 4:
      switch (pattern380 (x2, V4DFmode))
        {
        case 0:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4883 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && (32 == 64 || TARGET_AVX512VL))))
            return -1;
          return 2260; /* floatv4siv4df2_mask */

        case 1:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4893 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 270 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 2271; /* floatv4div4df2_mask */

        default:
          return -1;
        }

    case 5:
      if (pattern84 (x2, V2DFmode, V2DImode, QImode) != 0
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4893 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 270 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 2279; /* floatv2div2df2_mask */

    case 6:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 5021 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && TARGET_AVX512VL)))
        return -1;
      return 2312; /* sse2_cvtdq2pd_mask */

    default:
      return -1;
    }
}

static int
recog_127 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (pattern72 (x2))
    {
    case 0:
      if (pattern84 (x2, V16SFmode, V16SImode, HImode) != 0
          || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
        return -1;
      return 2167; /* ufloatv16siv16sf2_mask */

    case 1:
      switch (pattern379 (x2, V8SFmode))
        {
        case 0:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4422 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 273 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 2171; /* ufloatv8siv8sf2_mask */

        case 1:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4917 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1)))
            return -1;
          return 2291; /* ufloatv8div8sf2_mask */

        default:
          return -1;
        }

    case 2:
      switch (pattern380 (x2, V4SFmode))
        {
        case 0:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4422 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 273 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 2175; /* ufloatv4siv4sf2_mask */

        case 1:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4917 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 233 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 2296; /* ufloatv4div4sf2_mask */

        default:
          return -1;
        }

    case 3:
      if (pattern74 (x2, V8DFmode, QImode) != 0)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case V8DImode:
          if (!nonimmediate_operand (operands[1], V8DImode)
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4893 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ)))
            return -1;
          return 2267; /* ufloatv8div8df2_mask */

        case V8SImode:
          if (!nonimmediate_operand (operands[1], V8SImode)
              || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 2304; /* ufloatv8siv8df2_mask */

        default:
          return -1;
        }

    case 4:
      if (pattern74 (x2, V4DFmode, QImode) != 0)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case V4DImode:
          if (!nonimmediate_operand (operands[1], V4DImode)
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4893 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 270 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 2275; /* ufloatv4div4df2_mask */

        case V4SImode:
          if (!nonimmediate_operand (operands[1], V4SImode)
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4969 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 247 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 2306; /* ufloatv4siv4df2_mask */

        default:
          return -1;
        }

    case 5:
      if (pattern84 (x2, V2DFmode, V2DImode, QImode) != 0
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4893 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 270 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 2283; /* ufloatv2div2df2_mask */

    case 6:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4981 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 2308; /* ufloatv2siv2df2_mask */

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (pattern83 (x2))
    {
    case 0:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (UMIN, V16SImode, operands))))
        return -1;
      return 3263; /* *avx512f_uminv16si3_mask */

    case 1:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (UMIN, V8SImode, operands)) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 3271; /* *avx512f_uminv8si3_mask */

    case 2:
      if (nonimmediate_operand (operands[1], V4SImode)
          && nonimmediate_operand (operands[2], V4SImode)
          && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (UMIN, V4SImode, operands)) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return 3279; /* *avx512f_uminv4si3_mask */
      if (!vector_operand (operands[1], V4SImode)
          || !vector_operand (operands[2], V4SImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10924 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1
   && (16 == 64 || TARGET_AVX512VL)
   && ix86_binary_operator_ok (UMIN, V4SImode, operands))))
        return -1;
      return 3369; /* *sse4_1_uminv4si3_mask */

    case 3:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (UMIN, V8DImode, operands))))
        return -1;
      return 3287; /* *avx512f_uminv8di3_mask */

    case 4:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (UMIN, V4DImode, operands)) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 3295; /* *avx512f_uminv4di3_mask */

    case 5:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (UMIN, V2DImode, operands)) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 3303; /* *avx512f_uminv2di3_mask */

    case 6:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
        return -1;
      return 3311; /* uminv64qi3_mask */

    case 7:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 3319; /* uminv16qi3_mask */

    case 8:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 3327; /* uminv32qi3_mask */

    case 9:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
        return -1;
      return 3335; /* uminv32hi3_mask */

    case 10:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 3343; /* uminv16hi3_mask */

    case 11:
      if (register_operand (operands[1], V8HImode)
          && nonimmediate_operand (operands[2], V8HImode)
          && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return 3351; /* uminv8hi3_mask */
      if (!vector_operand (operands[1], V8HImode)
          || !vector_operand (operands[2], V8HImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10924 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1
   && (16 == 64 || TARGET_AVX512VL)
   && ix86_binary_operator_ok (UMIN, V8HImode, operands))))
        return -1;
      return 3365; /* *sse4_1_uminv8hi3_mask */

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (pattern83 (x2))
    {
    case 0:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (UMAX, V16SImode, operands))))
        return -1;
      return 3261; /* *avx512f_umaxv16si3_mask */

    case 1:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (UMAX, V8SImode, operands)) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 3269; /* *avx512f_umaxv8si3_mask */

    case 2:
      if (nonimmediate_operand (operands[1], V4SImode)
          && nonimmediate_operand (operands[2], V4SImode)
          && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (UMAX, V4SImode, operands)) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return 3277; /* *avx512f_umaxv4si3_mask */
      if (!vector_operand (operands[1], V4SImode)
          || !vector_operand (operands[2], V4SImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10924 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1
   && (16 == 64 || TARGET_AVX512VL)
   && ix86_binary_operator_ok (UMAX, V4SImode, operands))))
        return -1;
      return 3367; /* *sse4_1_umaxv4si3_mask */

    case 3:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (UMAX, V8DImode, operands))))
        return -1;
      return 3285; /* *avx512f_umaxv8di3_mask */

    case 4:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (UMAX, V4DImode, operands)) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 3293; /* *avx512f_umaxv4di3_mask */

    case 5:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (UMAX, V2DImode, operands)) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 3301; /* *avx512f_umaxv2di3_mask */

    case 6:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
        return -1;
      return 3309; /* umaxv64qi3_mask */

    case 7:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 3317; /* umaxv16qi3_mask */

    case 8:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 3325; /* umaxv32qi3_mask */

    case 9:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
        return -1;
      return 3333; /* umaxv32hi3_mask */

    case 10:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 3341; /* umaxv16hi3_mask */

    case 11:
      if (register_operand (operands[1], V8HImode)
          && nonimmediate_operand (operands[2], V8HImode)
          && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return 3349; /* umaxv8hi3_mask */
      if (!vector_operand (operands[1], V8HImode)
          || !vector_operand (operands[2], V8HImode)
          || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 10924 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1
   && (16 == 64 || TARGET_AVX512VL)
   && ix86_binary_operator_ok (UMAX, V8HImode, operands))))
        return -1;
      return 3363; /* *sse4_1_umaxv8hi3_mask */

    default:
      return -1;
    }
}

static int
recog_130 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  operands[1] = x4;
  x5 = XEXP (x2, 1);
  operands[2] = x5;
  x6 = XEXP (x2, 2);
  switch (GET_CODE (x6))
    {
    case REG:
    case SUBREG:
      operands[3] = x6;
      switch (GET_MODE (operands[0]))
        {
        case V16SFmode:
          if (pattern375 (x2, V16SFmode, HImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1857 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (64 == 64 || TARGET_AVX512VL) && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 1514; /* avx512f_sqrtv16sf2_mask */

        case V8SFmode:
          if (pattern375 (x2, V8SFmode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1857 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (32 == 64 || TARGET_AVX512VL) && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 1517; /* avx_sqrtv8sf2_mask */

        case V4SFmode:
          if (pattern375 (x2, V4SFmode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 1857 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (16 == 64 || TARGET_AVX512VL) && 1)))
            return -1;
          return 1519; /* sse_sqrtv4sf2_mask */

        case V8DFmode:
          if (pattern375 (x2, V8DFmode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1857 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (64 == 64 || TARGET_AVX512VL) && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 1522; /* avx512f_sqrtv8df2_mask */

        case V4DFmode:
          if (pattern375 (x2, V4DFmode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1857 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (32 == 64 || TARGET_AVX512VL) && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 1525; /* avx_sqrtv4df2_mask */

        case V2DFmode:
          if (pattern375 (x2, V2DFmode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1857 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (16 == 64 || TARGET_AVX512VL) && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
            return -1;
          return 1527; /* sse2_sqrtv2df2_mask */

        default:
          return -1;
        }

    case CONST_INT:
      if (XWINT (x6, 0) != 1LL)
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V4SFmode:
          if (pattern376 (x2, V4SFmode) != 0
              || !
#line 1875 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
            return -1;
          return 1528; /* sse_vmsqrtv4sf2 */

        case V2DFmode:
          if (pattern376 (x2, V2DFmode) != 0
              || !(
#line 1875 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return -1;
          return 1530; /* sse2_vmsqrtv2df2 */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_131 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (pattern87 (x2))
    {
    case 0:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 14948 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && TARGET_AVX512BW && TARGET_AVX512VL)))
        return -1;
      return 3872; /* avx2_sign_extendv16qiv16hi2_mask */

    case 1:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 14959 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
        return -1;
      return 3876; /* avx512bw_sign_extendv32qiv32hi2_mask */

    case 2:
      if (!
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
        return -1;
      return 3884; /* avx512f_sign_extendv16qiv16si2_mask */

    case 3:
      if (!
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
        return -1;
      return 3896; /* avx512f_sign_extendv16hiv16si2_mask */

    case 4:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 15038 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && TARGET_AVX512VL)))
        return -1;
      return 3900; /* avx2_sign_extendv8hiv8si2_mask */

    case 5:
      if (!
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
        return -1;
      return 3920; /* avx512f_sign_extendv8hiv8di2_mask */

    case 6:
      if (!
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
        return -1;
      return 3932; /* avx512f_sign_extendv8siv8di2_mask */

    case 7:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 15155 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && TARGET_AVX512VL)))
        return -1;
      return 3936; /* avx2_sign_extendv4siv4di2_mask */

    case 8:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 14975 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && TARGET_AVX512BW && TARGET_AVX512VL)))
        return -1;
      return 3880; /* sse4_1_sign_extendv8qiv8hi2_mask */

    case 9:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 15002 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && TARGET_AVX512VL)))
        return -1;
      return 3888; /* avx2_sign_extendv8qiv8si2_mask */

    case 10:
      if (!
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
        return -1;
      return 3908; /* avx512f_sign_extendv8qiv8di2_mask */

    case 11:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 15016 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && TARGET_AVX512VL)))
        return -1;
      return 3892; /* sse4_1_sign_extendv4qiv4si2_mask */

    case 12:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 15052 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && TARGET_AVX512VL)))
        return -1;
      return 3904; /* sse4_1_sign_extendv4hiv4si2_mask */

    case 13:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 15082 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && TARGET_AVX512VL)))
        return -1;
      return 3912; /* avx2_sign_extendv4qiv4di2_mask */

    case 14:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 15120 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && TARGET_AVX512VL)))
        return -1;
      return 3924; /* avx2_sign_extendv4hiv4di2_mask */

    case 15:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 15095 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && TARGET_AVX512VL)))
        return -1;
      return 3916; /* sse4_1_sign_extendv2qiv2di2_mask */

    case 16:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 15133 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && TARGET_AVX512VL)))
        return -1;
      return 3928; /* sse4_1_sign_extendv2hiv2di2_mask */

    case 17:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 15168 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && TARGET_AVX512VL)))
        return -1;
      return 3940; /* sse4_1_sign_extendv2siv2di2_mask */

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (pattern70 (x2))
    {
    case 0:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 3216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && TARGET_AVX512VL
   && ix86_binary_operator_ok (IOR, V8SFmode, operands)) && 
#line 221 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
        return -1;
      return 1786; /* *iorv8sf3_mask */

    case 1:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && TARGET_AVX512VL
   && ix86_binary_operator_ok (IOR, V4SFmode, operands))))
        return -1;
      return 1792; /* *iorv4sf3_mask */

    case 2:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 3216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && TARGET_AVX512VL
   && ix86_binary_operator_ok (IOR, V4DFmode, operands)) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
        return -1;
      return 1798; /* *iorv4df3_mask */

    case 3:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 3216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && TARGET_AVX512VL
   && ix86_binary_operator_ok (IOR, V2DFmode, operands)) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
        return -1;
      return 1804; /* *iorv2df3_mask */

    case 4:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3274 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (IOR, V16SFmode, operands))))
        return -1;
      return 1810; /* *iorv16sf3_mask */

    case 5:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3274 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (IOR, V8DFmode, operands))))
        return -1;
      return 1816; /* *iorv8df3_mask */

    case 6:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (64 == 64 || TARGET_AVX512VL)
   && ix86_binary_operator_ok (IOR, V16SImode, operands)) && 
#line 424 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
        return -1;
      return 3457; /* iorv16si3_mask */

    case 7:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (32 == 64 || TARGET_AVX512VL)
   && ix86_binary_operator_ok (IOR, V8SImode, operands)) && 
#line 424 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
        return -1;
      return 3463; /* iorv8si3_mask */

    case 8:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 11493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (16 == 64 || TARGET_AVX512VL)
   && ix86_binary_operator_ok (IOR, V4SImode, operands))))
        return -1;
      return 3469; /* iorv4si3_mask */

    case 9:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (64 == 64 || TARGET_AVX512VL)
   && ix86_binary_operator_ok (IOR, V8DImode, operands)) && 
#line 425 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
        return -1;
      return 3475; /* iorv8di3_mask */

    case 10:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (32 == 64 || TARGET_AVX512VL)
   && ix86_binary_operator_ok (IOR, V4DImode, operands)) && 
#line 425 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
        return -1;
      return 3481; /* iorv4di3_mask */

    case 11:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 11493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (16 == 64 || TARGET_AVX512VL)
   && ix86_binary_operator_ok (IOR, V2DImode, operands))))
        return -1;
      return 3487; /* iorv2di3_mask */

    case 12:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11588 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (IOR, V64QImode, operands)) && 
#line 428 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
        return -1;
      return 3493; /* *iorv64qi3 */

    case 13:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11588 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (IOR, V32QImode, operands)) && 
#line 428 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
        return -1;
      return 3499; /* *iorv32qi3 */

    case 14:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 11588 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (IOR, V16QImode, operands))))
        return -1;
      return 3505; /* *iorv16qi3 */

    case 15:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11588 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (IOR, V32HImode, operands)) && 
#line 429 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
        return -1;
      return 3511; /* *iorv32hi3 */

    case 16:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11588 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (IOR, V16HImode, operands)) && 
#line 429 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
        return -1;
      return 3517; /* *iorv16hi3 */

    case 17:
      if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 11588 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (IOR, V8HImode, operands))))
        return -1;
      return 3523; /* *iorv8hi3 */

    default:
      return -1;
    }
}

static int
recog_133 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, 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 PLUS:
      return recog_110 (x1, insn, pnum_clobbers);

    case VEC_DUPLICATE:
      return recog_106 (x1, insn, pnum_clobbers);

    case REG:
    case SUBREG:
    case MEM:
      return recog_115 (x1, insn, pnum_clobbers);

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

    case MINUS:
      return recog_109 (x1, insn, pnum_clobbers);

    case MULT:
      return recog_116 (x1, insn, pnum_clobbers);

    case DIV:
      x5 = XEXP (x4, 0);
      operands[1] = x5;
      x6 = XEXP (x4, 1);
      operands[2] = x6;
      x7 = XEXP (x3, 2);
      switch (GET_CODE (x7))
        {
        case CONST_INT:
          switch (pattern68 (x3))
            {
            case 0:
              if (!
#line 1727 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
                return -1;
              return 1473; /* sse_vmdivv4sf3 */

            case 1:
              if (!(
#line 1727 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
                return -1;
              return 1477; /* sse2_vmdivv2df3 */

            default:
              return -1;
            }

        case REG:
        case SUBREG:
          operands[4] = x7;
          x8 = XEXP (x3, 1);
          operands[3] = x8;
          switch (GET_MODE (operands[0]))
            {
            case V16SFmode:
              if (pattern450 (x3, V16SFmode, HImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1768 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (64 == 64 || TARGET_AVX512VL) && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
                return -1;
              return 1481; /* avx512f_divv16sf3_mask */

            case V8SFmode:
              if (pattern450 (x3, V8SFmode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1768 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (32 == 64 || TARGET_AVX512VL) && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
                return -1;
              return 1484; /* avx_divv8sf3_mask */

            case V4SFmode:
              if (pattern450 (x3, V4SFmode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 1768 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (16 == 64 || TARGET_AVX512VL) && 1)))
                return -1;
              return 1486; /* sse_divv4sf3_mask */

            case V8DFmode:
              if (pattern450 (x3, V8DFmode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1768 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (64 == 64 || TARGET_AVX512VL) && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
                return -1;
              return 1489; /* avx512f_divv8df3_mask */

            case V4DFmode:
              if (pattern450 (x3, V4DFmode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1768 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (32 == 64 || TARGET_AVX512VL) && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
                return -1;
              return 1492; /* avx_divv4df3_mask */

            case V2DFmode:
              if (pattern450 (x3, V2DFmode, QImode) != 0
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1768 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (16 == 64 || TARGET_AVX512VL) && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
                return -1;
              return 1494; /* sse2_divv2df3_mask */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case SQRT:
      return recog_130 (x1, insn, pnum_clobbers);

    case SMAX:
      return recog_120 (x1, insn, pnum_clobbers);

    case SMIN:
      return recog_119 (x1, insn, pnum_clobbers);

    case NE:
    case EQ:
    case GE:
    case GT:
    case LE:
    case LT:
    case UNORDERED:
    case ORDERED:
    case UNEQ:
    case UNGE:
    case UNGT:
    case UNLE:
    case UNLT:
    case LTGT:
      operands[3] = x4;
      x7 = XEXP (x3, 2);
      if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x5 = XEXP (x4, 0);
      operands[1] = x5;
      x6 = XEXP (x4, 1);
      operands[2] = x6;
      x8 = XEXP (x3, 1);
      if (!rtx_equal_p (x8, operands[1]))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V4SFmode:
          if (pattern451 (x3, V4SFmode) != 0
              || !
#line 2660 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
            return -1;
          return 1679; /* sse_vmmaskcmpv4sf3 */

        case V2DFmode:
          if (pattern451 (x3, V2DFmode) != 0
              || !(
#line 2660 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return -1;
          return 1680; /* sse2_vmmaskcmpv2df3 */

        default:
          return -1;
        }

    case AND:
      return recog_113 (x1, insn, pnum_clobbers);

    case IOR:
      return recog_132 (x1, insn, pnum_clobbers);

    case XOR:
      switch (pattern70 (x3))
        {
        case 0:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 3216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && TARGET_AVX512VL
   && ix86_binary_operator_ok (XOR, V8SFmode, operands)) && 
#line 221 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 1788; /* *xorv8sf3_mask */

        case 1:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && TARGET_AVX512VL
   && ix86_binary_operator_ok (XOR, V4SFmode, operands))))
            return -1;
          return 1794; /* *xorv4sf3_mask */

        case 2:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 3216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && TARGET_AVX512VL
   && ix86_binary_operator_ok (XOR, V4DFmode, operands)) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 1800; /* *xorv4df3_mask */

        case 3:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 3216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && TARGET_AVX512VL
   && ix86_binary_operator_ok (XOR, V2DFmode, operands)) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
            return -1;
          return 1806; /* *xorv2df3_mask */

        case 4:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3274 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (XOR, V16SFmode, operands))))
            return -1;
          return 1812; /* *xorv16sf3_mask */

        case 5:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3274 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (XOR, V8DFmode, operands))))
            return -1;
          return 1818; /* *xorv8df3_mask */

        case 6:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (64 == 64 || TARGET_AVX512VL)
   && ix86_binary_operator_ok (XOR, V16SImode, operands)) && 
#line 424 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 3459; /* xorv16si3_mask */

        case 7:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (32 == 64 || TARGET_AVX512VL)
   && ix86_binary_operator_ok (XOR, V8SImode, operands)) && 
#line 424 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 3465; /* xorv8si3_mask */

        case 8:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 11493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (16 == 64 || TARGET_AVX512VL)
   && ix86_binary_operator_ok (XOR, V4SImode, operands))))
            return -1;
          return 3471; /* xorv4si3_mask */

        case 9:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (64 == 64 || TARGET_AVX512VL)
   && ix86_binary_operator_ok (XOR, V8DImode, operands)) && 
#line 425 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 3477; /* xorv8di3_mask */

        case 10:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (32 == 64 || TARGET_AVX512VL)
   && ix86_binary_operator_ok (XOR, V4DImode, operands)) && 
#line 425 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 3483; /* xorv4di3_mask */

        case 11:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 11493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (16 == 64 || TARGET_AVX512VL)
   && ix86_binary_operator_ok (XOR, V2DImode, operands))))
            return -1;
          return 3489; /* xorv2di3_mask */

        case 12:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11588 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (XOR, V64QImode, operands)) && 
#line 428 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 3495; /* *xorv64qi3 */

        case 13:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11588 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (XOR, V32QImode, operands)) && 
#line 428 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 3501; /* *xorv32qi3 */

        case 14:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 11588 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (XOR, V16QImode, operands))))
            return -1;
          return 3507; /* *xorv16qi3 */

        case 15:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11588 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (XOR, V32HImode, operands)) && 
#line 429 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 3513; /* *xorv32hi3 */

        case 16:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11588 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (XOR, V16HImode, operands)) && 
#line 429 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 3519; /* *xorv16hi3 */

        case 17:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 11588 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (XOR, V8HImode, operands))))
            return -1;
          return 3525; /* *xorv8hi3 */

        default:
          return -1;
        }

    case FMA:
      return recog_107 (x1, insn, pnum_clobbers);

    case FLOAT:
      return recog_126 (x1, insn, pnum_clobbers);

    case UNSIGNED_FLOAT:
      return recog_127 (x1, insn, pnum_clobbers);

    case FIX:
      switch (pattern75 (x3))
        {
        case 0:
          if (!
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 2215; /* fix_truncv16sfv16si2_mask */

        case 1:
          switch (GET_MODE (operands[1]))
            {
            case V8SFmode:
              if (!nonimmediate_operand (operands[1], V8SFmode)
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4551 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && TARGET_AVX512VL)))
                return -1;
              return 2222; /* fix_truncv8sfv8si2_mask */

            case V8DFmode:
              if (!vector_operand (operands[1], V8DFmode)
                  || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 2334; /* fix_truncv8dfv8si2_mask */

            default:
              return -1;
            }

        case 2:
          switch (GET_MODE (operands[1]))
            {
            case V4SFmode:
              if (!vector_operand (operands[1], V4SFmode)
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4560 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && TARGET_AVX512VL)))
                return -1;
              return 2224; /* fix_truncv4sfv4si2_mask */

            case V4DFmode:
              if (!nonimmediate_operand (operands[1], V4DFmode)
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 5145 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX || (TARGET_AVX512VL && TARGET_AVX512F))))
                return -1;
              return 2343; /* fix_truncv4dfv4si2_mask */

            default:
              return -1;
            }

        case 3:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 5164 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1)))
            return -1;
          return 2348; /* fix_truncv8dfv8di2_mask */

        case 4:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 5196 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1)))
            return -1;
          return 2380; /* fix_truncv8sfv8di2_mask */

        case 5:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 5164 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 270 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 2355; /* fix_truncv4dfv4di2_mask */

        case 6:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 5196 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 233 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 2387; /* fix_truncv4sfv4di2_mask */

        case 7:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 5164 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 270 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 2359; /* fix_truncv2dfv2di2_mask */

        case 8:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 5208 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && TARGET_AVX512VL)))
            return -1;
          return 2391; /* fix_truncv2sfv2di2_mask */

        default:
          return -1;
        }

    case UNSIGNED_FIX:
      switch (pattern75 (x3))
        {
        case 0:
          if (!
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 2219; /* ufix_truncv16sfv16si2_mask */

        case 1:
          switch (GET_MODE (operands[1]))
            {
            case V8DFmode:
              if (!vector_operand (operands[1], V8DFmode)
                  || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 2338; /* ufix_truncv8dfv8si2_mask */

            case V8SFmode:
              if (!nonimmediate_operand (operands[1], V8SFmode)
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 5218 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2395; /* ufix_truncv8sfv8si2_mask */

            default:
              return -1;
            }

        case 2:
          switch (GET_MODE (operands[1]))
            {
            case V4DFmode:
              if (!nonimmediate_operand (operands[1], V4DFmode)
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 5154 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL && TARGET_AVX512F)))
                return -1;
              return 2345; /* ufix_truncv4dfv4si2_mask */

            case V4SFmode:
              if (!nonimmediate_operand (operands[1], V4SFmode)
                  || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 5218 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2397; /* ufix_truncv4sfv4si2_mask */

            default:
              return -1;
            }

        case 3:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 5164 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1)))
            return -1;
          return 2352; /* ufix_truncv8dfv8di2_mask */

        case 4:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 5196 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1)))
            return -1;
          return 2384; /* ufix_truncv8sfv8di2_mask */

        case 5:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 5164 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 270 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 2357; /* ufix_truncv4dfv4di2_mask */

        case 6:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 5196 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 233 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 2389; /* ufix_truncv4sfv4di2_mask */

        case 7:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 5164 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 270 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 2361; /* ufix_truncv2dfv2di2_mask */

        case 8:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 5208 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && TARGET_AVX512VL)))
            return -1;
          return 2393; /* ufix_truncv2sfv2di2_mask */

        default:
          return -1;
        }

    case VEC_CONCAT:
      return recog_108 (x1, insn, pnum_clobbers);

    case FLOAT_EXTEND:
      return recog_125 (x1, insn, pnum_clobbers);

    case FLOAT_TRUNCATE:
      x5 = XEXP (x4, 0);
      operands[1] = x5;
      x8 = XEXP (x3, 1);
      operands[2] = x8;
      x7 = XEXP (x3, 2);
      operands[3] = x7;
      if (!register_operand (operands[3], QImode))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V8SFmode:
          if (pattern382 (x3, V8SFmode, V8DFmode) != 0
              || !
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 2406; /* avx512f_cvtpd2ps512_mask */

        case V4SFmode:
          if (!register_operand (operands[0], V4SFmode)
              || pattern454 (x3, V4SFmode, V4DFmode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 5310 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && TARGET_AVX512VL)))
            return -1;
          return 2409; /* avx_cvtpd2ps256_mask */

        default:
          return -1;
        }

    case CONST_INT:
    case CONST_WIDE_INT:
    case CONST_DOUBLE:
    case CONST_VECTOR:
      return recog_123 (x1, insn, pnum_clobbers);

    case VEC_SELECT:
      return recog_122 (x1, insn, pnum_clobbers);

    case VEC_MERGE:
      return recog_121 (x1, insn, pnum_clobbers);

    case SS_TRUNCATE:
      switch (pattern77 (x3))
        {
        case 0:
          if (!
#line 9017 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2776; /* avx512f_ss_truncatev16siv16qi2_mask */

        case 1:
          if (!(
#line 9090 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 9068 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return -1;
          return 2809; /* avx512vl_ss_truncatev16hiv16qi2_mask */

        case 2:
          if (!
#line 9017 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2779; /* avx512f_ss_truncatev16siv16hi2_mask */

        case 3:
          if (!
#line 9017 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2782; /* avx512f_ss_truncatev8div8si2_mask */

        case 4:
          if (!
#line 9017 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2785; /* avx512f_ss_truncatev8div8hi2_mask */

        case 5:
          if (!
#line 9090 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2806; /* avx512vl_ss_truncatev8siv8hi2_mask */

        case 6:
          if (!
#line 9051 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
            return -1;
          return 2791; /* avx512bw_ss_truncatev32hiv32qi2_mask */

        case 7:
          if (!
#line 9090 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2803; /* avx512vl_ss_truncatev4div4si2_mask */

        default:
          return -1;
        }

    case TRUNCATE:
      return recog_114 (x1, insn, pnum_clobbers);

    case US_TRUNCATE:
      switch (pattern77 (x3))
        {
        case 0:
          if (!
#line 9017 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2778; /* avx512f_us_truncatev16siv16qi2_mask */

        case 1:
          if (!(
#line 9090 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 9068 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return -1;
          return 2811; /* avx512vl_us_truncatev16hiv16qi2_mask */

        case 2:
          if (!
#line 9017 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2781; /* avx512f_us_truncatev16siv16hi2_mask */

        case 3:
          if (!
#line 9017 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2784; /* avx512f_us_truncatev8div8si2_mask */

        case 4:
          if (!
#line 9017 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2787; /* avx512f_us_truncatev8div8hi2_mask */

        case 5:
          if (!
#line 9090 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2808; /* avx512vl_us_truncatev8siv8hi2_mask */

        case 6:
          if (!
#line 9051 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
            return -1;
          return 2793; /* avx512bw_us_truncatev32hiv32qi2_mask */

        case 7:
          if (!
#line 9090 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2805; /* avx512vl_us_truncatev4div4si2_mask */

        default:
          return -1;
        }

    case SS_PLUS:
      switch (pattern78 (x3))
        {
        case 0:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
   && ix86_binary_operator_ok (SS_PLUS, V64QImode, operands)) && 
#line 381 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))))
            return -1;
          return 3035; /* *avx512bw_ssaddv64qi3_mask */

        case 1:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
   && ix86_binary_operator_ok (SS_PLUS, V32QImode, operands)) && 
#line 381 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))))
            return -1;
          return 3043; /* *avx2_ssaddv32qi3_mask */

        case 2:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
   && ix86_binary_operator_ok (SS_PLUS, V16QImode, operands))))
            return -1;
          return 3051; /* *sse2_ssaddv16qi3_mask */

        case 3:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
   && ix86_binary_operator_ok (SS_PLUS, V32HImode, operands)) && 
#line 382 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))))
            return -1;
          return 3059; /* *avx512bw_ssaddv32hi3_mask */

        case 4:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
   && ix86_binary_operator_ok (SS_PLUS, V16HImode, operands)) && 
#line 382 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))))
            return -1;
          return 3067; /* *avx2_ssaddv16hi3_mask */

        case 5:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
   && ix86_binary_operator_ok (SS_PLUS, V8HImode, operands))))
            return -1;
          return 3075; /* *sse2_ssaddv8hi3_mask */

        default:
          return -1;
        }

    case US_PLUS:
      switch (pattern78 (x3))
        {
        case 0:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
   && ix86_binary_operator_ok (US_PLUS, V64QImode, operands)) && 
#line 381 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))))
            return -1;
          return 3037; /* *avx512bw_usaddv64qi3_mask */

        case 1:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
   && ix86_binary_operator_ok (US_PLUS, V32QImode, operands)) && 
#line 381 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))))
            return -1;
          return 3045; /* *avx2_usaddv32qi3_mask */

        case 2:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
   && ix86_binary_operator_ok (US_PLUS, V16QImode, operands))))
            return -1;
          return 3053; /* *sse2_usaddv16qi3_mask */

        case 3:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
   && ix86_binary_operator_ok (US_PLUS, V32HImode, operands)) && 
#line 382 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))))
            return -1;
          return 3061; /* *avx512bw_usaddv32hi3_mask */

        case 4:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
   && ix86_binary_operator_ok (US_PLUS, V16HImode, operands)) && 
#line 382 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))))
            return -1;
          return 3069; /* *avx2_usaddv16hi3_mask */

        case 5:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
   && ix86_binary_operator_ok (US_PLUS, V8HImode, operands))))
            return -1;
          return 3077; /* *sse2_usaddv8hi3_mask */

        default:
          return -1;
        }

    case SS_MINUS:
      switch (pattern78 (x3))
        {
        case 0:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
   && ix86_binary_operator_ok (SS_MINUS, V64QImode, operands)) && 
#line 381 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))))
            return -1;
          return 3039; /* *avx512bw_sssubv64qi3_mask */

        case 1:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
   && ix86_binary_operator_ok (SS_MINUS, V32QImode, operands)) && 
#line 381 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))))
            return -1;
          return 3047; /* *avx2_sssubv32qi3_mask */

        case 2:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
   && ix86_binary_operator_ok (SS_MINUS, V16QImode, operands))))
            return -1;
          return 3055; /* *sse2_sssubv16qi3_mask */

        case 3:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
   && ix86_binary_operator_ok (SS_MINUS, V32HImode, operands)) && 
#line 382 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))))
            return -1;
          return 3063; /* *avx512bw_sssubv32hi3_mask */

        case 4:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
   && ix86_binary_operator_ok (SS_MINUS, V16HImode, operands)) && 
#line 382 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))))
            return -1;
          return 3071; /* *avx2_sssubv16hi3_mask */

        case 5:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
   && ix86_binary_operator_ok (SS_MINUS, V8HImode, operands))))
            return -1;
          return 3079; /* *sse2_sssubv8hi3_mask */

        default:
          return -1;
        }

    case US_MINUS:
      switch (pattern78 (x3))
        {
        case 0:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
   && ix86_binary_operator_ok (US_MINUS, V64QImode, operands)) && 
#line 381 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))))
            return -1;
          return 3041; /* *avx512bw_ussubv64qi3_mask */

        case 1:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
   && ix86_binary_operator_ok (US_MINUS, V32QImode, operands)) && 
#line 381 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))))
            return -1;
          return 3049; /* *avx2_ussubv32qi3_mask */

        case 2:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
   && ix86_binary_operator_ok (US_MINUS, V16QImode, operands))))
            return -1;
          return 3057; /* *sse2_ussubv16qi3_mask */

        case 3:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
   && ix86_binary_operator_ok (US_MINUS, V32HImode, operands)) && 
#line 382 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))))
            return -1;
          return 3065; /* *avx512bw_ussubv32hi3_mask */

        case 4:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
   && ix86_binary_operator_ok (US_MINUS, V16HImode, operands)) && 
#line 382 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))))
            return -1;
          return 3073; /* *avx2_ussubv16hi3_mask */

        case 5:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
   && ix86_binary_operator_ok (US_MINUS, V8HImode, operands))))
            return -1;
          return 3081; /* *sse2_ussubv8hi3_mask */

        default:
          return -1;
        }

    case ASHIFTRT:
      return recog_111 (x1, insn, pnum_clobbers);

    case ASHIFT:
      return recog_118 (x1, insn, pnum_clobbers);

    case LSHIFTRT:
      return recog_117 (x1, insn, pnum_clobbers);

    case ROTATE:
      switch (pattern82 (x3))
        {
        case 0:
          if (!
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 3197; /* avx512f_rolvv16si_mask */

        case 1:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10685 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 3201; /* avx512vl_rolvv8si_mask */

        case 2:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10685 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 3205; /* avx512vl_rolvv4si_mask */

        case 3:
          if (!
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 3209; /* avx512f_rolvv8di_mask */

        case 4:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10685 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 3213; /* avx512vl_rolvv4di_mask */

        case 5:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10685 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 3217; /* avx512vl_rolvv2di_mask */

        case 6:
          if (!
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 3221; /* avx512f_rolv16si_mask */

        case 7:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10695 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 3225; /* avx512vl_rolv8si_mask */

        case 8:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10695 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 3229; /* avx512vl_rolv4si_mask */

        case 9:
          if (!
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 3233; /* avx512f_rolv8di_mask */

        case 10:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10695 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 3237; /* avx512vl_rolv4di_mask */

        case 11:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10695 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 3241; /* avx512vl_rolv2di_mask */

        default:
          return -1;
        }

    case ROTATERT:
      switch (pattern82 (x3))
        {
        case 0:
          if (!
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 3199; /* avx512f_rorvv16si_mask */

        case 1:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10685 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 3203; /* avx512vl_rorvv8si_mask */

        case 2:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10685 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 3207; /* avx512vl_rorvv4si_mask */

        case 3:
          if (!
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 3211; /* avx512f_rorvv8di_mask */

        case 4:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10685 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 3215; /* avx512vl_rorvv4di_mask */

        case 5:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10685 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 3219; /* avx512vl_rorvv2di_mask */

        case 6:
          if (!
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 3223; /* avx512f_rorv16si_mask */

        case 7:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10695 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 3227; /* avx512vl_rorv8si_mask */

        case 8:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10695 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 3231; /* avx512vl_rorv4si_mask */

        case 9:
          if (!
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 3235; /* avx512f_rorv8di_mask */

        case 10:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10695 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 3239; /* avx512vl_rorv4di_mask */

        case 11:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 10695 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 3243; /* avx512vl_rorv2di_mask */

        default:
          return -1;
        }

    case UMAX:
      return recog_129 (x1, insn, pnum_clobbers);

    case UMIN:
      return recog_128 (x1, insn, pnum_clobbers);

    case ABS:
      return recog_124 (x1, insn, pnum_clobbers);

    case SIGN_EXTEND:
      return recog_131 (x1, insn, pnum_clobbers);

    case ZERO_EXTEND:
      switch (pattern87 (x3))
        {
        case 0:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 14948 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && TARGET_AVX512BW && TARGET_AVX512VL)))
            return -1;
          return 3874; /* avx2_zero_extendv16qiv16hi2_mask */

        case 1:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 14959 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return -1;
          return 3878; /* avx512bw_zero_extendv32qiv32hi2_mask */

        case 2:
          if (!
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 3886; /* avx512f_zero_extendv16qiv16si2_mask */

        case 3:
          if (!
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 3898; /* avx512f_zero_extendv16hiv16si2_mask */

        case 4:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 15038 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && TARGET_AVX512VL)))
            return -1;
          return 3902; /* avx2_zero_extendv8hiv8si2_mask */

        case 5:
          if (!
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 3922; /* avx512f_zero_extendv8hiv8di2_mask */

        case 6:
          if (!
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 3934; /* avx512f_zero_extendv8siv8di2_mask */

        case 7:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 15155 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && TARGET_AVX512VL)))
            return -1;
          return 3938; /* avx2_zero_extendv4siv4di2_mask */

        case 8:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 14975 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && TARGET_AVX512BW && TARGET_AVX512VL)))
            return -1;
          return 3882; /* sse4_1_zero_extendv8qiv8hi2_mask */

        case 9:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 15002 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && TARGET_AVX512VL)))
            return -1;
          return 3890; /* avx2_zero_extendv8qiv8si2_mask */

        case 10:
          if (!
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 3910; /* avx512f_zero_extendv8qiv8di2_mask */

        case 11:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 15016 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && TARGET_AVX512VL)))
            return -1;
          return 3894; /* sse4_1_zero_extendv4qiv4si2_mask */

        case 12:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 15052 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && TARGET_AVX512VL)))
            return -1;
          return 3906; /* sse4_1_zero_extendv4hiv4si2_mask */

        case 13:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 15082 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && TARGET_AVX512VL)))
            return -1;
          return 3914; /* avx2_zero_extendv4qiv4di2_mask */

        case 14:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 15120 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && TARGET_AVX512VL)))
            return -1;
          return 3926; /* avx2_zero_extendv4hiv4di2_mask */

        case 15:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 15095 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && TARGET_AVX512VL)))
            return -1;
          return 3918; /* sse4_1_zero_extendv2qiv2di2_mask */

        case 16:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 15133 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && TARGET_AVX512VL)))
            return -1;
          return 3930; /* sse4_1_zero_extendv2hiv2di2_mask */

        case 17:
          if (!(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 15168 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1 && TARGET_AVX512VL)))
            return -1;
          return 3942; /* sse4_1_zero_extendv2siv2di2_mask */

        default:
          return -1;
        }

    case CLZ:
      x5 = XEXP (x4, 0);
      operands[1] = x5;
      x8 = XEXP (x3, 1);
      operands[2] = x8;
      x7 = XEXP (x3, 2);
      operands[3] = x7;
      switch (GET_MODE (operands[0]))
        {
        case V16SImode:
          if (pattern334 (x3, V16SImode, HImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 19191 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512CD)))
            return -1;
          return 4910; /* clzv16si2_mask */

        case V8SImode:
          if (pattern334 (x3, V8SImode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 19191 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512CD) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 4912; /* clzv8si2_mask */

        case V4SImode:
          if (pattern334 (x3, V4SImode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 19191 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512CD) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 4914; /* clzv4si2_mask */

        case V8DImode:
          if (pattern334 (x3, V8DImode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 19191 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512CD)))
            return -1;
          return 4916; /* clzv8di2_mask */

        case V4DImode:
          if (pattern334 (x3, V4DImode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 19191 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512CD) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 4918; /* clzv4di2_mask */

        case V2DImode:
          if (pattern334 (x3, V2DImode, QImode) != 0
              || !(
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 19191 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512CD) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 4920; /* clzv2di2_mask */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_134 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  x4 = XVECEXP (x3, 0, 0);
  if (GET_CODE (x4) != CONST_INT)
    return -1;
  x5 = XVECEXP (x3, 0, 1);
  if (GET_CODE (x5) == CONST_INT)
    {
      switch (XWINT (x4, 0))
        {
        case 1LL:
          if (XWINT (x5, 0) == 0LL)
            {
              switch (GET_MODE (operands[0]))
                {
                case V2SFmode:
                  if (register_operand (operands[0], V2SFmode)
                      && GET_MODE (x2) == V2SFmode
                      && nonimmediate_operand (operands[1], V2SFmode)
                      && 
#line 557 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_3DNOW_A))
                    return 1139; /* mmx_pswapdv2sf2 */
                  break;

                case V2SImode:
                  if (register_operand (operands[0], V2SImode)
                      && GET_MODE (x2) == V2SImode
                      && nonimmediate_operand (operands[1], V2SImode)
                      && 
#line 1239 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_3DNOW_A))
                    return 1208; /* mmx_pswapdv2si2 */
                  break;

                default:
                  break;
                }
            }
          break;

        case 2LL:
          if (XWINT (x5, 0) == 3LL)
            {
              switch (GET_MODE (operands[0]))
                {
                case V2SFmode:
                  if (nonimmediate_operand (operands[0], V2SFmode)
                      && GET_MODE (x2) == V2SFmode
                      && nonimmediate_operand (operands[1], V4SFmode)
                      && 
#line 6600 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
                    return 2477; /* sse_storehps */
                  break;

                case V2DImode:
                  if (nonimmediate_operand (operands[0], V2DImode)
                      && GET_MODE (x2) == V2DImode
                      && register_operand (operands[1], V4DImode)
                      && 
#line 7457 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && 1 && 1))
                    return 2535; /* vec_extract_hi_v4di */
                  break;

                case V2DFmode:
                  if (nonimmediate_operand (operands[0], V2DFmode)
                      && GET_MODE (x2) == V2DFmode
                      && register_operand (operands[1], V4DFmode)
                      && 
#line 7457 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && 1 && 1))
                    return 2537; /* vec_extract_hi_v4df */
                  break;

                default:
                  break;
                }
            }
          break;

        case 0LL:
          if (XWINT (x5, 0) == 1LL)
            {
              switch (GET_MODE (operands[0]))
                {
                case V2SFmode:
                  if (nonimmediate_operand (operands[0], V2SFmode)
                      && GET_MODE (x2) == V2SFmode
                      && nonimmediate_operand (operands[1], V4SFmode)
                      && 
#line 6655 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
                    return 2479; /* sse_storelps */
                  break;

                case V2DImode:
                  if (nonimmediate_operand (operands[0], V2DImode)
                      && GET_MODE (x2) == V2DImode
                      && nonimmediate_operand (operands[1], V4DImode)
                      && 
#line 7418 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX
   && 1 && 1
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
                    return 2531; /* vec_extract_lo_v4di */
                  break;

                case V2DFmode:
                  if (nonimmediate_operand (operands[0], V2DFmode)
                      && GET_MODE (x2) == V2DFmode
                      && nonimmediate_operand (operands[1], V4DFmode)
                      && 
#line 7418 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX
   && 1 && 1
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
                    return 2533; /* vec_extract_lo_v4df */
                  break;

                default:
                  break;
                }
            }
          break;

        default:
          break;
        }
    }
  operands[2] = x4;
  if (!const_0_to_7_operand (operands[2], VOIDmode))
    return -1;
  operands[3] = x5;
  if (!const_0_to_7_operand (operands[3], VOIDmode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case V2DFmode:
      if (!nonimmediate_operand (operands[0], V2DFmode)
          || GET_MODE (x2) != V2DFmode
          || !register_operand (operands[1], V8DFmode)
          || !
#line 7121 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && (INTVAL (operands[2]) == INTVAL (operands[3]) - 1)))
        return -1;
      return 2501; /* *avx512dq_vextractf64x2_1 */

    case V2DImode:
      if (!nonimmediate_operand (operands[0], V2DImode)
          || GET_MODE (x2) != V2DImode
          || !register_operand (operands[1], V8DImode)
          || !
#line 7121 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && (INTVAL (operands[2]) == INTVAL (operands[3]) - 1)))
        return -1;
      return 2503; /* *avx512dq_vextracti64x2_1 */

    default:
      return -1;
    }
}

static int
recog_135 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  x4 = XVECEXP (x3, 0, 0);
  if (GET_CODE (x4) != CONST_INT)
    return -1;
  switch (XWINT (x4, 0))
    {
    case 0LL:
      switch (GET_MODE (operands[0]))
        {
        case SFmode:
          switch (pattern456 (x2))
            {
            case 0:
              if (
#line 602 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
                return 1142; /* *vec_extractv2sf_0 */
              break;

            case 1:
              if (
#line 6963 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
                return 2494; /* *vec_extractv4sf_0 */
              break;

            default:
              break;
            }
          break;

        case DFmode:
          if (nonimmediate_operand (operands[0], DFmode)
              && GET_MODE (x2) == DFmode
              && nonimmediate_operand (operands[1], V2DFmode))
            {
              if (
#line 8738 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
                return 2756; /* sse2_storelpd */
              if (
#line 8769 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(!TARGET_SSE2 && TARGET_SSE
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
                return 2757; /* *vec_extractv2df_0_sse */
            }
          break;

        default:
          break;
        }
      break;

    case 1LL:
      switch (GET_MODE (operands[0]))
        {
        case SFmode:
          if (nonimmediate_operand (operands[0], SFmode)
              && GET_MODE (x2) == SFmode
              && nonimmediate_operand (operands[1], V2SFmode)
              && 
#line 620 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
            return 1143; /* *vec_extractv2sf_1 */
          break;

        case DFmode:
          if (nonimmediate_operand (operands[0], DFmode)
              && GET_MODE (x2) == DFmode
              && nonimmediate_operand (operands[1], V2DFmode))
            {
              if (
#line 8688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
                return 2754; /* sse2_storehpd */
              if (
#line 8721 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(!TARGET_SSE2 && TARGET_SSE
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
                return 2755; /* *vec_extractv2df_1_sse */
            }
          break;

        default:
          break;
        }
      break;

    default:
      break;
    }
  operands[2] = x4;
  switch (GET_MODE (operands[0]))
    {
    case SFmode:
      if (GET_MODE (x2) != SFmode)
        return -1;
      if (nonimmediate_operand (operands[0], SFmode)
          && register_operand (operands[1], V4SFmode)
          && const_0_to_3_operand (operands[2], SImode)
          && 
#line 6979 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1))
        return 2495; /* *sse4_1_extractps */
      if (!register_operand (operands[0], SFmode)
          || !memory_operand (operands[1], V4SFmode)
          || !const_0_to_3_operand (operands[2], VOIDmode)
          || !
#line 7020 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
        return -1;
      return 2496; /* *vec_extractv4sf_mem */

    case QImode:
      if (GET_MODE (x2) != QImode)
        return -1;
      if (register_sse4nonimm_operand (operands[0], QImode)
          && register_operand (operands[1], V16QImode)
          && const_0_to_15_operand (operands[2], SImode)
          && (
#line 13294 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2) && 
#line 13286 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1)))
        return 3691; /* *vec_extractv16qi */
      if (!register_operand (operands[0], QImode)
          || !memory_operand (operands[1], V16QImode)
          || !const_0_to_15_operand (operands[2], VOIDmode)
          || !
#line 13338 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
        return -1;
      return 3697; /* *vec_extractv16qi_mem */

    case HImode:
      if (GET_MODE (x2) != HImode)
        return -1;
      if (register_sse4nonimm_operand (operands[0], HImode)
          && register_operand (operands[1], V8HImode)
          && const_0_to_7_operand (operands[2], SImode)
          && 
#line 13294 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))
        return 3692; /* *vec_extractv8hi */
      if (!register_operand (operands[0], HImode)
          || !memory_operand (operands[1], V8HImode)
          || !const_0_to_7_operand (operands[2], VOIDmode)
          || !
#line 13338 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
        return -1;
      return 3698; /* *vec_extractv8hi_mem */

    default:
      return -1;
    }
}

static int
recog_136 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  x4 = XVECEXP (x3, 0, 1);
  operands[3] = x4;
  x5 = XVECEXP (x3, 0, 2);
  operands[4] = x5;
  x6 = XVECEXP (x3, 0, 3);
  operands[5] = x6;
  switch (GET_MODE (operands[0]))
    {
    case V4HImode:
      if (pattern574 (x2, V4HImode) != 0
          || !
#line 1219 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_SSE || TARGET_3DNOW_A))
        return -1;
      return 1207; /* mmx_pshufw_1 */

    case V4SFmode:
      if (!nonimmediate_operand (operands[0], V4SFmode)
          || GET_MODE (x2) != V4SFmode
          || pattern673 (V16SFmode) != 0
          || !
#line 7140 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && (INTVAL (operands[2]) == (INTVAL (operands[3]) - 1)
       && INTVAL (operands[3]) == (INTVAL (operands[4]) - 1)
       && INTVAL (operands[4]) == (INTVAL (operands[5]) - 1))))
        return -1;
      return 2505; /* *avx512f_vextractf32x4_1 */

    case V4SImode:
      if (GET_MODE (x2) != V4SImode)
        return -1;
      if (nonimmediate_operand (operands[0], V4SImode)
          && pattern673 (V16SImode) == 0
          && 
#line 7140 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && (INTVAL (operands[2]) == (INTVAL (operands[3]) - 1)
       && INTVAL (operands[3]) == (INTVAL (operands[4]) - 1)
       && INTVAL (operands[4]) == (INTVAL (operands[5]) - 1))))
        return 2507; /* *avx512f_vextracti32x4_1 */
      if (!register_operand (operands[0], V4SImode)
          || !vector_operand (operands[1], V4SImode)
          || pattern573 () != 0
          || !
#line 12924 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1))
        return -1;
      return 3676; /* sse2_pshufd_1 */

    case V4DImode:
      if (pattern574 (x2, V4DImode) != 0
          || !
#line 17209 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1))
        return -1;
      return 4171; /* avx2_permv4di_1 */

    case V4DFmode:
      if (pattern574 (x2, V4DFmode) != 0
          || !
#line 17209 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1))
        return -1;
      return 4173; /* avx2_permv4df_1 */

    case V8DImode:
      if (pattern574 (x2, V8DImode) != 0
          || !(
#line 17209 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1) && 
#line 558 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
        return -1;
      return 4175; /* avx512f_permv8di_1 */

    case V8DFmode:
      if (pattern574 (x2, V8DFmode) != 0
          || !(
#line 17209 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1) && 
#line 558 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
        return -1;
      return 4177; /* avx512f_permv8df_1 */

    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, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  x4 = XVECEXP (x3, 0, 0);
  if (GET_CODE (x4) != CONST_INT)
    return -1;
  operands[2] = x4;
  res = recog_136 (x1, insn, pnum_clobbers);
  if (res >= 0)
    return res;
  x5 = XVECEXP (x3, 0, 1);
  if (GET_CODE (x5) != CONST_INT)
    return -1;
  x6 = XVECEXP (x3, 0, 2);
  if (GET_CODE (x6) != CONST_INT)
    return -1;
  x7 = XVECEXP (x3, 0, 3);
  if (GET_CODE (x7) != CONST_INT)
    return -1;
  switch (XWINT (x4, 0))
    {
    case 0LL:
      if (XWINT (x5, 0) != 1LL
          || XWINT (x6, 0) != 2LL
          || XWINT (x7, 0) != 3LL)
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V4DFmode:
          if (!nonimmediate_operand (operands[0], V4DFmode)
              || GET_MODE (x2) != V4DFmode
              || !nonimmediate_operand (operands[1], V8DFmode)
              || !
#line 7236 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
            return -1;
          return 2511; /* vec_extract_lo_v8df */

        case V4DImode:
          if (!nonimmediate_operand (operands[0], V4DImode)
              || GET_MODE (x2) != V4DImode
              || !nonimmediate_operand (operands[1], V8DImode)
              || !
#line 7236 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
            return -1;
          return 2513; /* vec_extract_lo_v8di */

        case V4SImode:
          if (!nonimmediate_operand (operands[0], V4SImode)
              || GET_MODE (x2) != V4SImode
              || !register_operand (operands[1], V8SImode)
              || !
#line 7501 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && 1 && 1))
            return -1;
          return 2539; /* vec_extract_lo_v8si */

        case V4SFmode:
          if (!nonimmediate_operand (operands[0], V4SFmode)
              || GET_MODE (x2) != V4SFmode
              || !register_operand (operands[1], V8SFmode)
              || !
#line 7501 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && 1 && 1))
            return -1;
          return 2541; /* vec_extract_lo_v8sf */

        default:
          return -1;
        }

    case 4LL:
      if (XWINT (x5, 0) != 5LL
          || XWINT (x6, 0) != 6LL
          || XWINT (x7, 0) != 7LL)
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V4DFmode:
          if (!nonimmediate_operand (operands[0], V4DFmode)
              || GET_MODE (x2) != V4DFmode
              || !register_operand (operands[1], V8DFmode)
              || !
#line 7274 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2517; /* vec_extract_hi_v8df */

        case V4DImode:
          if (!nonimmediate_operand (operands[0], V4DImode)
              || GET_MODE (x2) != V4DImode
              || !register_operand (operands[1], V8DImode)
              || !
#line 7274 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2519; /* vec_extract_hi_v8di */

        case V4SImode:
          if (!nonimmediate_operand (operands[0], V4SImode)
              || GET_MODE (x2) != V4SImode
              || !register_operand (operands[1], V8SImode)
              || !
#line 7571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return -1;
          return 2549; /* vec_extract_hi_v8si */

        case V4SFmode:
          if (!nonimmediate_operand (operands[0], V4SFmode)
              || GET_MODE (x2) != V4SFmode
              || !register_operand (operands[1], V8SFmode)
              || !
#line 7571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return -1;
          return 2550; /* vec_extract_hi_v8sf */

        default:
          return -1;
        }

    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];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  if (pattern383 (x3) != 0)
    return -1;
  x4 = XVECEXP (x3, 0, 0);
  switch (XWINT (x4, 0))
    {
    case 8LL:
      x5 = XVECEXP (x3, 0, 1);
      if (XWINT (x5, 0) != 9LL)
        return -1;
      x6 = XVECEXP (x3, 0, 2);
      if (XWINT (x6, 0) != 10LL)
        return -1;
      x7 = XVECEXP (x3, 0, 3);
      if (XWINT (x7, 0) != 11LL)
        return -1;
      x8 = XVECEXP (x3, 0, 4);
      if (XWINT (x8, 0) != 12LL)
        return -1;
      x9 = XVECEXP (x3, 0, 5);
      if (XWINT (x9, 0) != 13LL)
        return -1;
      x10 = XVECEXP (x3, 0, 6);
      if (XWINT (x10, 0) != 14LL)
        return -1;
      x11 = XVECEXP (x3, 0, 7);
      if (XWINT (x11, 0) != 15LL)
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V8SFmode:
          if (!nonimmediate_operand (operands[0], V8SFmode)
              || GET_MODE (x2) != V8SFmode
              || !register_operand (operands[1], V16SFmode)
              || !
#line 7310 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1))
            return -1;
          return 2523; /* vec_extract_hi_v16sf */

        case V8SImode:
          if (!nonimmediate_operand (operands[0], V8SImode)
              || GET_MODE (x2) != V8SImode
              || !register_operand (operands[1], V16SImode)
              || !
#line 7310 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1))
            return -1;
          return 2525; /* vec_extract_hi_v16si */

        case V8HImode:
          if (!nonimmediate_operand (operands[0], V8HImode)
              || GET_MODE (x2) != V8HImode
              || !register_operand (operands[1], V16HImode)
              || !
#line 7652 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return -1;
          return 2554; /* vec_extract_hi_v16hi */

        default:
          return -1;
        }

    case 0LL:
      x5 = XVECEXP (x3, 0, 1);
      if (XWINT (x5, 0) != 1LL)
        return -1;
      x6 = XVECEXP (x3, 0, 2);
      if (XWINT (x6, 0) != 2LL)
        return -1;
      x7 = XVECEXP (x3, 0, 3);
      if (XWINT (x7, 0) != 3LL)
        return -1;
      x8 = XVECEXP (x3, 0, 4);
      if (XWINT (x8, 0) != 4LL)
        return -1;
      x9 = XVECEXP (x3, 0, 5);
      if (XWINT (x9, 0) != 5LL)
        return -1;
      x10 = XVECEXP (x3, 0, 6);
      if (XWINT (x10, 0) != 6LL)
        return -1;
      x11 = XVECEXP (x3, 0, 7);
      if (XWINT (x11, 0) != 7LL)
        return -1;
      switch (pattern691 (x2))
        {
        case 0:
          if (!
#line 7382 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && 1
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
            return -1;
          return 2527; /* vec_extract_lo_v16sf */

        case 1:
          if (!
#line 7382 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && 1
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
            return -1;
          return 2529; /* vec_extract_lo_v16si */

        case 2:
          if (!
#line 7633 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
            return -1;
          return 2553; /* vec_extract_lo_v16hi */

        default:
          return -1;
        }

    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];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  x4 = XVECEXP (x3, 0, 4);
  if (GET_CODE (x4) != CONST_INT)
    return -1;
  operands[6] = x4;
  if (pattern533 (x2, V8SImode) == 0
      && 
#line 12862 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2
   && 1
   && INTVAL (operands[2]) + 4 == INTVAL (operands[6])
   && INTVAL (operands[3]) + 4 == INTVAL (operands[7])
   && INTVAL (operands[4]) + 4 == INTVAL (operands[8])
   && INTVAL (operands[5]) + 4 == INTVAL (operands[9])))
    return 3674; /* avx2_pshufd_1 */
  if (XWINT (x4, 0) != 4LL)
    return -1;
  x5 = XVECEXP (x3, 0, 5);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
    return -1;
  x6 = XVECEXP (x3, 0, 6);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
    return -1;
  x7 = XVECEXP (x3, 0, 7);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
      || !register_operand (operands[0], V8HImode)
      || GET_MODE (x2) != V8HImode
      || !vector_operand (operands[1], V8HImode))
    return -1;
  x8 = XVECEXP (x3, 0, 1);
  operands[3] = x8;
  if (!const_0_to_3_operand (operands[3], VOIDmode))
    return -1;
  x9 = XVECEXP (x3, 0, 2);
  operands[4] = x9;
  if (!const_0_to_3_operand (operands[4], VOIDmode))
    return -1;
  x10 = XVECEXP (x3, 0, 3);
  operands[5] = x10;
  if (!const_0_to_3_operand (operands[5], VOIDmode)
      || !
#line 13080 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1))
    return -1;
  return 3682; /* sse2_pshuflw_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];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  x4 = XVECEXP (x3, 0, 0);
  if (GET_CODE (x4) != CONST_INT)
    return -1;
  x5 = XVECEXP (x3, 0, 1);
  if (GET_CODE (x5) == CONST_INT)
    {
      res = recog_138 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  operands[2] = x4;
  if (const_0_to_3_operand (operands[2], VOIDmode))
    {
      res = recog_139 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  if (XWINT (x4, 0) != 0LL
      || 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]
      || !register_operand (operands[0], V8HImode)
      || GET_MODE (x2) != V8HImode
      || !vector_operand (operands[1], V8HImode)
      || pattern674 (x3) != 0
      || !
#line 13237 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1))
    return -1;
  return 3688; /* sse2_pshufhw_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];
  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 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  if (pattern384 (x3) != 0)
    return -1;
  x4 = XVECEXP (x3, 0, 0);
  switch (XWINT (x4, 0))
    {
    case 0LL:
      if (pattern877 (x3) != 0)
        return -1;
      switch (pattern875 (x2))
        {
        case 0:
          if (!
#line 7593 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
            return -1;
          return 2551; /* vec_extract_lo_v32hi */

        case 1:
          if (!
#line 7733 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
            return -1;
          return 2557; /* vec_extract_lo_v32qi */

        default:
          return -1;
        }

    case 16LL:
      x5 = XVECEXP (x3, 0, 1);
      if (XWINT (x5, 0) != 17LL)
        return -1;
      x6 = XVECEXP (x3, 0, 2);
      if (XWINT (x6, 0) != 18LL)
        return -1;
      x7 = XVECEXP (x3, 0, 3);
      if (XWINT (x7, 0) != 19LL)
        return -1;
      x8 = XVECEXP (x3, 0, 4);
      if (XWINT (x8, 0) != 20LL)
        return -1;
      x9 = XVECEXP (x3, 0, 5);
      if (XWINT (x9, 0) != 21LL)
        return -1;
      x10 = XVECEXP (x3, 0, 6);
      if (XWINT (x10, 0) != 22LL)
        return -1;
      x11 = XVECEXP (x3, 0, 7);
      if (XWINT (x11, 0) != 23LL)
        return -1;
      x12 = XVECEXP (x3, 0, 8);
      if (XWINT (x12, 0) != 24LL)
        return -1;
      x13 = XVECEXP (x3, 0, 9);
      if (XWINT (x13, 0) != 25LL)
        return -1;
      x14 = XVECEXP (x3, 0, 10);
      if (XWINT (x14, 0) != 26LL)
        return -1;
      x15 = XVECEXP (x3, 0, 11);
      if (XWINT (x15, 0) != 27LL)
        return -1;
      x16 = XVECEXP (x3, 0, 12);
      if (XWINT (x16, 0) != 28LL)
        return -1;
      x17 = XVECEXP (x3, 0, 13);
      if (XWINT (x17, 0) != 29LL)
        return -1;
      x18 = XVECEXP (x3, 0, 14);
      if (XWINT (x18, 0) != 30LL)
        return -1;
      x19 = XVECEXP (x3, 0, 15);
      if (XWINT (x19, 0) != 31LL)
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V16HImode:
          if (!nonimmediate_operand (operands[0], V16HImode)
              || GET_MODE (x2) != V16HImode
              || !register_operand (operands[1], V32HImode)
              || !
#line 7616 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2552; /* vec_extract_hi_v32hi */

        case V16QImode:
          if (!nonimmediate_operand (operands[0], V16QImode)
              || GET_MODE (x2) != V16QImode
              || !register_operand (operands[1], V32QImode)
              || !
#line 7756 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return -1;
          return 2558; /* vec_extract_hi_v32qi */

        default:
          return -1;
        }

    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];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (pattern533 (x2, V16SImode) != 0)
    return -1;
  x3 = XEXP (x2, 1);
  x4 = XVECEXP (x3, 0, 8);
  operands[10] = x4;
  if (!const_8_to_11_operand (operands[10], VOIDmode))
    return -1;
  x5 = XVECEXP (x3, 0, 9);
  operands[11] = x5;
  if (!const_8_to_11_operand (operands[11], VOIDmode))
    return -1;
  x6 = XVECEXP (x3, 0, 10);
  operands[12] = x6;
  if (!const_8_to_11_operand (operands[12], VOIDmode))
    return -1;
  x7 = XVECEXP (x3, 0, 11);
  operands[13] = x7;
  if (!const_8_to_11_operand (operands[13], VOIDmode))
    return -1;
  x8 = XVECEXP (x3, 0, 12);
  operands[14] = x8;
  if (!const_12_to_15_operand (operands[14], VOIDmode))
    return -1;
  x9 = XVECEXP (x3, 0, 13);
  operands[15] = x9;
  if (!const_12_to_15_operand (operands[15], VOIDmode))
    return -1;
  x10 = XVECEXP (x3, 0, 14);
  operands[16] = x10;
  if (!const_12_to_15_operand (operands[16], VOIDmode))
    return -1;
  x11 = XVECEXP (x3, 0, 15);
  operands[17] = x11;
  if (!const_12_to_15_operand (operands[17], VOIDmode)
      || !
#line 12781 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && INTVAL (operands[2]) + 4 == INTVAL (operands[6])
   && INTVAL (operands[3]) + 4 == INTVAL (operands[7])
   && INTVAL (operands[4]) + 4 == INTVAL (operands[8])
   && INTVAL (operands[5]) + 4 == INTVAL (operands[9])
   && INTVAL (operands[2]) + 8 == INTVAL (operands[10])
   && INTVAL (operands[3]) + 8 == INTVAL (operands[11])
   && INTVAL (operands[4]) + 8 == INTVAL (operands[12])
   && INTVAL (operands[5]) + 8 == INTVAL (operands[13])
   && INTVAL (operands[2]) + 12 == INTVAL (operands[14])
   && INTVAL (operands[3]) + 12 == INTVAL (operands[15])
   && INTVAL (operands[4]) + 12 == INTVAL (operands[16])
   && INTVAL (operands[5]) + 12 == INTVAL (operands[17])))
    return -1;
  return 3672; /* avx512f_pshufd_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];
  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, 1);
  x4 = XVECEXP (x3, 0, 4);
  if (GET_CODE (x4) != CONST_INT)
    return -1;
  operands[6] = x4;
  res = recog_142 (x1, insn, pnum_clobbers);
  if (res >= 0)
    return res;
  if (XWINT (x4, 0) != 4LL)
    return -1;
  x5 = XVECEXP (x3, 0, 5);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
    return -1;
  x6 = XVECEXP (x3, 0, 6);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
    return -1;
  x7 = XVECEXP (x3, 0, 7);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
      || pattern301 (x3) != 0
      || !register_operand (operands[0], V16HImode)
      || GET_MODE (x2) != V16HImode
      || !nonimmediate_operand (operands[1], V16HImode))
    return -1;
  x8 = XVECEXP (x3, 0, 1);
  operands[3] = x8;
  if (!const_0_to_3_operand (operands[3], VOIDmode))
    return -1;
  x9 = XVECEXP (x3, 0, 2);
  operands[4] = x9;
  if (!const_0_to_3_operand (operands[4], VOIDmode))
    return -1;
  x10 = XVECEXP (x3, 0, 3);
  operands[5] = x10;
  if (!const_0_to_3_operand (operands[5], VOIDmode))
    return -1;
  x11 = XVECEXP (x3, 0, 8);
  operands[6] = x11;
  if (!const_8_to_11_operand (operands[6], VOIDmode))
    return -1;
  x12 = XVECEXP (x3, 0, 9);
  operands[7] = x12;
  if (!const_8_to_11_operand (operands[7], VOIDmode))
    return -1;
  x13 = XVECEXP (x3, 0, 10);
  operands[8] = x13;
  if (!const_8_to_11_operand (operands[8], VOIDmode))
    return -1;
  x14 = XVECEXP (x3, 0, 11);
  operands[9] = x14;
  if (!const_8_to_11_operand (operands[9], VOIDmode)
      || !
#line 13014 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2
   && 1 && 1
   && INTVAL (operands[2]) + 8 == INTVAL (operands[6])
   && INTVAL (operands[3]) + 8 == INTVAL (operands[7])
   && INTVAL (operands[4]) + 8 == INTVAL (operands[8])
   && INTVAL (operands[5]) + 8 == INTVAL (operands[9])))
    return -1;
  return 3680; /* avx2_pshuflw_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];
  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);
  x4 = XVECEXP (x3, 0, 0);
  if (GET_CODE (x4) != CONST_INT)
    return -1;
  x5 = XVECEXP (x3, 0, 1);
  if (GET_CODE (x5) == CONST_INT)
    {
      res = recog_141 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  operands[2] = x4;
  if (const_0_to_3_operand (operands[2], VOIDmode))
    {
      res = recog_143 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  if (XWINT (x4, 0) != 0LL
      || 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, 8);
  if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x9 = XVECEXP (x3, 0, 9);
  if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
    return -1;
  x10 = XVECEXP (x3, 0, 10);
  if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
    return -1;
  x11 = XVECEXP (x3, 0, 11);
  if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 11]
      || !register_operand (operands[0], V16HImode)
      || GET_MODE (x2) != V16HImode
      || !nonimmediate_operand (operands[1], V16HImode)
      || pattern674 (x3) != 0)
    return -1;
  x12 = XVECEXP (x3, 0, 12);
  operands[6] = x12;
  if (!const_12_to_15_operand (operands[6], VOIDmode))
    return -1;
  x13 = XVECEXP (x3, 0, 13);
  operands[7] = x13;
  if (!const_12_to_15_operand (operands[7], VOIDmode))
    return -1;
  x14 = XVECEXP (x3, 0, 14);
  operands[8] = x14;
  if (!const_12_to_15_operand (operands[8], VOIDmode))
    return -1;
  x15 = XVECEXP (x3, 0, 15);
  operands[9] = x15;
  if (!const_12_to_15_operand (operands[9], VOIDmode)
      || !
#line 13171 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2
   && 1 && 1
   && INTVAL (operands[2]) + 8 == INTVAL (operands[6])
   && INTVAL (operands[3]) + 8 == INTVAL (operands[7])
   && INTVAL (operands[4]) + 8 == INTVAL (operands[8])
   && INTVAL (operands[5]) + 8 == INTVAL (operands[9])))
    return -1;
  return 3686; /* avx2_pshufhw_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];
  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);
  if (pattern279 (x3) != 0
      || !nonimmediate_operand (operands[0], V32QImode)
      || GET_MODE (x2) != V32QImode)
    return -1;
  x4 = XVECEXP (x3, 0, 0);
  switch (XWINT (x4, 0))
    {
    case 0LL:
      if (pattern877 (x3) != 0)
        return -1;
      x5 = XVECEXP (x3, 0, 16);
      if (XWINT (x5, 0) != 16LL)
        return -1;
      x6 = XVECEXP (x3, 0, 17);
      if (XWINT (x6, 0) != 17LL)
        return -1;
      x7 = XVECEXP (x3, 0, 18);
      if (XWINT (x7, 0) != 18LL)
        return -1;
      x8 = XVECEXP (x3, 0, 19);
      if (XWINT (x8, 0) != 19LL)
        return -1;
      x9 = XVECEXP (x3, 0, 20);
      if (XWINT (x9, 0) != 20LL)
        return -1;
      x10 = XVECEXP (x3, 0, 21);
      if (XWINT (x10, 0) != 21LL)
        return -1;
      x11 = XVECEXP (x3, 0, 22);
      if (XWINT (x11, 0) != 22LL)
        return -1;
      x12 = XVECEXP (x3, 0, 23);
      if (XWINT (x12, 0) != 23LL)
        return -1;
      x13 = XVECEXP (x3, 0, 24);
      if (XWINT (x13, 0) != 24LL)
        return -1;
      x14 = XVECEXP (x3, 0, 25);
      if (XWINT (x14, 0) != 25LL)
        return -1;
      x15 = XVECEXP (x3, 0, 26);
      if (XWINT (x15, 0) != 26LL)
        return -1;
      x16 = XVECEXP (x3, 0, 27);
      if (XWINT (x16, 0) != 27LL)
        return -1;
      x17 = XVECEXP (x3, 0, 28);
      if (XWINT (x17, 0) != 28LL)
        return -1;
      x18 = XVECEXP (x3, 0, 29);
      if (XWINT (x18, 0) != 29LL)
        return -1;
      x19 = XVECEXP (x3, 0, 30);
      if (XWINT (x19, 0) != 30LL)
        return -1;
      x20 = XVECEXP (x3, 0, 31);
      if (XWINT (x20, 0) != 31LL
          || !nonimmediate_operand (operands[1], V64QImode)
          || !
#line 7681 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
        return -1;
      return 2555; /* vec_extract_lo_v64qi */

    case 32LL:
      x21 = XVECEXP (x3, 0, 1);
      if (XWINT (x21, 0) != 33LL)
        return -1;
      x22 = XVECEXP (x3, 0, 2);
      if (XWINT (x22, 0) != 34LL)
        return -1;
      x23 = XVECEXP (x3, 0, 3);
      if (XWINT (x23, 0) != 35LL)
        return -1;
      x24 = XVECEXP (x3, 0, 4);
      if (XWINT (x24, 0) != 36LL)
        return -1;
      x25 = XVECEXP (x3, 0, 5);
      if (XWINT (x25, 0) != 37LL)
        return -1;
      x26 = XVECEXP (x3, 0, 6);
      if (XWINT (x26, 0) != 38LL)
        return -1;
      x27 = XVECEXP (x3, 0, 7);
      if (XWINT (x27, 0) != 39LL)
        return -1;
      x28 = XVECEXP (x3, 0, 8);
      if (XWINT (x28, 0) != 40LL)
        return -1;
      x29 = XVECEXP (x3, 0, 9);
      if (XWINT (x29, 0) != 41LL)
        return -1;
      x30 = XVECEXP (x3, 0, 10);
      if (XWINT (x30, 0) != 42LL)
        return -1;
      x31 = XVECEXP (x3, 0, 11);
      if (XWINT (x31, 0) != 43LL)
        return -1;
      x32 = XVECEXP (x3, 0, 12);
      if (XWINT (x32, 0) != 44LL)
        return -1;
      x33 = XVECEXP (x3, 0, 13);
      if (XWINT (x33, 0) != 45LL)
        return -1;
      x34 = XVECEXP (x3, 0, 14);
      if (XWINT (x34, 0) != 46LL)
        return -1;
      x35 = XVECEXP (x3, 0, 15);
      if (XWINT (x35, 0) != 47LL)
        return -1;
      x5 = XVECEXP (x3, 0, 16);
      if (XWINT (x5, 0) != 48LL)
        return -1;
      x6 = XVECEXP (x3, 0, 17);
      if (XWINT (x6, 0) != 49LL)
        return -1;
      x7 = XVECEXP (x3, 0, 18);
      if (XWINT (x7, 0) != 50LL)
        return -1;
      x8 = XVECEXP (x3, 0, 19);
      if (XWINT (x8, 0) != 51LL)
        return -1;
      x9 = XVECEXP (x3, 0, 20);
      if (XWINT (x9, 0) != 52LL)
        return -1;
      x10 = XVECEXP (x3, 0, 21);
      if (XWINT (x10, 0) != 53LL)
        return -1;
      x11 = XVECEXP (x3, 0, 22);
      if (XWINT (x11, 0) != 54LL)
        return -1;
      x12 = XVECEXP (x3, 0, 23);
      if (XWINT (x12, 0) != 55LL)
        return -1;
      x13 = XVECEXP (x3, 0, 24);
      if (XWINT (x13, 0) != 56LL)
        return -1;
      x14 = XVECEXP (x3, 0, 25);
      if (XWINT (x14, 0) != 57LL)
        return -1;
      x15 = XVECEXP (x3, 0, 26);
      if (XWINT (x15, 0) != 58LL)
        return -1;
      x16 = XVECEXP (x3, 0, 27);
      if (XWINT (x16, 0) != 59LL)
        return -1;
      x17 = XVECEXP (x3, 0, 28);
      if (XWINT (x17, 0) != 60LL)
        return -1;
      x18 = XVECEXP (x3, 0, 29);
      if (XWINT (x18, 0) != 61LL)
        return -1;
      x19 = XVECEXP (x3, 0, 30);
      if (XWINT (x19, 0) != 62LL)
        return -1;
      x20 = XVECEXP (x3, 0, 31);
      if (XWINT (x20, 0) != 63LL
          || !register_operand (operands[1], V64QImode)
          || !
#line 7712 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 2556; /* vec_extract_hi_v64qi */

    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];
  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, 1);
  if (pattern383 (x3) != 0)
    return -1;
  x4 = XVECEXP (x3, 0, 0);
  switch (XWINT (x4, 0))
    {
    case 4LL:
      x5 = XVECEXP (x3, 0, 1);
      if (XWINT (x5, 0) != 12LL)
        return -1;
      x6 = XVECEXP (x3, 0, 2);
      if (XWINT (x6, 0) != 5LL)
        return -1;
      x7 = XVECEXP (x3, 0, 3);
      if (XWINT (x7, 0) != 13LL
          || pattern778 (x2) != 0)
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V8QImode:
          if (pattern534 (x2, V8QImode, V16QImode) != 0
              || !
#line 1078 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX))
            return -1;
          return 1199; /* mmx_punpckhbw */

        case V8HImode:
          if (pattern536 (x2, V8HImode, V16HImode) != 0
              || !
#line 12062 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1))
            return -1;
          return 3608; /* vec_interleave_highv8hi */

        default:
          return -1;
        }

    case 0LL:
      x5 = XVECEXP (x3, 0, 1);
      switch (XWINT (x5, 0))
        {
        case 8LL:
          x8 = XEXP (x2, 0);
          x9 = XEXP (x8, 1);
          operands[2] = x9;
          x6 = XVECEXP (x3, 0, 2);
          switch (XWINT (x6, 0))
            {
            case 1LL:
              x7 = XVECEXP (x3, 0, 3);
              if (XWINT (x7, 0) != 9LL)
                return -1;
              x10 = XVECEXP (x3, 0, 4);
              switch (XWINT (x10, 0))
                {
                case 2LL:
                  x11 = XVECEXP (x3, 0, 5);
                  if (XWINT (x11, 0) != 10LL)
                    return -1;
                  x12 = XVECEXP (x3, 0, 6);
                  if (XWINT (x12, 0) != 3LL)
                    return -1;
                  x13 = XVECEXP (x3, 0, 7);
                  if (XWINT (x13, 0) != 11LL)
                    return -1;
                  switch (GET_MODE (operands[0]))
                    {
                    case V8QImode:
                      if (pattern534 (x2, V8QImode, V16QImode) != 0
                          || !
#line 1093 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX))
                        return -1;
                      return 1200; /* mmx_punpcklbw */

                    case V8HImode:
                      if (pattern536 (x2, V8HImode, V16HImode) != 0
                          || !
#line 12130 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1))
                        return -1;
                      return 3614; /* vec_interleave_lowv8hi */

                    default:
                      return -1;
                    }

                case 4LL:
                  x11 = XVECEXP (x3, 0, 5);
                  if (XWINT (x11, 0) != 12LL)
                    return -1;
                  x12 = XVECEXP (x3, 0, 6);
                  if (XWINT (x12, 0) != 5LL)
                    return -1;
                  x13 = XVECEXP (x3, 0, 7);
                  if (XWINT (x13, 0) != 13LL)
                    return -1;
                  switch (GET_MODE (operands[0]))
                    {
                    case V8SFmode:
                      if (pattern534 (x2, V8SFmode, V16SFmode) != 0
                          || !
#line 6271 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && 1))
                        return -1;
                      return 2456; /* avx_unpcklps256 */

                    case V8SImode:
                      if (pattern534 (x2, V8SImode, V16SImode) != 0
                          || !
#line 12205 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1))
                        return -1;
                      return 3622; /* avx2_interleave_lowv8si */

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            case 2LL:
              x7 = XVECEXP (x3, 0, 3);
              if (XWINT (x7, 0) != 10LL)
                return -1;
              x10 = XVECEXP (x3, 0, 4);
              if (XWINT (x10, 0) != 4LL)
                return -1;
              x11 = XVECEXP (x3, 0, 5);
              if (XWINT (x11, 0) != 12LL)
                return -1;
              x12 = XVECEXP (x3, 0, 6);
              if (XWINT (x12, 0) != 6LL)
                return -1;
              x13 = XVECEXP (x3, 0, 7);
              if (XWINT (x13, 0) != 14LL)
                return -1;
              switch (GET_MODE (operands[0]))
                {
                case V8DFmode:
                  if (!register_operand (operands[0], V8DFmode)
                      || pattern535 (x2, V8DFmode, V16DFmode) != 0
                      || !
#line 7938 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                    return -1;
                  return 2565; /* *avx512f_unpcklpd512 */

                case V8DImode:
                  if (pattern534 (x2, V8DImode, V16DImode) != 0
                      || !
#line 8626 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                    return -1;
                  return 2748; /* *avx512f_interleave_lowv8di */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case 0LL:
          if (pattern729 (x3) != 0
              || pattern868 (x2, V8SFmode, V16SFmode) != 0
              || !
#line 6410 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && 1))
            return -1;
          return 2466; /* avx_movsldup256 */

        default:
          return -1;
        }

    case 2LL:
      x5 = XVECEXP (x3, 0, 1);
      if (XWINT (x5, 0) != 10LL)
        return -1;
      x6 = XVECEXP (x3, 0, 2);
      if (XWINT (x6, 0) != 3LL)
        return -1;
      x7 = XVECEXP (x3, 0, 3);
      if (XWINT (x7, 0) != 11LL
          || pattern778 (x2) != 0)
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V8SFmode:
          if (pattern534 (x2, V8SFmode, V16SFmode) != 0
              || !
#line 6183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && 1))
            return -1;
          return 2450; /* avx_unpckhps256 */

        case V8SImode:
          if (pattern534 (x2, V8SImode, V16SImode) != 0
              || !
#line 12150 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1))
            return -1;
          return 3616; /* avx2_interleave_highv8si */

        default:
          return -1;
        }

    case 1LL:
      x6 = XVECEXP (x3, 0, 2);
      if (XWINT (x6, 0) != 3LL)
        return -1;
      x10 = XVECEXP (x3, 0, 4);
      if (XWINT (x10, 0) != 5LL)
        return -1;
      x12 = XVECEXP (x3, 0, 6);
      if (XWINT (x12, 0) != 7LL)
        return -1;
      x5 = XVECEXP (x3, 0, 1);
      switch (XWINT (x5, 0))
        {
        case 1LL:
          x7 = XVECEXP (x3, 0, 3);
          if (XWINT (x7, 0) != 3LL)
            return -1;
          x11 = XVECEXP (x3, 0, 5);
          if (XWINT (x11, 0) != 5LL)
            return -1;
          x13 = XVECEXP (x3, 0, 7);
          if (XWINT (x13, 0) != 7LL
              || pattern868 (x2, V8SFmode, V16SFmode) != 0
              || !
#line 6357 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && 1))
            return -1;
          return 2460; /* avx_movshdup256 */

        case 9LL:
          x7 = XVECEXP (x3, 0, 3);
          if (XWINT (x7, 0) != 11LL)
            return -1;
          x11 = XVECEXP (x3, 0, 5);
          if (XWINT (x11, 0) != 13LL)
            return -1;
          x13 = XVECEXP (x3, 0, 7);
          if (XWINT (x13, 0) != 15LL)
            return -1;
          x8 = XEXP (x2, 0);
          x9 = XEXP (x8, 1);
          operands[2] = x9;
          switch (GET_MODE (operands[0]))
            {
            case V8DFmode:
              if (pattern534 (x2, V8DFmode, V16DFmode) != 0
                  || !
#line 7801 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 2559; /* *avx512f_unpckhpd512 */

            case V8DImode:
              if (pattern534 (x2, V8DImode, V16DImode) != 0
                  || !
#line 8576 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 2742; /* *avx512f_interleave_highv8di */

            default:
              return -1;
            }

        default:
          return -1;
        }

    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];
  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, 1);
  x4 = XVECEXP (x3, 0, 0);
  if (GET_CODE (x4) != CONST_INT)
    return -1;
  x5 = XVECEXP (x3, 0, 1);
  if (GET_CODE (x5) == CONST_INT)
    {
      res = recog_146 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  operands[3] = x4;
  x6 = XEXP (x2, 0);
  x7 = XEXP (x6, 1);
  operands[2] = x7;
  operands[4] = x5;
  x8 = XVECEXP (x3, 0, 2);
  operands[5] = x8;
  x9 = XVECEXP (x3, 0, 3);
  operands[6] = x9;
  x10 = XVECEXP (x3, 0, 4);
  operands[7] = x10;
  x11 = XVECEXP (x3, 0, 5);
  operands[8] = x11;
  x12 = XVECEXP (x3, 0, 6);
  operands[9] = x12;
  x13 = XVECEXP (x3, 0, 7);
  operands[10] = x13;
  switch (GET_MODE (operands[0]))
    {
    case V8SFmode:
      if (pattern534 (x2, V8SFmode, V16SFmode) != 0)
        return -1;
      if (const_0_to_3_operand (operands[3], VOIDmode)
          && const_0_to_3_operand (operands[4], VOIDmode)
          && const_8_to_11_operand (operands[5], VOIDmode)
          && const_8_to_11_operand (operands[6], VOIDmode)
          && const_4_to_7_operand (operands[7], VOIDmode)
          && const_4_to_7_operand (operands[8], VOIDmode)
          && const_12_to_15_operand (operands[9], VOIDmode)
          && const_12_to_15_operand (operands[10], VOIDmode)
          && 
#line 6491 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX
   && 1
   && (INTVAL (operands[3]) == (INTVAL (operands[7]) - 4)
       && INTVAL (operands[4]) == (INTVAL (operands[8]) - 4)
       && INTVAL (operands[5]) == (INTVAL (operands[9]) - 4)
       && INTVAL (operands[6]) == (INTVAL (operands[10]) - 4))))
        return 2472; /* avx_shufps256_1 */
      if (!const_0_to_7_operand (operands[3], VOIDmode)
          || pattern751 () != 0
          || !
#line 12629 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL
   && (INTVAL (operands[3]) == (INTVAL (operands[4]) - 1)
       && INTVAL (operands[3]) == (INTVAL (operands[5]) - 2)
       && INTVAL (operands[3]) == (INTVAL (operands[6]) - 3)
       && INTVAL (operands[7]) == (INTVAL (operands[8]) - 1)
       && INTVAL (operands[7]) == (INTVAL (operands[9]) - 2)
       && INTVAL (operands[7]) == (INTVAL (operands[10]) - 3))))
        return -1;
      return 3666; /* *avx512vl_shuf_f32x4_1 */

    case V8DFmode:
      if (pattern534 (x2, V8DFmode, V16DFmode) != 0)
        return -1;
      if (const_0_to_1_operand (operands[3], VOIDmode)
          && const_8_to_9_operand (operands[4], VOIDmode)
          && const_2_to_3_operand (operands[5], VOIDmode)
          && const_10_to_11_operand (operands[6], VOIDmode)
          && const_4_to_5_operand (operands[7], VOIDmode)
          && const_12_to_13_operand (operands[8], VOIDmode)
          && const_6_to_7_operand (operands[9], VOIDmode)
          && const_14_to_15_operand (operands[10], VOIDmode)
          && 
#line 8444 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return 2735; /* avx512f_shufpd512_1 */
      if (!const_0_to_7_operand (operands[3], VOIDmode)
          || pattern751 () != 0
          || !
#line 12571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && (INTVAL (operands[3]) == (INTVAL (operands[4]) - 1)
       && INTVAL (operands[5]) == (INTVAL (operands[6]) - 1)
       && INTVAL (operands[7]) == (INTVAL (operands[8]) - 1)
       && INTVAL (operands[9]) == (INTVAL (operands[10]) - 1))))
        return -1;
      return 3660; /* avx512f_shuf_f64x2_1 */

    case V8DImode:
      if (pattern752 (x2, V8DImode, V16DImode) != 0
          || !
#line 12571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && (INTVAL (operands[3]) == (INTVAL (operands[4]) - 1)
       && INTVAL (operands[5]) == (INTVAL (operands[6]) - 1)
       && INTVAL (operands[7]) == (INTVAL (operands[8]) - 1)
       && INTVAL (operands[9]) == (INTVAL (operands[10]) - 1))))
        return -1;
      return 3662; /* avx512f_shuf_i64x2_1 */

    case V8SImode:
      if (pattern752 (x2, V8SImode, V16SImode) != 0
          || !
#line 12629 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL
   && (INTVAL (operands[3]) == (INTVAL (operands[4]) - 1)
       && INTVAL (operands[3]) == (INTVAL (operands[5]) - 2)
       && INTVAL (operands[3]) == (INTVAL (operands[6]) - 3)
       && INTVAL (operands[7]) == (INTVAL (operands[8]) - 1)
       && INTVAL (operands[7]) == (INTVAL (operands[9]) - 2)
       && INTVAL (operands[7]) == (INTVAL (operands[10]) - 3))))
        return -1;
      return 3664; /* *avx512vl_shuf_i32x4_1 */

    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];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  x4 = XVECEXP (x3, 0, 2);
  if (GET_CODE (x4) != CONST_INT)
    return -1;
  x5 = XVECEXP (x3, 0, 3);
  if (GET_CODE (x5) != CONST_INT)
    return -1;
  x6 = XVECEXP (x3, 0, 0);
  switch (XWINT (x6, 0))
    {
    case 2LL:
      x7 = XVECEXP (x3, 0, 1);
      if (XWINT (x7, 0) != 6LL
          || XWINT (x4, 0) != 3LL
          || XWINT (x5, 0) != 7LL)
        return -1;
      x8 = XEXP (x2, 0);
      x9 = XEXP (x8, 1);
      operands[2] = x9;
      switch (GET_MODE (operands[0]))
        {
        case V4HImode:
          if (pattern534 (x2, V4HImode, V8HImode) != 0
              || !
#line 1106 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX))
            return -1;
          return 1201; /* mmx_punpckhwd */

        case V4SFmode:
          if (pattern536 (x2, V4SFmode, V8SFmode) != 0
              || !
#line 6231 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1))
            return -1;
          return 2452; /* vec_interleave_highv4sf */

        default:
          return -1;
        }

    case 0LL:
      x7 = XVECEXP (x3, 0, 1);
      switch (XWINT (x7, 0))
        {
        case 4LL:
          x8 = XEXP (x2, 0);
          x9 = XEXP (x8, 1);
          operands[2] = x9;
          switch (XWINT (x4, 0))
            {
            case 1LL:
              if (XWINT (x5, 0) != 5LL)
                return -1;
              switch (GET_MODE (operands[0]))
                {
                case V4HImode:
                  if (pattern534 (x2, V4HImode, V8HImode) != 0
                      || !
#line 1119 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX))
                    return -1;
                  return 1202; /* mmx_punpcklwd */

                case V4SFmode:
                  if (pattern536 (x2, V4SFmode, V8SFmode) != 0
                      || !
#line 6336 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
                    return -1;
                  return 2459; /* vec_interleave_lowv4sf */

                default:
                  return -1;
                }

            case 2LL:
              if (XWINT (x5, 0) != 6LL)
                return -1;
              switch (GET_MODE (operands[0]))
                {
                case V4DFmode:
                  if (!register_operand (operands[0], V4DFmode)
                      || pattern535 (x2, V4DFmode, V8DFmode) != 0
                      || !
#line 7975 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && 1))
                    return -1;
                  return 2567; /* *avx_unpcklpd256 */

                case V4DImode:
                  if (pattern534 (x2, V4DImode, V8DImode) != 0
                      || !
#line 8610 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1))
                    return -1;
                  return 2746; /* avx2_interleave_lowv4di */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case 1LL:
          if (XWINT (x4, 0) != 4LL
              || XWINT (x5, 0) != 5LL
              || pattern675 (x2) != 0
              || !
#line 6139 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (UNKNOWN, V4SFmode, operands)))
            return -1;
          return 2447; /* sse_movlhps */

        case 0LL:
          if (XWINT (x4, 0) != 6LL
              || XWINT (x5, 0) != 6LL
              || pattern676 (x2) != 0
              || !
#line 6426 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE3 && 1))
            return -1;
          return 2468; /* sse3_movsldup */

        default:
          return -1;
        }

    case 6LL:
      x7 = XVECEXP (x3, 0, 1);
      if (XWINT (x7, 0) != 7LL
          || XWINT (x4, 0) != 2LL
          || XWINT (x5, 0) != 3LL
          || pattern675 (x2) != 0
          || !
#line 6093 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
        return -1;
      return 2446; /* sse_movhlps */

    case 1LL:
      if (XWINT (x5, 0) != 7LL)
        return -1;
      x7 = XVECEXP (x3, 0, 1);
      switch (XWINT (x7, 0))
        {
        case 1LL:
          if (XWINT (x4, 0) != 7LL
              || pattern676 (x2) != 0
              || !
#line 6373 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE3 && 1))
            return -1;
          return 2462; /* sse3_movshdup */

        case 5LL:
          if (XWINT (x4, 0) != 3LL)
            return -1;
          x8 = XEXP (x2, 0);
          x9 = XEXP (x8, 1);
          operands[2] = x9;
          switch (GET_MODE (operands[0]))
            {
            case V4DFmode:
              if (pattern534 (x2, V4DFmode, V8DFmode) != 0
                  || !
#line 7816 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && 1))
                return -1;
              return 2561; /* avx_unpckhpd256 */

            case V4DImode:
              if (pattern534 (x2, V4DImode, V8DImode) != 0
                  || !
#line 8560 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1))
                return -1;
              return 2740; /* avx2_interleave_highv4di */

            default:
              return -1;
            }

        default:
          return -1;
        }

    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];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 1);
  operands[2] = x4;
  x5 = XEXP (x2, 1);
  x6 = XVECEXP (x5, 0, 1);
  operands[4] = x6;
  x7 = XVECEXP (x5, 0, 2);
  operands[5] = x7;
  x8 = XVECEXP (x5, 0, 3);
  operands[6] = x8;
  switch (GET_MODE (operands[0]))
    {
    case V4SImode:
      if (pattern639 (x2, V4SImode, V8SImode) != 0
          || !
#line 6570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
        return -1;
      return 2475; /* sse_shufps_v4si */

    case V4SFmode:
      if (pattern639 (x2, V4SFmode, V8SFmode) != 0
          || !
#line 6570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
        return -1;
      return 2476; /* sse_shufps_v4sf */

    case V4DFmode:
      if (pattern534 (x2, V4DFmode, V8DFmode) != 0)
        return -1;
      if (const_0_to_1_operand (operands[3], VOIDmode)
          && const_4_to_5_operand (operands[4], VOIDmode)
          && const_2_to_3_operand (operands[5], VOIDmode)
          && const_6_to_7_operand (operands[6], VOIDmode)
          && 
#line 8493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && 1))
        return 2737; /* avx_shufpd256_1 */
      if (!const_0_to_3_operand (operands[3], VOIDmode)
          || !const_0_to_3_operand (operands[4], VOIDmode)
          || !const_4_to_7_operand (operands[5], VOIDmode)
          || !const_4_to_7_operand (operands[6], VOIDmode)
          || !
#line 12518 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL
   && (INTVAL (operands[3]) == (INTVAL (operands[4]) - 1)
       && INTVAL (operands[5]) == (INTVAL (operands[6]) - 1))))
        return -1;
      return 3658; /* *avx512dq_shuf_f64x2_1 */

    case V4DImode:
      if (pattern534 (x2, V4DImode, V8DImode) != 0
          || pattern638 () != 0
          || !
#line 12518 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL
   && (INTVAL (operands[3]) == (INTVAL (operands[4]) - 1)
       && INTVAL (operands[5]) == (INTVAL (operands[6]) - 1))))
        return -1;
      return 3656; /* *avx512dq_shuf_i64x2_1 */

    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];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  x4 = XVECEXP (x3, 0, 0);
  if (GET_CODE (x4) != CONST_INT)
    return -1;
  x5 = XVECEXP (x3, 0, 1);
  if (GET_CODE (x5) == CONST_INT)
    {
      res = recog_148 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  operands[3] = x4;
  res = recog_149 (x1, insn, pnum_clobbers);
  if (res >= 0)
    return res;
  if (GET_CODE (x5) != CONST_INT)
    return -1;
  x6 = XVECEXP (x3, 0, 2);
  if (GET_CODE (x6) != CONST_INT)
    return -1;
  x7 = XVECEXP (x3, 0, 3);
  if (GET_CODE (x7) != CONST_INT
      || pattern507 (x2, V4SImode, V8SImode) != 0)
    return -1;
  switch (XWINT (x4, 0))
    {
    case 2LL:
      if (XWINT (x5, 0) != 6LL
          || XWINT (x6, 0) != 3LL
          || XWINT (x7, 0) != 7LL
          || !
#line 12185 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1))
        return -1;
      return 3620; /* vec_interleave_highv4si */

    case 0LL:
      if (XWINT (x5, 0) != 4LL
          || XWINT (x6, 0) != 1LL
          || XWINT (x7, 0) != 5LL
          || !
#line 12239 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1))
        return -1;
      return 3626; /* vec_interleave_lowv4si */

    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];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 1);
  operands[2] = x4;
  x5 = XEXP (x2, 1);
  x6 = XVECEXP (x5, 0, 0);
  switch (XWINT (x6, 0))
    {
    case 1LL:
      x7 = XVECEXP (x5, 0, 1);
      if (XWINT (x7, 0) != 3LL)
        return -1;
      switch (pattern537 (x2))
        {
        case 0:
          if (!
#line 1132 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX))
            return -1;
          return 1203; /* mmx_punpckhdq */

        case 1:
          if (!
#line 7889 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && ix86_vec_interleave_v2df_operator_ok (operands, 1)))
            return -1;
          return 2564; /* *vec_interleave_highv2df */

        case 2:
          if (!
#line 8590 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1))
            return -1;
          return 2744; /* vec_interleave_highv2di */

        default:
          return -1;
        }

    case 0LL:
      x7 = XVECEXP (x5, 0, 1);
      if (XWINT (x7, 0) != 2LL)
        return -1;
      switch (pattern537 (x2))
        {
        case 0:
          if (!
#line 1145 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX))
            return -1;
          return 1204; /* mmx_punpckldq */

        case 1:
          if (!
#line 8049 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && ix86_vec_interleave_v2df_operator_ok (operands, 0)))
            return -1;
          return 2570; /* *vec_interleave_lowv2df */

        case 2:
          if (!
#line 8640 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1))
            return -1;
          return 2750; /* vec_interleave_lowv2di */

        default:
          return -1;
        }

    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];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  x4 = XVECEXP (x3, 0, 0);
  if (GET_CODE (x4) != CONST_INT)
    return -1;
  x5 = XVECEXP (x3, 0, 1);
  if (GET_CODE (x5) == CONST_INT)
    {
      res = recog_151 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  operands[3] = x4;
  if (!const_0_to_1_operand (operands[3], VOIDmode))
    return -1;
  x6 = XEXP (x2, 0);
  x7 = XEXP (x6, 1);
  operands[2] = x7;
  operands[4] = x5;
  if (!const_2_to_3_operand (operands[4], VOIDmode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case V2DImode:
      if (pattern536 (x2, V2DImode, V4DImode) != 0
          || !
#line 8658 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))
        return -1;
      return 2752; /* sse2_shufpd_v2di */

    case V2DFmode:
      if (pattern536 (x2, V2DFmode, V4DFmode) != 0
          || !
#line 8658 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))
        return -1;
      return 2753; /* sse2_shufpd_v2df */

    default:
      return -1;
    }
}

static int
recog_153 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, 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);
  x3 = XEXP (x2, 1);
  if (pattern384 (x3) != 0)
    return -1;
  x4 = XVECEXP (x3, 0, 0);
  switch (XWINT (x4, 0))
    {
    case 2LL:
      x5 = XVECEXP (x3, 0, 1);
      if (XWINT (x5, 0) != 18LL)
        return -1;
      x6 = XVECEXP (x3, 0, 2);
      if (XWINT (x6, 0) != 3LL)
        return -1;
      x7 = XVECEXP (x3, 0, 3);
      if (XWINT (x7, 0) != 19LL
          || pattern914 (x3) != 0)
        return -1;
      x8 = XVECEXP (x3, 0, 8);
      if (XWINT (x8, 0) != 10LL)
        return -1;
      x9 = XVECEXP (x3, 0, 9);
      if (XWINT (x9, 0) != 26LL)
        return -1;
      x10 = XVECEXP (x3, 0, 10);
      if (XWINT (x10, 0) != 11LL)
        return -1;
      x11 = XVECEXP (x3, 0, 11);
      if (XWINT (x11, 0) != 27LL
          || pattern931 (x3) != 0)
        return -1;
      x12 = XEXP (x2, 0);
      x13 = XEXP (x12, 1);
      operands[2] = x13;
      switch (GET_MODE (operands[0]))
        {
        case V16SFmode:
          if (pattern534 (x2, V16SFmode, V32SFmode) != 0
              || !
#line 6166 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2448; /* *avx512f_unpckhps512 */

        case V16SImode:
          if (pattern534 (x2, V16SImode, V32SImode) != 0
              || !
#line 12170 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 3618; /* *avx512f_interleave_highv16si */

        default:
          return -1;
        }

    case 0LL:
      x5 = XVECEXP (x3, 0, 1);
      switch (XWINT (x5, 0))
        {
        case 16LL:
          x6 = XVECEXP (x3, 0, 2);
          if (XWINT (x6, 0) != 1LL)
            return -1;
          x7 = XVECEXP (x3, 0, 3);
          if (XWINT (x7, 0) != 17LL)
            return -1;
          x12 = XEXP (x2, 0);
          x13 = XEXP (x12, 1);
          operands[2] = x13;
          x14 = XVECEXP (x3, 0, 4);
          switch (XWINT (x14, 0))
            {
            case 4LL:
              x15 = XVECEXP (x3, 0, 5);
              if (XWINT (x15, 0) != 20LL)
                return -1;
              x16 = XVECEXP (x3, 0, 6);
              if (XWINT (x16, 0) != 5LL)
                return -1;
              x17 = XVECEXP (x3, 0, 7);
              if (XWINT (x17, 0) != 21LL)
                return -1;
              x8 = XVECEXP (x3, 0, 8);
              if (XWINT (x8, 0) != 8LL)
                return -1;
              x9 = XVECEXP (x3, 0, 9);
              if (XWINT (x9, 0) != 24LL)
                return -1;
              x10 = XVECEXP (x3, 0, 10);
              if (XWINT (x10, 0) != 9LL)
                return -1;
              x11 = XVECEXP (x3, 0, 11);
              if (XWINT (x11, 0) != 25LL)
                return -1;
              x18 = XVECEXP (x3, 0, 12);
              if (XWINT (x18, 0) != 12LL)
                return -1;
              x19 = XVECEXP (x3, 0, 13);
              if (XWINT (x19, 0) != 28LL)
                return -1;
              x20 = XVECEXP (x3, 0, 14);
              if (XWINT (x20, 0) != 13LL)
                return -1;
              x21 = XVECEXP (x3, 0, 15);
              if (XWINT (x21, 0) != 29LL)
                return -1;
              switch (GET_MODE (operands[0]))
                {
                case V16SFmode:
                  if (pattern534 (x2, V16SFmode, V32SFmode) != 0
                      || !
#line 6254 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                    return -1;
                  return 2454; /* *avx512f_unpcklps512 */

                case V16SImode:
                  if (pattern534 (x2, V16SImode, V32SImode) != 0
                      || !
#line 12225 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                    return -1;
                  return 3624; /* *avx512f_interleave_lowv16si */

                default:
                  return -1;
                }

            case 2LL:
              x15 = XVECEXP (x3, 0, 5);
              if (XWINT (x15, 0) != 18LL)
                return -1;
              x16 = XVECEXP (x3, 0, 6);
              if (XWINT (x16, 0) != 3LL)
                return -1;
              x17 = XVECEXP (x3, 0, 7);
              if (XWINT (x17, 0) != 19LL)
                return -1;
              x8 = XVECEXP (x3, 0, 8);
              switch (XWINT (x8, 0))
                {
                case 4LL:
                  x9 = XVECEXP (x3, 0, 9);
                  if (XWINT (x9, 0) != 20LL)
                    return -1;
                  x10 = XVECEXP (x3, 0, 10);
                  if (XWINT (x10, 0) != 5LL)
                    return -1;
                  x11 = XVECEXP (x3, 0, 11);
                  if (XWINT (x11, 0) != 21LL)
                    return -1;
                  x18 = XVECEXP (x3, 0, 12);
                  if (XWINT (x18, 0) != 6LL)
                    return -1;
                  x19 = XVECEXP (x3, 0, 13);
                  if (XWINT (x19, 0) != 22LL)
                    return -1;
                  x20 = XVECEXP (x3, 0, 14);
                  if (XWINT (x20, 0) != 7LL)
                    return -1;
                  x21 = XVECEXP (x3, 0, 15);
                  if (XWINT (x21, 0) != 23LL
                      || pattern536 (x2, V16QImode, V32QImode) != 0
                      || !
#line 11994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1))
                    return -1;
                  return 3602; /* vec_interleave_lowv16qi */

                case 8LL:
                  x9 = XVECEXP (x3, 0, 9);
                  if (XWINT (x9, 0) != 24LL)
                    return -1;
                  x10 = XVECEXP (x3, 0, 10);
                  if (XWINT (x10, 0) != 9LL)
                    return -1;
                  x11 = XVECEXP (x3, 0, 11);
                  if (XWINT (x11, 0) != 25LL)
                    return -1;
                  x18 = XVECEXP (x3, 0, 12);
                  if (XWINT (x18, 0) != 10LL)
                    return -1;
                  x19 = XVECEXP (x3, 0, 13);
                  if (XWINT (x19, 0) != 26LL)
                    return -1;
                  x20 = XVECEXP (x3, 0, 14);
                  if (XWINT (x20, 0) != 11LL)
                    return -1;
                  x21 = XVECEXP (x3, 0, 15);
                  if (XWINT (x21, 0) != 27LL
                      || pattern534 (x2, V16HImode, V32HImode) != 0
                      || !
#line 12114 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1 && 1))
                    return -1;
                  return 3612; /* avx2_interleave_lowv16hi */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case 0LL:
          if (pattern729 (x3) != 0)
            return -1;
          x8 = XVECEXP (x3, 0, 8);
          if (XWINT (x8, 0) != 8LL)
            return -1;
          x9 = XVECEXP (x3, 0, 9);
          if (XWINT (x9, 0) != 8LL)
            return -1;
          x10 = XVECEXP (x3, 0, 10);
          if (XWINT (x10, 0) != 10LL)
            return -1;
          x11 = XVECEXP (x3, 0, 11);
          if (XWINT (x11, 0) != 10LL)
            return -1;
          x18 = XVECEXP (x3, 0, 12);
          if (XWINT (x18, 0) != 12LL)
            return -1;
          x19 = XVECEXP (x3, 0, 13);
          if (XWINT (x19, 0) != 12LL)
            return -1;
          x20 = XVECEXP (x3, 0, 14);
          if (XWINT (x20, 0) != 14LL)
            return -1;
          x21 = XVECEXP (x3, 0, 15);
          if (XWINT (x21, 0) != 14LL
              || pattern868 (x2, V16SFmode, V32SFmode) != 0
              || !
#line 6447 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2470; /* *avx512f_movsldup512 */

        default:
          return -1;
        }

    case 1LL:
      x5 = XVECEXP (x3, 0, 1);
      if (XWINT (x5, 0) != 1LL)
        return -1;
      x6 = XVECEXP (x3, 0, 2);
      if (XWINT (x6, 0) != 3LL)
        return -1;
      x7 = XVECEXP (x3, 0, 3);
      if (XWINT (x7, 0) != 3LL)
        return -1;
      x14 = XVECEXP (x3, 0, 4);
      if (XWINT (x14, 0) != 5LL)
        return -1;
      x15 = XVECEXP (x3, 0, 5);
      if (XWINT (x15, 0) != 5LL)
        return -1;
      x16 = XVECEXP (x3, 0, 6);
      if (XWINT (x16, 0) != 7LL)
        return -1;
      x17 = XVECEXP (x3, 0, 7);
      if (XWINT (x17, 0) != 7LL)
        return -1;
      x8 = XVECEXP (x3, 0, 8);
      if (XWINT (x8, 0) != 9LL)
        return -1;
      x9 = XVECEXP (x3, 0, 9);
      if (XWINT (x9, 0) != 9LL)
        return -1;
      x10 = XVECEXP (x3, 0, 10);
      if (XWINT (x10, 0) != 11LL)
        return -1;
      x11 = XVECEXP (x3, 0, 11);
      if (XWINT (x11, 0) != 11LL)
        return -1;
      x18 = XVECEXP (x3, 0, 12);
      if (XWINT (x18, 0) != 13LL)
        return -1;
      x19 = XVECEXP (x3, 0, 13);
      if (XWINT (x19, 0) != 13LL)
        return -1;
      x20 = XVECEXP (x3, 0, 14);
      if (XWINT (x20, 0) != 15LL)
        return -1;
      x21 = XVECEXP (x3, 0, 15);
      if (XWINT (x21, 0) != 15LL
          || pattern868 (x2, V16SFmode, V32SFmode) != 0
          || !
#line 6394 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 2464; /* *avx512f_movshdup512 */

    case 8LL:
      x5 = XVECEXP (x3, 0, 1);
      if (XWINT (x5, 0) != 24LL)
        return -1;
      x6 = XVECEXP (x3, 0, 2);
      if (XWINT (x6, 0) != 9LL)
        return -1;
      x7 = XVECEXP (x3, 0, 3);
      if (XWINT (x7, 0) != 25LL)
        return -1;
      x14 = XVECEXP (x3, 0, 4);
      if (XWINT (x14, 0) != 10LL)
        return -1;
      x15 = XVECEXP (x3, 0, 5);
      if (XWINT (x15, 0) != 26LL)
        return -1;
      x16 = XVECEXP (x3, 0, 6);
      if (XWINT (x16, 0) != 11LL)
        return -1;
      x17 = XVECEXP (x3, 0, 7);
      if (XWINT (x17, 0) != 27LL
          || pattern932 (x3) != 0
          || pattern507 (x2, V16QImode, V32QImode) != 0
          || !
#line 11898 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1))
        return -1;
      return 3596; /* vec_interleave_highv16qi */

    case 4LL:
      x5 = XVECEXP (x3, 0, 1);
      if (XWINT (x5, 0) != 20LL)
        return -1;
      x6 = XVECEXP (x3, 0, 2);
      if (XWINT (x6, 0) != 5LL)
        return -1;
      x7 = XVECEXP (x3, 0, 3);
      if (XWINT (x7, 0) != 21LL
          || pattern914 (x3) != 0
          || pattern932 (x3) != 0
          || pattern947 (x2, V16HImode, V32HImode) != 0
          || !
#line 12046 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1 && 1))
        return -1;
      return 3606; /* avx2_interleave_highv16hi */

    default:
      return -1;
    }
}

static int
recog_154 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, 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);
  x3 = XEXP (x2, 1);
  x4 = XVECEXP (x3, 0, 0);
  if (GET_CODE (x4) != CONST_INT)
    return -1;
  x5 = XVECEXP (x3, 0, 1);
  if (GET_CODE (x5) == CONST_INT)
    {
      res = recog_153 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  operands[3] = x4;
  x6 = XEXP (x2, 0);
  x7 = XEXP (x6, 1);
  operands[2] = x7;
  operands[4] = x5;
  x8 = XVECEXP (x3, 0, 2);
  operands[5] = x8;
  x9 = XVECEXP (x3, 0, 3);
  operands[6] = x9;
  x10 = XVECEXP (x3, 0, 4);
  operands[7] = x10;
  x11 = XVECEXP (x3, 0, 5);
  operands[8] = x11;
  x12 = XVECEXP (x3, 0, 6);
  operands[9] = x12;
  x13 = XVECEXP (x3, 0, 7);
  operands[10] = x13;
  x14 = XVECEXP (x3, 0, 8);
  operands[11] = x14;
  x15 = XVECEXP (x3, 0, 9);
  operands[12] = x15;
  x16 = XVECEXP (x3, 0, 10);
  operands[13] = x16;
  x17 = XVECEXP (x3, 0, 11);
  operands[14] = x17;
  x18 = XVECEXP (x3, 0, 12);
  operands[15] = x18;
  x19 = XVECEXP (x3, 0, 13);
  operands[16] = x19;
  x20 = XVECEXP (x3, 0, 14);
  operands[17] = x20;
  x21 = XVECEXP (x3, 0, 15);
  operands[18] = x21;
  switch (GET_MODE (operands[0]))
    {
    case V16SFmode:
      if (pattern534 (x2, V16SFmode, V32SFmode) != 0)
        return -1;
      if (const_0_to_3_operand (operands[3], VOIDmode)
          && const_0_to_3_operand (operands[4], VOIDmode)
          && const_16_to_19_operand (operands[5], VOIDmode)
          && const_16_to_19_operand (operands[6], VOIDmode)
          && const_4_to_7_operand (operands[7], VOIDmode)
          && const_4_to_7_operand (operands[8], VOIDmode)
          && const_20_to_23_operand (operands[9], VOIDmode)
          && const_20_to_23_operand (operands[10], VOIDmode)
          && const_8_to_11_operand (operands[11], VOIDmode)
          && const_8_to_11_operand (operands[12], VOIDmode)
          && const_24_to_27_operand (operands[13], VOIDmode)
          && const_24_to_27_operand (operands[14], VOIDmode)
          && const_12_to_15_operand (operands[15], VOIDmode)
          && const_12_to_15_operand (operands[16], VOIDmode)
          && const_28_to_31_operand (operands[17], VOIDmode)
          && const_28_to_31_operand (operands[18], VOIDmode)
          && 
#line 8379 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && (INTVAL (operands[3]) == (INTVAL (operands[7]) - 4)
       && INTVAL (operands[4]) == (INTVAL (operands[8]) - 4)
       && INTVAL (operands[5]) == (INTVAL (operands[9]) - 4)
       && INTVAL (operands[6]) == (INTVAL (operands[10]) - 4)
       && INTVAL (operands[3]) == (INTVAL (operands[11]) - 8)
       && INTVAL (operands[4]) == (INTVAL (operands[12]) - 8)
       && INTVAL (operands[5]) == (INTVAL (operands[13]) - 8)
       && INTVAL (operands[6]) == (INTVAL (operands[14]) - 8)
       && INTVAL (operands[3]) == (INTVAL (operands[15]) - 12)
       && INTVAL (operands[4]) == (INTVAL (operands[16]) - 12)
       && INTVAL (operands[5]) == (INTVAL (operands[17]) - 12)
       && INTVAL (operands[6]) == (INTVAL (operands[18]) - 12))))
        return 2733; /* avx512f_shufps512_1 */
      if (!const_0_to_15_operand (operands[3], VOIDmode)
          || pattern934 () != 0
          || !
#line 12703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && (INTVAL (operands[3]) == (INTVAL (operands[4]) - 1)
       && INTVAL (operands[3]) == (INTVAL (operands[5]) - 2)
       && INTVAL (operands[3]) == (INTVAL (operands[6]) - 3)
       && INTVAL (operands[7]) == (INTVAL (operands[8]) - 1)
       && INTVAL (operands[7]) == (INTVAL (operands[9]) - 2)
       && INTVAL (operands[7]) == (INTVAL (operands[10]) - 3)
       && INTVAL (operands[11]) == (INTVAL (operands[12]) - 1)
       && INTVAL (operands[11]) == (INTVAL (operands[13]) - 2)
       && INTVAL (operands[11]) == (INTVAL (operands[14]) - 3)
       && INTVAL (operands[15]) == (INTVAL (operands[16]) - 1)
       && INTVAL (operands[15]) == (INTVAL (operands[17]) - 2)
       && INTVAL (operands[15]) == (INTVAL (operands[18]) - 3))))
        return -1;
      return 3668; /* avx512f_shuf_f32x4_1 */

    case V16SImode:
      if (pattern534 (x2, V16SImode, V32SImode) != 0
          || !const_0_to_15_operand (operands[3], VOIDmode)
          || pattern934 () != 0
          || !
#line 12703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F
   && (INTVAL (operands[3]) == (INTVAL (operands[4]) - 1)
       && INTVAL (operands[3]) == (INTVAL (operands[5]) - 2)
       && INTVAL (operands[3]) == (INTVAL (operands[6]) - 3)
       && INTVAL (operands[7]) == (INTVAL (operands[8]) - 1)
       && INTVAL (operands[7]) == (INTVAL (operands[9]) - 2)
       && INTVAL (operands[7]) == (INTVAL (operands[10]) - 3)
       && INTVAL (operands[11]) == (INTVAL (operands[12]) - 1)
       && INTVAL (operands[11]) == (INTVAL (operands[13]) - 2)
       && INTVAL (operands[11]) == (INTVAL (operands[14]) - 3)
       && INTVAL (operands[15]) == (INTVAL (operands[16]) - 1)
       && INTVAL (operands[15]) == (INTVAL (operands[17]) - 2)
       && INTVAL (operands[15]) == (INTVAL (operands[18]) - 3))))
        return -1;
      return 3670; /* avx512f_shuf_i32x4_1 */

    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];
  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, x67;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  if (pattern279 (x3) != 0)
    return -1;
  x4 = XVECEXP (x3, 0, 32);
  if (GET_CODE (x4) != CONST_INT)
    return -1;
  x5 = XVECEXP (x3, 0, 33);
  if (GET_CODE (x5) != CONST_INT)
    return -1;
  x6 = XVECEXP (x3, 0, 34);
  if (GET_CODE (x6) != CONST_INT)
    return -1;
  x7 = XVECEXP (x3, 0, 35);
  if (GET_CODE (x7) != CONST_INT)
    return -1;
  x8 = XVECEXP (x3, 0, 36);
  if (GET_CODE (x8) != CONST_INT)
    return -1;
  x9 = XVECEXP (x3, 0, 37);
  if (GET_CODE (x9) != CONST_INT)
    return -1;
  x10 = XVECEXP (x3, 0, 38);
  if (GET_CODE (x10) != CONST_INT)
    return -1;
  x11 = XVECEXP (x3, 0, 39);
  if (GET_CODE (x11) != CONST_INT)
    return -1;
  x12 = XVECEXP (x3, 0, 40);
  if (GET_CODE (x12) != CONST_INT)
    return -1;
  x13 = XVECEXP (x3, 0, 41);
  if (GET_CODE (x13) != CONST_INT)
    return -1;
  x14 = XVECEXP (x3, 0, 42);
  if (GET_CODE (x14) != CONST_INT)
    return -1;
  x15 = XVECEXP (x3, 0, 43);
  if (GET_CODE (x15) != CONST_INT)
    return -1;
  x16 = XVECEXP (x3, 0, 44);
  if (GET_CODE (x16) != CONST_INT)
    return -1;
  x17 = XVECEXP (x3, 0, 45);
  if (GET_CODE (x17) != CONST_INT)
    return -1;
  x18 = XVECEXP (x3, 0, 46);
  if (GET_CODE (x18) != CONST_INT)
    return -1;
  x19 = XVECEXP (x3, 0, 47);
  if (GET_CODE (x19) != CONST_INT)
    return -1;
  x20 = XVECEXP (x3, 0, 48);
  if (GET_CODE (x20) != CONST_INT)
    return -1;
  x21 = XVECEXP (x3, 0, 49);
  if (GET_CODE (x21) != CONST_INT)
    return -1;
  x22 = XVECEXP (x3, 0, 50);
  if (GET_CODE (x22) != CONST_INT)
    return -1;
  x23 = XVECEXP (x3, 0, 51);
  if (GET_CODE (x23) != CONST_INT)
    return -1;
  x24 = XVECEXP (x3, 0, 52);
  if (GET_CODE (x24) != CONST_INT)
    return -1;
  x25 = XVECEXP (x3, 0, 53);
  if (GET_CODE (x25) != CONST_INT)
    return -1;
  x26 = XVECEXP (x3, 0, 54);
  if (GET_CODE (x26) != CONST_INT)
    return -1;
  x27 = XVECEXP (x3, 0, 55);
  if (GET_CODE (x27) != CONST_INT)
    return -1;
  x28 = XVECEXP (x3, 0, 56);
  if (GET_CODE (x28) != CONST_INT)
    return -1;
  x29 = XVECEXP (x3, 0, 57);
  if (GET_CODE (x29) != CONST_INT)
    return -1;
  x30 = XVECEXP (x3, 0, 58);
  if (GET_CODE (x30) != CONST_INT)
    return -1;
  x31 = XVECEXP (x3, 0, 59);
  if (GET_CODE (x31) != CONST_INT)
    return -1;
  x32 = XVECEXP (x3, 0, 60);
  if (GET_CODE (x32) != CONST_INT)
    return -1;
  x33 = XVECEXP (x3, 0, 61);
  if (GET_CODE (x33) != CONST_INT)
    return -1;
  x34 = XVECEXP (x3, 0, 62);
  if (GET_CODE (x34) != CONST_INT)
    return -1;
  x35 = XVECEXP (x3, 0, 63);
  if (GET_CODE (x35) != CONST_INT
      || pattern947 (x2, V64QImode, V128QImode) != 0)
    return -1;
  x36 = XVECEXP (x3, 0, 0);
  switch (XWINT (x36, 0))
    {
    case 8LL:
      x37 = XVECEXP (x3, 0, 1);
      if (XWINT (x37, 0) != 72LL)
        return -1;
      x38 = XVECEXP (x3, 0, 2);
      if (XWINT (x38, 0) != 9LL)
        return -1;
      x39 = XVECEXP (x3, 0, 3);
      if (XWINT (x39, 0) != 73LL)
        return -1;
      x40 = XVECEXP (x3, 0, 4);
      if (XWINT (x40, 0) != 10LL)
        return -1;
      x41 = XVECEXP (x3, 0, 5);
      if (XWINT (x41, 0) != 74LL)
        return -1;
      x42 = XVECEXP (x3, 0, 6);
      if (XWINT (x42, 0) != 11LL)
        return -1;
      x43 = XVECEXP (x3, 0, 7);
      if (XWINT (x43, 0) != 75LL)
        return -1;
      x44 = XVECEXP (x3, 0, 8);
      if (XWINT (x44, 0) != 12LL)
        return -1;
      x45 = XVECEXP (x3, 0, 9);
      if (XWINT (x45, 0) != 76LL)
        return -1;
      x46 = XVECEXP (x3, 0, 10);
      if (XWINT (x46, 0) != 13LL)
        return -1;
      x47 = XVECEXP (x3, 0, 11);
      if (XWINT (x47, 0) != 77LL)
        return -1;
      x48 = XVECEXP (x3, 0, 12);
      if (XWINT (x48, 0) != 14LL)
        return -1;
      x49 = XVECEXP (x3, 0, 13);
      if (XWINT (x49, 0) != 78LL)
        return -1;
      x50 = XVECEXP (x3, 0, 14);
      if (XWINT (x50, 0) != 15LL)
        return -1;
      x51 = XVECEXP (x3, 0, 15);
      if (XWINT (x51, 0) != 79LL)
        return -1;
      x52 = XVECEXP (x3, 0, 16);
      if (XWINT (x52, 0) != 24LL)
        return -1;
      x53 = XVECEXP (x3, 0, 17);
      if (XWINT (x53, 0) != 88LL)
        return -1;
      x54 = XVECEXP (x3, 0, 18);
      if (XWINT (x54, 0) != 25LL)
        return -1;
      x55 = XVECEXP (x3, 0, 19);
      if (XWINT (x55, 0) != 89LL)
        return -1;
      x56 = XVECEXP (x3, 0, 20);
      if (XWINT (x56, 0) != 26LL)
        return -1;
      x57 = XVECEXP (x3, 0, 21);
      if (XWINT (x57, 0) != 90LL)
        return -1;
      x58 = XVECEXP (x3, 0, 22);
      if (XWINT (x58, 0) != 27LL)
        return -1;
      x59 = XVECEXP (x3, 0, 23);
      if (XWINT (x59, 0) != 91LL)
        return -1;
      x60 = XVECEXP (x3, 0, 24);
      if (XWINT (x60, 0) != 28LL)
        return -1;
      x61 = XVECEXP (x3, 0, 25);
      if (XWINT (x61, 0) != 92LL)
        return -1;
      x62 = XVECEXP (x3, 0, 26);
      if (XWINT (x62, 0) != 29LL)
        return -1;
      x63 = XVECEXP (x3, 0, 27);
      if (XWINT (x63, 0) != 93LL)
        return -1;
      x64 = XVECEXP (x3, 0, 28);
      if (XWINT (x64, 0) != 30LL)
        return -1;
      x65 = XVECEXP (x3, 0, 29);
      if (XWINT (x65, 0) != 94LL)
        return -1;
      x66 = XVECEXP (x3, 0, 30);
      if (XWINT (x66, 0) != 31LL)
        return -1;
      x67 = XVECEXP (x3, 0, 31);
      if (XWINT (x67, 0) != 95LL
          || XWINT (x4, 0) != 40LL
          || XWINT (x5, 0) != 104LL
          || XWINT (x6, 0) != 41LL
          || XWINT (x7, 0) != 105LL
          || XWINT (x8, 0) != 42LL
          || XWINT (x9, 0) != 106LL
          || XWINT (x10, 0) != 43LL
          || XWINT (x11, 0) != 107LL
          || XWINT (x12, 0) != 44LL
          || XWINT (x13, 0) != 108LL
          || XWINT (x14, 0) != 45LL
          || XWINT (x15, 0) != 109LL
          || XWINT (x16, 0) != 46LL
          || XWINT (x17, 0) != 110LL
          || XWINT (x18, 0) != 47LL
          || XWINT (x19, 0) != 111LL
          || XWINT (x20, 0) != 56LL
          || XWINT (x21, 0) != 120LL
          || XWINT (x22, 0) != 57LL
          || XWINT (x23, 0) != 121LL
          || XWINT (x24, 0) != 58LL
          || XWINT (x25, 0) != 122LL
          || XWINT (x26, 0) != 59LL
          || XWINT (x27, 0) != 123LL
          || XWINT (x28, 0) != 60LL
          || XWINT (x29, 0) != 124LL
          || XWINT (x30, 0) != 61LL
          || XWINT (x31, 0) != 125LL
          || XWINT (x32, 0) != 62LL
          || XWINT (x33, 0) != 126LL
          || XWINT (x34, 0) != 63LL
          || XWINT (x35, 0) != 127LL
          || !
#line 11850 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
        return -1;
      return 3592; /* avx512bw_interleave_highv64qi */

    case 0LL:
      x37 = XVECEXP (x3, 0, 1);
      if (XWINT (x37, 0) != 64LL)
        return -1;
      x38 = XVECEXP (x3, 0, 2);
      if (XWINT (x38, 0) != 1LL)
        return -1;
      x39 = XVECEXP (x3, 0, 3);
      if (XWINT (x39, 0) != 65LL)
        return -1;
      x40 = XVECEXP (x3, 0, 4);
      if (XWINT (x40, 0) != 2LL)
        return -1;
      x41 = XVECEXP (x3, 0, 5);
      if (XWINT (x41, 0) != 66LL)
        return -1;
      x42 = XVECEXP (x3, 0, 6);
      if (XWINT (x42, 0) != 3LL)
        return -1;
      x43 = XVECEXP (x3, 0, 7);
      if (XWINT (x43, 0) != 67LL)
        return -1;
      x44 = XVECEXP (x3, 0, 8);
      if (XWINT (x44, 0) != 4LL)
        return -1;
      x45 = XVECEXP (x3, 0, 9);
      if (XWINT (x45, 0) != 68LL)
        return -1;
      x46 = XVECEXP (x3, 0, 10);
      if (XWINT (x46, 0) != 5LL)
        return -1;
      x47 = XVECEXP (x3, 0, 11);
      if (XWINT (x47, 0) != 69LL)
        return -1;
      x48 = XVECEXP (x3, 0, 12);
      if (XWINT (x48, 0) != 6LL)
        return -1;
      x49 = XVECEXP (x3, 0, 13);
      if (XWINT (x49, 0) != 70LL)
        return -1;
      x50 = XVECEXP (x3, 0, 14);
      if (XWINT (x50, 0) != 7LL)
        return -1;
      x51 = XVECEXP (x3, 0, 15);
      if (XWINT (x51, 0) != 71LL)
        return -1;
      x52 = XVECEXP (x3, 0, 16);
      if (XWINT (x52, 0) != 16LL)
        return -1;
      x53 = XVECEXP (x3, 0, 17);
      if (XWINT (x53, 0) != 80LL)
        return -1;
      x54 = XVECEXP (x3, 0, 18);
      if (XWINT (x54, 0) != 17LL)
        return -1;
      x55 = XVECEXP (x3, 0, 19);
      if (XWINT (x55, 0) != 81LL)
        return -1;
      x56 = XVECEXP (x3, 0, 20);
      if (XWINT (x56, 0) != 18LL)
        return -1;
      x57 = XVECEXP (x3, 0, 21);
      if (XWINT (x57, 0) != 82LL)
        return -1;
      x58 = XVECEXP (x3, 0, 22);
      if (XWINT (x58, 0) != 19LL)
        return -1;
      x59 = XVECEXP (x3, 0, 23);
      if (XWINT (x59, 0) != 83LL)
        return -1;
      x60 = XVECEXP (x3, 0, 24);
      if (XWINT (x60, 0) != 20LL)
        return -1;
      x61 = XVECEXP (x3, 0, 25);
      if (XWINT (x61, 0) != 84LL)
        return -1;
      x62 = XVECEXP (x3, 0, 26);
      if (XWINT (x62, 0) != 21LL)
        return -1;
      x63 = XVECEXP (x3, 0, 27);
      if (XWINT (x63, 0) != 85LL)
        return -1;
      x64 = XVECEXP (x3, 0, 28);
      if (XWINT (x64, 0) != 22LL)
        return -1;
      x65 = XVECEXP (x3, 0, 29);
      if (XWINT (x65, 0) != 86LL)
        return -1;
      x66 = XVECEXP (x3, 0, 30);
      if (XWINT (x66, 0) != 23LL)
        return -1;
      x67 = XVECEXP (x3, 0, 31);
      if (XWINT (x67, 0) != 87LL
          || XWINT (x4, 0) != 32LL
          || XWINT (x5, 0) != 96LL
          || XWINT (x6, 0) != 33LL
          || XWINT (x7, 0) != 97LL
          || XWINT (x8, 0) != 34LL
          || XWINT (x9, 0) != 98LL
          || XWINT (x10, 0) != 35LL
          || XWINT (x11, 0) != 99LL
          || XWINT (x12, 0) != 36LL
          || XWINT (x13, 0) != 100LL
          || XWINT (x14, 0) != 37LL
          || XWINT (x15, 0) != 101LL
          || XWINT (x16, 0) != 38LL
          || XWINT (x17, 0) != 102LL
          || XWINT (x18, 0) != 39LL
          || XWINT (x19, 0) != 103LL
          || XWINT (x20, 0) != 48LL
          || XWINT (x21, 0) != 112LL
          || XWINT (x22, 0) != 49LL
          || XWINT (x23, 0) != 113LL
          || XWINT (x24, 0) != 50LL
          || XWINT (x25, 0) != 114LL
          || XWINT (x26, 0) != 51LL
          || XWINT (x27, 0) != 115LL
          || XWINT (x28, 0) != 52LL
          || XWINT (x29, 0) != 116LL
          || XWINT (x30, 0) != 53LL
          || XWINT (x31, 0) != 117LL
          || XWINT (x32, 0) != 54LL
          || XWINT (x33, 0) != 118LL
          || XWINT (x34, 0) != 55LL
          || XWINT (x35, 0) != 119LL
          || !
#line 11946 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
        return -1;
      return 3598; /* avx512bw_interleave_lowv64qi */

    default:
      return -1;
    }
}

static int
recog_156 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, 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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  if (pattern279 (x3) != 0)
    return -1;
  x4 = XEXP (x2, 0);
  x5 = XEXP (x4, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 0);
  switch (XWINT (x6, 0))
    {
    case 8LL:
      x7 = XVECEXP (x3, 0, 1);
      if (XWINT (x7, 0) != 40LL)
        return -1;
      x8 = XVECEXP (x3, 0, 2);
      if (XWINT (x8, 0) != 9LL)
        return -1;
      x9 = XVECEXP (x3, 0, 3);
      if (XWINT (x9, 0) != 41LL)
        return -1;
      x10 = XVECEXP (x3, 0, 4);
      if (XWINT (x10, 0) != 10LL)
        return -1;
      x11 = XVECEXP (x3, 0, 5);
      if (XWINT (x11, 0) != 42LL)
        return -1;
      x12 = XVECEXP (x3, 0, 6);
      if (XWINT (x12, 0) != 11LL)
        return -1;
      x13 = XVECEXP (x3, 0, 7);
      if (XWINT (x13, 0) != 43LL
          || pattern950 (x3) != 0)
        return -1;
      x14 = XVECEXP (x3, 0, 16);
      if (XWINT (x14, 0) != 24LL)
        return -1;
      x15 = XVECEXP (x3, 0, 17);
      if (XWINT (x15, 0) != 56LL)
        return -1;
      x16 = XVECEXP (x3, 0, 18);
      if (XWINT (x16, 0) != 25LL)
        return -1;
      x17 = XVECEXP (x3, 0, 19);
      if (XWINT (x17, 0) != 57LL)
        return -1;
      x18 = XVECEXP (x3, 0, 20);
      if (XWINT (x18, 0) != 26LL)
        return -1;
      x19 = XVECEXP (x3, 0, 21);
      if (XWINT (x19, 0) != 58LL)
        return -1;
      x20 = XVECEXP (x3, 0, 22);
      if (XWINT (x20, 0) != 27LL)
        return -1;
      x21 = XVECEXP (x3, 0, 23);
      if (XWINT (x21, 0) != 59LL
          || pattern955 (x2, V32QImode, V64QImode) != 0
          || !
#line 11878 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1))
        return -1;
      return 3594; /* avx2_interleave_highv32qi */

    case 0LL:
      x7 = XVECEXP (x3, 0, 1);
      if (XWINT (x7, 0) != 32LL)
        return -1;
      x8 = XVECEXP (x3, 0, 2);
      if (XWINT (x8, 0) != 1LL)
        return -1;
      x9 = XVECEXP (x3, 0, 3);
      if (XWINT (x9, 0) != 33LL)
        return -1;
      x10 = XVECEXP (x3, 0, 4);
      if (XWINT (x10, 0) != 2LL)
        return -1;
      x11 = XVECEXP (x3, 0, 5);
      if (XWINT (x11, 0) != 34LL)
        return -1;
      x12 = XVECEXP (x3, 0, 6);
      if (XWINT (x12, 0) != 3LL)
        return -1;
      x13 = XVECEXP (x3, 0, 7);
      if (XWINT (x13, 0) != 35LL)
        return -1;
      x14 = XVECEXP (x3, 0, 16);
      if (XWINT (x14, 0) != 16LL)
        return -1;
      x15 = XVECEXP (x3, 0, 17);
      if (XWINT (x15, 0) != 48LL)
        return -1;
      x16 = XVECEXP (x3, 0, 18);
      if (XWINT (x16, 0) != 17LL)
        return -1;
      x17 = XVECEXP (x3, 0, 19);
      if (XWINT (x17, 0) != 49LL)
        return -1;
      x18 = XVECEXP (x3, 0, 20);
      if (XWINT (x18, 0) != 18LL)
        return -1;
      x19 = XVECEXP (x3, 0, 21);
      if (XWINT (x19, 0) != 50LL)
        return -1;
      x20 = XVECEXP (x3, 0, 22);
      if (XWINT (x20, 0) != 19LL)
        return -1;
      x21 = XVECEXP (x3, 0, 23);
      if (XWINT (x21, 0) != 51LL)
        return -1;
      x22 = XVECEXP (x3, 0, 8);
      switch (XWINT (x22, 0))
        {
        case 4LL:
          x23 = XVECEXP (x3, 0, 9);
          if (XWINT (x23, 0) != 36LL)
            return -1;
          x24 = XVECEXP (x3, 0, 10);
          if (XWINT (x24, 0) != 5LL)
            return -1;
          x25 = XVECEXP (x3, 0, 11);
          if (XWINT (x25, 0) != 37LL)
            return -1;
          x26 = XVECEXP (x3, 0, 12);
          if (XWINT (x26, 0) != 6LL)
            return -1;
          x27 = XVECEXP (x3, 0, 13);
          if (XWINT (x27, 0) != 38LL)
            return -1;
          x28 = XVECEXP (x3, 0, 14);
          if (XWINT (x28, 0) != 7LL)
            return -1;
          x29 = XVECEXP (x3, 0, 15);
          if (XWINT (x29, 0) != 39LL)
            return -1;
          x30 = XVECEXP (x3, 0, 24);
          if (XWINT (x30, 0) != 20LL)
            return -1;
          x31 = XVECEXP (x3, 0, 25);
          if (XWINT (x31, 0) != 52LL)
            return -1;
          x32 = XVECEXP (x3, 0, 26);
          if (XWINT (x32, 0) != 21LL)
            return -1;
          x33 = XVECEXP (x3, 0, 27);
          if (XWINT (x33, 0) != 53LL)
            return -1;
          x34 = XVECEXP (x3, 0, 28);
          if (XWINT (x34, 0) != 22LL)
            return -1;
          x35 = XVECEXP (x3, 0, 29);
          if (XWINT (x35, 0) != 54LL)
            return -1;
          x36 = XVECEXP (x3, 0, 30);
          if (XWINT (x36, 0) != 23LL)
            return -1;
          x37 = XVECEXP (x3, 0, 31);
          if (XWINT (x37, 0) != 55LL
              || pattern534 (x2, V32QImode, V64QImode) != 0
              || !
#line 11974 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && 1 && 1))
            return -1;
          return 3600; /* avx2_interleave_lowv32qi */

        case 8LL:
          x23 = XVECEXP (x3, 0, 9);
          if (XWINT (x23, 0) != 40LL)
            return -1;
          x24 = XVECEXP (x3, 0, 10);
          if (XWINT (x24, 0) != 9LL)
            return -1;
          x25 = XVECEXP (x3, 0, 11);
          if (XWINT (x25, 0) != 41LL)
            return -1;
          x26 = XVECEXP (x3, 0, 12);
          if (XWINT (x26, 0) != 10LL)
            return -1;
          x27 = XVECEXP (x3, 0, 13);
          if (XWINT (x27, 0) != 42LL)
            return -1;
          x28 = XVECEXP (x3, 0, 14);
          if (XWINT (x28, 0) != 11LL)
            return -1;
          x29 = XVECEXP (x3, 0, 15);
          if (XWINT (x29, 0) != 43LL)
            return -1;
          x30 = XVECEXP (x3, 0, 24);
          if (XWINT (x30, 0) != 24LL)
            return -1;
          x31 = XVECEXP (x3, 0, 25);
          if (XWINT (x31, 0) != 56LL)
            return -1;
          x32 = XVECEXP (x3, 0, 26);
          if (XWINT (x32, 0) != 25LL)
            return -1;
          x33 = XVECEXP (x3, 0, 27);
          if (XWINT (x33, 0) != 57LL)
            return -1;
          x34 = XVECEXP (x3, 0, 28);
          if (XWINT (x34, 0) != 26LL)
            return -1;
          x35 = XVECEXP (x3, 0, 29);
          if (XWINT (x35, 0) != 58LL)
            return -1;
          x36 = XVECEXP (x3, 0, 30);
          if (XWINT (x36, 0) != 27LL)
            return -1;
          x37 = XVECEXP (x3, 0, 31);
          if (XWINT (x37, 0) != 59LL
              || pattern534 (x2, V32HImode, V64HImode) != 0
              || !
#line 12094 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
            return -1;
          return 3610; /* *avx512bw_interleave_lowv32hi */

        default:
          return -1;
        }

    case 4LL:
      x7 = XVECEXP (x3, 0, 1);
      if (XWINT (x7, 0) != 36LL)
        return -1;
      x8 = XVECEXP (x3, 0, 2);
      if (XWINT (x8, 0) != 5LL)
        return -1;
      x9 = XVECEXP (x3, 0, 3);
      if (XWINT (x9, 0) != 37LL)
        return -1;
      x10 = XVECEXP (x3, 0, 4);
      if (XWINT (x10, 0) != 6LL)
        return -1;
      x11 = XVECEXP (x3, 0, 5);
      if (XWINT (x11, 0) != 38LL)
        return -1;
      x12 = XVECEXP (x3, 0, 6);
      if (XWINT (x12, 0) != 7LL)
        return -1;
      x13 = XVECEXP (x3, 0, 7);
      if (XWINT (x13, 0) != 39LL
          || pattern950 (x3) != 0)
        return -1;
      x14 = XVECEXP (x3, 0, 16);
      if (XWINT (x14, 0) != 20LL)
        return -1;
      x15 = XVECEXP (x3, 0, 17);
      if (XWINT (x15, 0) != 52LL)
        return -1;
      x16 = XVECEXP (x3, 0, 18);
      if (XWINT (x16, 0) != 21LL)
        return -1;
      x17 = XVECEXP (x3, 0, 19);
      if (XWINT (x17, 0) != 53LL)
        return -1;
      x18 = XVECEXP (x3, 0, 20);
      if (XWINT (x18, 0) != 22LL)
        return -1;
      x19 = XVECEXP (x3, 0, 21);
      if (XWINT (x19, 0) != 54LL)
        return -1;
      x20 = XVECEXP (x3, 0, 22);
      if (XWINT (x20, 0) != 23LL)
        return -1;
      x21 = XVECEXP (x3, 0, 23);
      if (XWINT (x21, 0) != 55LL
          || pattern955 (x2, V32HImode, V64HImode) != 0
          || !
#line 12026 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
        return -1;
      return 3604; /* avx512bw_interleave_highv32hi */

    default:
      return -1;
    }
}

static int
recog_157 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, 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 (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:
    case MEM:
      operands[1] = x5;
      switch (XVECLEN (x3, 0))
        {
        case 2:
          res = recog_134 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

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

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

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

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

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

        default:
          break;
        }
      if (XVECLEN (x3, 0) < 1)
        return -1;
      operands[2] = x3;
      x6 = XVECEXP (x3, 0, 0);
      operands[3] = x6;
      if (!const_int_operand (operands[3], VOIDmode))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V4SFmode:
          if (!register_operand (operands[0], V4SFmode)
              || GET_MODE (x2) != V4SFmode)
            return -1;
          if (nonimmediate_operand (operands[1], V4SFmode))
            {
              if (avx_vbroadcast_operand (operands[2], VOIDmode)
                  && 
#line 17594 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
                return 4320; /* *avx_vperm_broadcast_v4sf */
              if (
#line 17709 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && 1
   && avx_vpermilp_parallel (operands[2], V4SFmode)))
                return 4327; /* *avx_vpermilpv4sf */
            }
          if (!register_operand (operands[1], V4SFmode)
              || !palignr_operand (operands[2], VOIDmode)
              || !
#line 18077 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3))
            return -1;
          return 4465; /* *ssse3_palignrv4sf_perm */

        case V8SFmode:
          if (!register_operand (operands[0], V8SFmode)
              || GET_MODE (x2) != V8SFmode
              || !nonimmediate_operand (operands[1], V8SFmode))
            return -1;
          if (avx_vbroadcast_operand (operands[2], VOIDmode)
              && 
#line 17622 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return 4321; /* *avx_vperm_broadcast_v8sf */
          if (!(
#line 17709 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && 1
   && avx_vpermilp_parallel (operands[2], V8SFmode)) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 4325; /* *avx_vpermilpv8sf */

        case V4DFmode:
          if (!register_operand (operands[0], V4DFmode)
              || GET_MODE (x2) != V4DFmode
              || !nonimmediate_operand (operands[1], V4DFmode))
            return -1;
          if (avx_vbroadcast_operand (operands[2], VOIDmode)
              && 
#line 17622 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return 4322; /* *avx_vperm_broadcast_v4df */
          if (!(
#line 17709 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && 1
   && avx_vpermilp_parallel (operands[2], V4DFmode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 4331; /* *avx_vpermilpv4df */

        case V16SFmode:
          if (!register_operand (operands[0], V16SFmode)
              || GET_MODE (x2) != V16SFmode
              || !nonimmediate_operand (operands[1], V16SFmode)
              || !(
#line 17709 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && 1
   && avx_vpermilp_parallel (operands[2], V16SFmode)) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 4323; /* *avx512f_vpermilpv16sf */

        case V8DFmode:
          if (!register_operand (operands[0], V8DFmode)
              || GET_MODE (x2) != V8DFmode
              || !nonimmediate_operand (operands[1], V8DFmode)
              || !(
#line 17709 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && 1
   && avx_vpermilp_parallel (operands[2], V8DFmode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 4329; /* *avx512f_vpermilpv8df */

        case V2DFmode:
          if (!register_operand (operands[0], V2DFmode)
              || GET_MODE (x2) != V2DFmode)
            return -1;
          if (nonimmediate_operand (operands[1], V2DFmode)
              && (
#line 17709 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && 1
   && avx_vpermilp_parallel (operands[2], V2DFmode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return 4333; /* *avx_vpermilpv2df */
          if (!register_operand (operands[1], V2DFmode)
              || !palignr_operand (operands[2], VOIDmode)
              || !(
#line 18077 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3) && 
#line 199 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return -1;
          return 4466; /* *ssse3_palignrv2df_perm */

        case V16QImode:
          if (pattern506 (x2, V16QImode) != 0
              || !
#line 18077 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3))
            return -1;
          return 4461; /* *ssse3_palignrv16qi_perm */

        case V8HImode:
          if (pattern506 (x2, V8HImode) != 0
              || !
#line 18077 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3))
            return -1;
          return 4462; /* *ssse3_palignrv8hi_perm */

        case V4SImode:
          if (pattern506 (x2, V4SImode) != 0
              || !
#line 18077 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3))
            return -1;
          return 4463; /* *ssse3_palignrv4si_perm */

        case V2DImode:
          if (pattern506 (x2, V2DImode) != 0
              || !
#line 18077 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3))
            return -1;
          return 4464; /* *ssse3_palignrv2di_perm */

        default:
          return -1;
        }

    case VEC_CONCAT:
      x7 = XEXP (x5, 0);
      operands[1] = x7;
      switch (XVECLEN (x3, 0))
        {
        case 8:
          res = recog_147 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

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

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

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

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

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

        default:
          break;
        }
      if (XVECLEN (x3, 0) < 1)
        return -1;
      operands[3] = x3;
      x8 = XEXP (x5, 1);
      operands[2] = x8;
      x6 = XVECEXP (x3, 0, 0);
      operands[4] = x6;
      if (!const_int_operand (operands[4], VOIDmode))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V8SImode:
          if (pattern534 (x2, V8SImode, V16SImode) != 0
              || !
#line 18054 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX
   && avx_vperm2f128_parallel (operands[3], V8SImode)))
            return -1;
          return 4458; /* *avx_vperm2f128v8si_nozero */

        case V8SFmode:
          if (pattern534 (x2, V8SFmode, V16SFmode) != 0
              || !
#line 18054 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX
   && avx_vperm2f128_parallel (operands[3], V8SFmode)))
            return -1;
          return 4459; /* *avx_vperm2f128v8sf_nozero */

        case V4DFmode:
          if (pattern534 (x2, V4DFmode, V8DFmode) != 0
              || !
#line 18054 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX
   && avx_vperm2f128_parallel (operands[3], V4DFmode)))
            return -1;
          return 4460; /* *avx_vperm2f128v4df_nozero */

        default:
          return -1;
        }

    case UNSPEC:
      switch (XVECLEN (x5, 0))
        {
        case 1:
          x9 = XVECEXP (x5, 0, 0);
          operands[1] = x9;
          switch (XINT (x5, 1))
            {
            case 40:
              if (GET_MODE (x5) != V4SImode
                  || XVECLEN (x3, 0) != 2
                  || pattern457 (x2, V4SFmode, V2SImode, 1) != 0
                  || !
#line 4222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
                return -1;
              return 2134; /* sse_cvtps2pi */

            case 142:
              if (GET_MODE (x5) != V8SFmode
                  || XVECLEN (x3, 0) != 4
                  || pattern300 (x3) != 0
                  || !register_operand (operands[0], V4SFmode)
                  || GET_MODE (x2) != V4SFmode
                  || !register_operand (operands[1], V8HImode)
                  || !
#line 18538 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_F16C || TARGET_AVX512VL))
                return -1;
              return 4572; /* vcvtph2ps */

            default:
              return -1;
            }

        case 4:
          if (pnum_clobbers == NULL
              || XINT (x5, 1) != 146)
            return -1;
          x10 = XVECEXP (x5, 0, 1);
          if (GET_CODE (x10) != MEM)
            return -1;
          x11 = XEXP (x10, 0);
          if (GET_CODE (x11) != UNSPEC
              || XVECLEN (x11, 0) != 3
              || XINT (x11, 1) != 147)
            return -1;
          x12 = XVECEXP (x5, 0, 2);
          if (GET_CODE (x12) != MEM
              || GET_MODE (x12) != BLKmode)
            return -1;
          x13 = XEXP (x12, 0);
          if (GET_CODE (x13) != SCRATCH
              || XVECLEN (x3, 0) != 4
              || pattern300 (x3) != 0)
            return -1;
          x14 = XVECEXP (x11, 0, 1);
          if (!register_operand (x14, V4DImode))
            return -1;
          x15 = XVECEXP (x11, 0, 2);
          if (!const1248_operand (x15, SImode))
            return -1;
          x9 = XVECEXP (x5, 0, 0);
          switch (GET_CODE (x9))
            {
            case REG:
            case SUBREG:
              operands[2] = x9;
              operands[7] = x10;
              x16 = XVECEXP (x11, 0, 0);
              operands[3] = x16;
              operands[4] = x14;
              operands[6] = x15;
              x17 = XVECEXP (x5, 0, 3);
              operands[5] = x17;
              switch (GET_MODE (operands[0]))
                {
                case V4SImode:
                  switch (pattern928 (x2, V4SImode, SImode, V8SImode))
                    {
                    case 0:
                      if (!(
#line 18811 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4653; /* *avx2_gatherdiv8si_3 */

                    case 1:
                      if (!(
#line 18811 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4654; /* *avx2_gatherdiv8si_3 */

                    default:
                      return -1;
                    }

                case V4SFmode:
                  switch (pattern928 (x2, V4SFmode, SFmode, V8SFmode))
                    {
                    case 0:
                      if (!(
#line 18811 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4655; /* *avx2_gatherdiv8sf_3 */

                    case 1:
                      if (!(
#line 18811 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4656; /* *avx2_gatherdiv8sf_3 */

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            case PC:
              operands[6] = x10;
              x16 = XVECEXP (x11, 0, 0);
              operands[2] = x16;
              operands[3] = x14;
              operands[5] = x15;
              x17 = XVECEXP (x5, 0, 3);
              operands[4] = x17;
              switch (GET_MODE (operands[0]))
                {
                case V4SImode:
                  switch (pattern922 (x2, V4SImode, SImode, V8SImode))
                    {
                    case 0:
                      if (!(
#line 18834 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4657; /* *avx2_gatherdiv8si_4 */

                    case 1:
                      if (!(
#line 18834 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4658; /* *avx2_gatherdiv8si_4 */

                    default:
                      return -1;
                    }

                case V4SFmode:
                  switch (pattern922 (x2, V4SFmode, SFmode, V8SFmode))
                    {
                    case 0:
                      if (!(
#line 18834 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4659; /* *avx2_gatherdiv8sf_4 */

                    case 1:
                      if (!(
#line 18834 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                        return -1;
                      *pnum_clobbers = 1;
                      return 4660; /* *avx2_gatherdiv8sf_4 */

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    case FIX:
      if (GET_MODE (x5) != V4SImode
          || XVECLEN (x3, 0) != 2
          || pattern60 (x2, V4SFmode, V2SImode, 1) != 0
          || !
#line 4233 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
        return -1;
      return 2135; /* sse_cvttps2pi */

    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];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) != PARALLEL)
    return -1;
  x5 = XEXP (x3, 0);
  operands[1] = x5;
  switch (XVECLEN (x4, 0))
    {
    case 1:
      x6 = XVECEXP (x4, 0, 0);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V8SFmode:
          if (!register_operand (operands[0], V8SFmode)
              || GET_MODE (x2) != V8SFmode
              || GET_MODE (x3) != SFmode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V4SFmode:
              if (register_operand (operands[1], V4SFmode)
                  && (
#line 6727 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 230 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
                return 2482; /* avx2_vec_dupv8sf */
              if (!nonimmediate_operand (operands[1], V4SFmode)
                  || !(
#line 17268 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 177 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 4199; /* avx512vl_vec_dupv8sf */

            case V8SFmode:
              if (!register_operand (operands[1], V8SFmode)
                  || !
#line 6739 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))
                return -1;
              return 2484; /* avx2_vec_dupv8sf_1 */

            default:
              return -1;
            }

        case V4SFmode:
          if (!register_operand (operands[0], V4SFmode)
              || GET_MODE (x2) != V4SFmode
              || GET_MODE (x3) != SFmode)
            return -1;
          if (register_operand (operands[1], V4SFmode)
              && 
#line 6727 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))
            return 2483; /* avx2_vec_dupv4sf */
          if (!nonimmediate_operand (operands[1], V4SFmode)
              || !(
#line 17268 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 177 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4201; /* avx512vl_vec_dupv4sf */

        case V16SFmode:
          if (!register_operand (operands[0], V16SFmode)
              || GET_MODE (x2) != V16SFmode
              || GET_MODE (x3) != SFmode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V16SFmode:
              if (!register_operand (operands[1], V16SFmode)
                  || !
#line 6751 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 2485; /* avx512f_vec_dupv16sf_1 */

            case V4SFmode:
              if (!nonimmediate_operand (operands[1], V4SFmode)
                  || !
#line 17268 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 4197; /* avx512f_vec_dupv16sf */

            default:
              return -1;
            }

        case V8DFmode:
          if (!register_operand (operands[0], V8DFmode)
              || GET_MODE (x2) != V8DFmode
              || GET_MODE (x3) != DFmode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V8DFmode:
              if (!register_operand (operands[1], V8DFmode)
                  || !
#line 6751 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 2486; /* avx512f_vec_dupv8df_1 */

            case V2DFmode:
              if (!nonimmediate_operand (operands[1], V2DFmode)
                  || !
#line 17268 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 4203; /* avx512f_vec_dupv8df */

            default:
              return -1;
            }

        case V16SImode:
          if (!register_operand (operands[0], V16SImode)
              || GET_MODE (x2) != V16SImode)
            return -1;
          switch (GET_MODE (x3))
            {
            case SImode:
              if (!nonimmediate_operand (operands[1], V4SImode))
                return -1;
              if ((
#line 17110 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 277 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
                return 4127; /* avx2_pbroadcastv16si */
              if (!
#line 17268 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 4185; /* avx512f_vec_dupv16si */

            case V16SImode:
              if (!nonimmediate_operand (operands[1], V16SImode)
                  || !
#line 17254 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 4181; /* avx512f_vec_dupv16si_1 */

            default:
              return -1;
            }

        case V8DImode:
          if (!register_operand (operands[0], V8DImode)
              || GET_MODE (x2) != V8DImode)
            return -1;
          switch (GET_MODE (x3))
            {
            case DImode:
              if (!nonimmediate_operand (operands[1], V2DImode))
                return -1;
              if ((
#line 17110 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 277 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
                return 4128; /* avx2_pbroadcastv8di */
              if (!
#line 17268 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 4191; /* avx512f_vec_dupv8di */

            case V8DImode:
              if (!nonimmediate_operand (operands[1], V8DImode)
                  || !
#line 17254 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 4182; /* avx512f_vec_dupv8di_1 */

            default:
              return -1;
            }

        case V64QImode:
          if (!register_operand (operands[0], V64QImode)
              || GET_MODE (x2) != V64QImode)
            return -1;
          switch (GET_MODE (x3))
            {
            case QImode:
              if (!nonimmediate_operand (operands[1], V16QImode))
                return -1;
              if ((
#line 17110 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 278 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
                return 4129; /* avx2_pbroadcastv64qi */
              if (!
#line 17290 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
                return -1;
              return 4209; /* avx512bw_vec_dupv64qi */

            case V64QImode:
              if (!nonimmediate_operand (operands[1], V64QImode)
                  || !(
#line 17254 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 550 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
                return -1;
              return 4184; /* avx512bw_vec_dupv64qi_1 */

            default:
              return -1;
            }

        case V32QImode:
          if (!register_operand (operands[0], V32QImode)
              || GET_MODE (x2) != V32QImode
              || GET_MODE (x3) != QImode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V16QImode:
              if (!nonimmediate_operand (operands[1], V16QImode))
                return -1;
              if ((
#line 17110 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 278 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
                return 4130; /* avx2_pbroadcastv32qi */
              if (!(
#line 17290 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 4213; /* avx512vl_vec_dupv32qi */

            case V32QImode:
              if (!nonimmediate_operand (operands[1], V32QImode)
                  || !
#line 17123 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))
                return -1;
              return 4139; /* avx2_pbroadcastv32qi_1 */

            default:
              return -1;
            }

        case V16QImode:
          if (pattern385 (x2, V16QImode, QImode) != 0)
            return -1;
          if (
#line 17110 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))
            return 4131; /* avx2_pbroadcastv16qi */
          if (!(
#line 17290 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4211; /* avx512vl_vec_dupv16qi */

        case V32HImode:
          if (!register_operand (operands[0], V32HImode)
              || GET_MODE (x2) != V32HImode)
            return -1;
          switch (GET_MODE (x3))
            {
            case HImode:
              if (!nonimmediate_operand (operands[1], V8HImode))
                return -1;
              if ((
#line 17110 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 279 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
                return 4132; /* avx2_pbroadcastv32hi */
              if (!
#line 17290 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
                return -1;
              return 4215; /* avx512bw_vec_dupv32hi */

            case V32HImode:
              if (!nonimmediate_operand (operands[1], V32HImode)
                  || !(
#line 17254 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 550 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
                return -1;
              return 4183; /* avx512bw_vec_dupv32hi_1 */

            default:
              return -1;
            }

        case V16HImode:
          if (!register_operand (operands[0], V16HImode)
              || GET_MODE (x2) != V16HImode
              || GET_MODE (x3) != HImode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V8HImode:
              if (!nonimmediate_operand (operands[1], V8HImode))
                return -1;
              if ((
#line 17110 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 279 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
                return 4133; /* avx2_pbroadcastv16hi */
              if (!(
#line 17290 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 4217; /* avx512vl_vec_dupv16hi */

            case V16HImode:
              if (!nonimmediate_operand (operands[1], V16HImode)
                  || !
#line 17123 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))
                return -1;
              return 4140; /* avx2_pbroadcastv16hi_1 */

            default:
              return -1;
            }

        case V8HImode:
          if (pattern385 (x2, V8HImode, HImode) != 0)
            return -1;
          if (
#line 17110 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))
            return 4134; /* avx2_pbroadcastv8hi */
          if (!(
#line 17290 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4219; /* avx512vl_vec_dupv8hi */

        case V8SImode:
          if (!register_operand (operands[0], V8SImode)
              || GET_MODE (x2) != V8SImode
              || GET_MODE (x3) != SImode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V4SImode:
              if (!nonimmediate_operand (operands[1], V4SImode))
                return -1;
              if ((
#line 17110 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 280 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
                return 4135; /* avx2_pbroadcastv8si */
              if (!(
#line 17268 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 175 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 4187; /* avx512vl_vec_dupv8si */

            case V8SImode:
              if (!nonimmediate_operand (operands[1], V8SImode)
                  || !
#line 17123 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))
                return -1;
              return 4141; /* avx2_pbroadcastv8si_1 */

            default:
              return -1;
            }

        case V4SImode:
          if (pattern385 (x2, V4SImode, SImode) != 0)
            return -1;
          if (
#line 17110 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))
            return 4136; /* avx2_pbroadcastv4si */
          if (!(
#line 17268 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 175 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4189; /* avx512vl_vec_dupv4si */

        case V4DImode:
          if (!register_operand (operands[0], V4DImode)
              || GET_MODE (x2) != V4DImode
              || GET_MODE (x3) != DImode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V2DImode:
              if (!nonimmediate_operand (operands[1], V2DImode))
                return -1;
              if ((
#line 17110 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 281 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
                return 4137; /* avx2_pbroadcastv4di */
              if (!(
#line 17268 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 176 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 4193; /* avx512vl_vec_dupv4di */

            case V4DImode:
              if (!nonimmediate_operand (operands[1], V4DImode)
                  || !
#line 17123 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))
                return -1;
              return 4142; /* avx2_pbroadcastv4di_1 */

            default:
              return -1;
            }

        case V2DImode:
          if (pattern385 (x2, V2DImode, DImode) != 0)
            return -1;
          if (
#line 17110 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))
            return 4138; /* avx2_pbroadcastv2di */
          if (!(
#line 17268 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 176 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4195; /* avx512vl_vec_dupv2di */

        case V4DFmode:
          if (!register_operand (operands[0], V4DFmode)
              || GET_MODE (x2) != V4DFmode
              || GET_MODE (x3) != DFmode)
            return -1;
          if (register_operand (operands[1], V2DFmode)
              && 
#line 17242 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))
            return 4180; /* avx2_vec_dupv4df */
          if (!nonimmediate_operand (operands[1], V2DFmode)
              || !(
#line 17268 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4205; /* avx512vl_vec_dupv4df */

        case V2DFmode:
          if (pattern385 (x2, V2DFmode, DFmode) != 0
              || !(
#line 17268 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4207; /* avx512vl_vec_dupv2df */

        default:
          return -1;
        }

    case 2:
      x6 = XVECEXP (x4, 0, 0);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x7 = XVECEXP (x4, 0, 1);
      if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V16SImode:
          if (pattern261 (x2, V4SImode, V2SImode, V16SImode) != 0
              || !
#line 17513 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ))
            return -1;
          return 4288; /* *avx512dq_broadcastv16si */

        case V8SImode:
          if (pattern261 (x2, V4SImode, V2SImode, V8SImode) != 0
              || !(
#line 17513 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 17497 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4290; /* *avx512dq_broadcastv8si */

        case V4SImode:
          if (pattern385 (x2, V4SImode, V2SImode) != 0
              || !(
#line 17513 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 17497 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4292; /* *avx512dq_broadcastv4si */

        case V16SFmode:
          if (pattern261 (x2, V4SFmode, V2SFmode, V16SFmode) != 0
              || !
#line 17513 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ))
            return -1;
          return 4294; /* *avx512dq_broadcastv16sf */

        case V8SFmode:
          if (pattern261 (x2, V4SFmode, V2SFmode, V8SFmode) != 0
              || !(
#line 17513 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 17498 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4296; /* *avx512dq_broadcastv8sf */

        default:
          return -1;
        }

    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;
  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:
    case MEM:
      operands[1] = x4;
      switch (GET_MODE (operands[0]))
        {
        case V2SFmode:
          if (!register_operand (operands[0], V2SFmode)
              || GET_MODE (x3) != V2SFmode
              || !register_operand (operands[1], SFmode)
              || !
#line 567 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX))
            return -1;
          return 1140; /* *vec_dupv2sf */

        case V2SImode:
          if (!register_operand (operands[0], V2SImode)
              || GET_MODE (x3) != V2SImode
              || !register_operand (operands[1], SImode)
              || !
#line 1260 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX))
            return -1;
          return 1210; /* *vec_dupv2si */

        case V2DFmode:
          if (!register_operand (operands[0], V2DFmode)
              || GET_MODE (x3) != V2DFmode
              || !nonimmediate_operand (operands[1], DFmode))
            return -1;
          if (
#line 8943 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1))
            return 2761; /* vec_dupv2df */
          if (!(
#line 17336 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4263; /* *avx512vl_vec_dup_gprv2df */

        case V16SFmode:
          if (!register_operand (operands[0], V16SFmode)
              || GET_MODE (x3) != V16SFmode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V4SFmode:
              if (!nonimmediate_operand (operands[1], V4SFmode)
                  || !
#line 17300 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 4221; /* *avx512f_broadcastv16sf */

            case SFmode:
              if (!nonimmediate_operand (operands[1], SFmode)
                  || !
#line 17336 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 4253; /* *avx512f_vec_dup_gprv16sf */

            case V8SFmode:
              if (!nonimmediate_operand (operands[1], V8SFmode)
                  || !
#line 17537 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ))
                return -1;
              return 4302; /* *avx512dq_broadcastv16sf_1 */

            default:
              return -1;
            }

        case V16SImode:
          if (!register_operand (operands[0], V16SImode)
              || GET_MODE (x3) != V16SImode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V4SImode:
              if (!nonimmediate_operand (operands[1], V4SImode)
                  || !
#line 17300 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 4223; /* *avx512f_broadcastv16si */

            case SImode:
              if (!nonimmediate_operand (operands[1], SImode)
                  || !
#line 17336 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 4241; /* *avx512f_vec_dup_gprv16si */

            case V8SImode:
              if (!nonimmediate_operand (operands[1], V8SImode)
                  || !
#line 17537 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ))
                return -1;
              return 4304; /* *avx512dq_broadcastv16si_1 */

            default:
              return -1;
            }

        case V8DFmode:
          if (!register_operand (operands[0], V8DFmode)
              || GET_MODE (x3) != V8DFmode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V4DFmode:
              if (!nonimmediate_operand (operands[1], V4DFmode)
                  || !
#line 17312 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 4225; /* *avx512f_broadcastv8df */

            case DFmode:
              if (!nonimmediate_operand (operands[1], DFmode)
                  || !
#line 17336 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 4259; /* *avx512f_vec_dup_gprv8df */

            case V2DFmode:
              if (!nonimmediate_operand (operands[1], V2DFmode)
                  || !
#line 17554 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ))
                return -1;
              return 4308; /* *avx512dq_broadcastv8df_1 */

            default:
              return -1;
            }

        case V8DImode:
          if (!register_operand (operands[0], V8DImode)
              || GET_MODE (x3) != V8DImode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V4DImode:
              if (!nonimmediate_operand (operands[1], V4DImode)
                  || !
#line 17312 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 4227; /* *avx512f_broadcastv8di */

            case DImode:
              if (!nonimmediate_operand (operands[1], DImode)
                  || !
#line 17336 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 4247; /* *avx512f_vec_dup_gprv8di */

            case V2DImode:
              if (!nonimmediate_operand (operands[1], V2DImode)
                  || !
#line 17554 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ))
                return -1;
              return 4306; /* *avx512dq_broadcastv8di_1 */

            default:
              return -1;
            }

        case V64QImode:
          if (!register_operand (operands[0], V64QImode)
              || GET_MODE (x3) != V64QImode
              || !nonimmediate_operand (operands[1], QImode)
              || !
#line 17324 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
            return -1;
          return 4229; /* *avx512bw_vec_dup_gprv64qi */

        case V16QImode:
          if (!register_operand (operands[0], V16QImode)
              || GET_MODE (x3) != V16QImode
              || !nonimmediate_operand (operands[1], QImode))
            return -1;
          if ((
#line 17324 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return 4231; /* *avx512vl_vec_dup_gprv16qi */
          if (!
#line 17417 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))
            return -1;
          return 4273; /* *vec_dupv16qi */

        case V32QImode:
          if (!register_operand (operands[0], V32QImode)
              || GET_MODE (x3) != V32QImode
              || !nonimmediate_operand (operands[1], QImode))
            return -1;
          if ((
#line 17324 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return 4233; /* *avx512vl_vec_dup_gprv32qi */
          if (!
#line 17417 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))
            return -1;
          return 4272; /* *vec_dupv32qi */

        case V32HImode:
          if (!register_operand (operands[0], V32HImode)
              || GET_MODE (x3) != V32HImode
              || !nonimmediate_operand (operands[1], HImode)
              || !
#line 17324 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
            return -1;
          return 4235; /* *avx512bw_vec_dup_gprv32hi */

        case V16HImode:
          if (!register_operand (operands[0], V16HImode)
              || GET_MODE (x3) != V16HImode
              || !nonimmediate_operand (operands[1], HImode))
            return -1;
          if ((
#line 17324 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return 4237; /* *avx512vl_vec_dup_gprv16hi */
          if (!
#line 17417 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))
            return -1;
          return 4274; /* *vec_dupv16hi */

        case V8HImode:
          if (!register_operand (operands[0], V8HImode)
              || GET_MODE (x3) != V8HImode
              || !nonimmediate_operand (operands[1], HImode))
            return -1;
          if ((
#line 17324 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return 4239; /* *avx512vl_vec_dup_gprv8hi */
          if (!
#line 17417 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))
            return -1;
          return 4275; /* *vec_dupv8hi */

        case V8SImode:
          if (!register_operand (operands[0], V8SImode)
              || GET_MODE (x3) != V8SImode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case SImode:
              if (!nonimmediate_operand (operands[1], SImode))
                return -1;
              if ((
#line 17336 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 175 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 4243; /* *avx512vl_vec_dup_gprv8si */
              if (
#line 17417 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))
                return 4276; /* *vec_dupv8si */
              if (!
#line 17432 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
                return -1;
              return 4278; /* vec_dupv8si */

            case V4SImode:
              if (!nonimmediate_operand (operands[1], V4SImode)
                  || !
#line 17524 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return -1;
              return 4298; /* *avx512vl_broadcastv8si_1 */

            default:
              return -1;
            }

        case V4SImode:
          if (!register_operand (operands[0], V4SImode)
              || GET_MODE (x3) != V4SImode
              || !nonimmediate_operand (operands[1], SImode))
            return -1;
          if ((
#line 17336 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 175 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return 4245; /* *avx512vl_vec_dup_gprv4si */
          if (
#line 17367 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
            return 4266; /* *vec_dupv4si */
          if (!
#line 17417 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))
            return -1;
          return 4277; /* *vec_dupv4si */

        case V4DImode:
          if (!register_operand (operands[0], V4DImode)
              || GET_MODE (x3) != V4DImode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case DImode:
              if (!nonimmediate_operand (operands[1], DImode))
                return -1;
              if ((
#line 17336 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 176 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 4249; /* *avx512vl_vec_dup_gprv4di */
              if (!
#line 17432 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
                return -1;
              return 4280; /* vec_dupv4di */

            case V2DImode:
              if (!nonimmediate_operand (operands[1], V2DImode)
                  || !(
#line 17554 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 17548 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 4310; /* *avx512dq_broadcastv4di_1 */

            default:
              return -1;
            }

        case V2DImode:
          if (!register_operand (operands[0], V2DImode)
              || GET_MODE (x3) != V2DImode
              || !nonimmediate_operand (operands[1], DImode))
            return -1;
          if ((
#line 17336 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 176 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return 4251; /* *avx512vl_vec_dup_gprv2di */
          if (!
#line 17383 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
            return -1;
          return 4267; /* *vec_dupv2di */

        case V8SFmode:
          if (!register_operand (operands[0], V8SFmode)
              || GET_MODE (x3) != V8SFmode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case SFmode:
              if (!nonimmediate_operand (operands[1], SFmode))
                return -1;
              if ((
#line 17336 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 177 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 4255; /* *avx512vl_vec_dup_gprv8sf */
              if (!
#line 17432 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
                return -1;
              return 4279; /* vec_dupv8sf */

            case V4SFmode:
              if (!nonimmediate_operand (operands[1], V4SFmode)
                  || !
#line 17524 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return -1;
              return 4300; /* *avx512vl_broadcastv8sf_1 */

            default:
              return -1;
            }

        case V4SFmode:
          if (!register_operand (operands[0], V4SFmode)
              || GET_MODE (x3) != V4SFmode
              || !nonimmediate_operand (operands[1], SFmode))
            return -1;
          if ((
#line 17336 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 177 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return 4257; /* *avx512vl_vec_dup_gprv4sf */
          if (!
#line 17351 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
            return -1;
          return 4265; /* vec_dupv4sf */

        case V4DFmode:
          if (!register_operand (operands[0], V4DFmode)
              || GET_MODE (x3) != V4DFmode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case DFmode:
              if (!nonimmediate_operand (operands[1], DFmode))
                return -1;
              if ((
#line 17336 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return 4261; /* *avx512vl_vec_dup_gprv4df */
              if (!
#line 17432 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
                return -1;
              return 4281; /* vec_dupv4df */

            case V2DFmode:
              if (!nonimmediate_operand (operands[1], V2DFmode)
                  || !(
#line 17554 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 17548 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 4312; /* *avx512dq_broadcastv4df_1 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case TRUNCATE:
      if (pattern88 (x3, V4HImode, HImode) != 0
          || !
#line 1250 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_SSE || TARGET_3DNOW_A))
        return -1;
      return 1209; /* *vec_dupv4hi */

    case VEC_SELECT:
      return recog_158 (x1, insn, pnum_clobbers);

    case ZERO_EXTEND:
      x5 = XEXP (x4, 0);
      operands[1] = x5;
      switch (GET_MODE (operands[0]))
        {
        case V8DImode:
          if (pattern218 (x3, QImode, DImode, V8DImode) != 0
              || !
#line 17568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512CD))
            return -1;
          return 4314; /* avx512cd_maskb_vec_dupv8di */

        case V4DImode:
          if (pattern218 (x3, QImode, DImode, V4DImode) != 0
              || !(
#line 17568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512CD) && 
#line 316 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4315; /* avx512cd_maskb_vec_dupv4di */

        case V2DImode:
          if (pattern218 (x3, QImode, DImode, V2DImode) != 0
              || !(
#line 17568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512CD) && 
#line 316 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4316; /* avx512cd_maskb_vec_dupv2di */

        case V16SImode:
          if (pattern218 (x3, HImode, SImode, V16SImode) != 0
              || !
#line 17579 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512CD))
            return -1;
          return 4317; /* avx512cd_maskw_vec_dupv16si */

        case V8SImode:
          if (pattern218 (x3, HImode, SImode, V8SImode) != 0
              || !(
#line 17579 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512CD) && 
#line 343 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4318; /* avx512cd_maskw_vec_dupv8si */

        case V4SImode:
          if (pattern218 (x3, HImode, SImode, V4SImode) != 0
              || !(
#line 17579 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512CD) && 
#line 343 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 4319; /* avx512cd_maskw_vec_dupv4si */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_160 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, 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;
  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:
    case MEM:
      switch (pattern24 (x3))
        {
        case 0:
          if (!
#line 703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX && ix86_binary_operator_ok (SS_PLUS, V8QImode, operands)))
            return -1;
          return 1152; /* *mmx_ssaddv8qi3 */

        case 1:
          if (!
#line 703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX && ix86_binary_operator_ok (SS_PLUS, V4HImode, operands)))
            return -1;
          return 1156; /* *mmx_ssaddv4hi3 */

        case 2:
          if (!(
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1
   && ix86_binary_operator_ok (SS_PLUS, V64QImode, operands)) && 
#line 381 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return -1;
          return 3034; /* *avx512bw_ssaddv64qi3 */

        case 3:
          if (!(
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1
   && ix86_binary_operator_ok (SS_PLUS, V32QImode, operands)) && 
#line 381 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
            return -1;
          return 3042; /* *avx2_ssaddv32qi3 */

        case 4:
          if (!
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1
   && ix86_binary_operator_ok (SS_PLUS, V16QImode, operands)))
            return -1;
          return 3050; /* *sse2_ssaddv16qi3 */

        case 5:
          if (!(
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1
   && ix86_binary_operator_ok (SS_PLUS, V32HImode, operands)) && 
#line 382 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return -1;
          return 3058; /* *avx512bw_ssaddv32hi3 */

        case 6:
          if (!(
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1
   && ix86_binary_operator_ok (SS_PLUS, V16HImode, operands)) && 
#line 382 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
            return -1;
          return 3066; /* *avx2_ssaddv16hi3 */

        case 7:
          if (!
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1
   && ix86_binary_operator_ok (SS_PLUS, V8HImode, operands)))
            return -1;
          return 3074; /* *sse2_ssaddv8hi3 */

        default:
          return -1;
        }

    case MULT:
      x5 = XEXP (x4, 0);
      switch (GET_CODE (x5))
        {
        case ZERO_EXTEND:
          x6 = XEXP (x5, 0);
          if (GET_CODE (x6) != VEC_SELECT)
            return -1;
          x7 = XEXP (x6, 1);
          if (GET_CODE (x7) != PARALLEL)
            return -1;
          x8 = XEXP (x4, 1);
          if (GET_CODE (x8) != SIGN_EXTEND)
            return -1;
          x9 = XEXP (x8, 0);
          if (GET_CODE (x9) != VEC_SELECT)
            return -1;
          x10 = XEXP (x9, 1);
          if (GET_CODE (x10) != PARALLEL)
            return -1;
          x11 = XEXP (x3, 1);
          if (GET_CODE (x11) != MULT)
            return -1;
          x12 = XEXP (x11, 0);
          if (GET_CODE (x12) != ZERO_EXTEND)
            return -1;
          x13 = XEXP (x12, 0);
          if (GET_CODE (x13) != VEC_SELECT)
            return -1;
          x14 = XEXP (x13, 1);
          if (GET_CODE (x14) != PARALLEL)
            return -1;
          x15 = XEXP (x11, 1);
          if (GET_CODE (x15) != SIGN_EXTEND)
            return -1;
          x16 = XEXP (x15, 0);
          if (GET_CODE (x16) != VEC_SELECT)
            return -1;
          x17 = XEXP (x16, 1);
          if (GET_CODE (x17) != PARALLEL)
            return -1;
          x18 = XEXP (x6, 0);
          operands[1] = x18;
          x19 = XEXP (x9, 0);
          operands[2] = x19;
          x20 = XEXP (x13, 0);
          if (!rtx_equal_p (x20, operands[1]))
            return -1;
          x21 = XEXP (x16, 0);
          if (!rtx_equal_p (x21, operands[2]))
            return -1;
          switch (XVECLEN (x7, 0))
            {
            case 16:
              x22 = XVECEXP (x7, 0, 0);
              if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x23 = XVECEXP (x7, 0, 1);
              if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
                return -1;
              x24 = XVECEXP (x7, 0, 2);
              if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
                return -1;
              x25 = XVECEXP (x7, 0, 3);
              if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
                return -1;
              x26 = XVECEXP (x7, 0, 4);
              if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
                return -1;
              x27 = XVECEXP (x7, 0, 5);
              if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
                return -1;
              x28 = XVECEXP (x7, 0, 6);
              if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
                return -1;
              x29 = XVECEXP (x7, 0, 7);
              if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 14])
                return -1;
              x30 = XVECEXP (x7, 0, 8);
              if (x30 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
                return -1;
              x31 = XVECEXP (x7, 0, 9);
              if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 18])
                return -1;
              x32 = XVECEXP (x7, 0, 10);
              if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 20])
                return -1;
              x33 = XVECEXP (x7, 0, 11);
              if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 22])
                return -1;
              x34 = XVECEXP (x7, 0, 12);
              if (x34 != const_int_rtx[MAX_SAVED_CONST_INT + 24])
                return -1;
              x35 = XVECEXP (x7, 0, 13);
              if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + 26])
                return -1;
              x36 = XVECEXP (x7, 0, 14);
              if (x36 != const_int_rtx[MAX_SAVED_CONST_INT + 28])
                return -1;
              x37 = XVECEXP (x7, 0, 15);
              if (x37 != const_int_rtx[MAX_SAVED_CONST_INT + 30]
                  || pattern615 (x10, 16) != 0)
                return -1;
              x38 = XVECEXP (x10, 0, 8);
              if (x38 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
                return -1;
              x39 = XVECEXP (x10, 0, 9);
              if (x39 != const_int_rtx[MAX_SAVED_CONST_INT + 18])
                return -1;
              x40 = XVECEXP (x10, 0, 10);
              if (x40 != const_int_rtx[MAX_SAVED_CONST_INT + 20])
                return -1;
              x41 = XVECEXP (x10, 0, 11);
              if (x41 != const_int_rtx[MAX_SAVED_CONST_INT + 22])
                return -1;
              x42 = XVECEXP (x10, 0, 12);
              if (x42 != const_int_rtx[MAX_SAVED_CONST_INT + 24])
                return -1;
              x43 = XVECEXP (x10, 0, 13);
              if (x43 != const_int_rtx[MAX_SAVED_CONST_INT + 26])
                return -1;
              x44 = XVECEXP (x10, 0, 14);
              if (x44 != const_int_rtx[MAX_SAVED_CONST_INT + 28])
                return -1;
              x45 = XVECEXP (x10, 0, 15);
              if (x45 != const_int_rtx[MAX_SAVED_CONST_INT + 30]
                  || pattern946 (x14, 16) != 0)
                return -1;
              x46 = XVECEXP (x14, 0, 8);
              if (x46 != const_int_rtx[MAX_SAVED_CONST_INT + 17])
                return -1;
              x47 = XVECEXP (x14, 0, 9);
              if (x47 != const_int_rtx[MAX_SAVED_CONST_INT + 19])
                return -1;
              x48 = XVECEXP (x14, 0, 10);
              if (x48 != const_int_rtx[MAX_SAVED_CONST_INT + 21])
                return -1;
              x49 = XVECEXP (x14, 0, 11);
              if (x49 != const_int_rtx[MAX_SAVED_CONST_INT + 23])
                return -1;
              x50 = XVECEXP (x14, 0, 12);
              if (x50 != const_int_rtx[MAX_SAVED_CONST_INT + 25])
                return -1;
              x51 = XVECEXP (x14, 0, 13);
              if (x51 != const_int_rtx[MAX_SAVED_CONST_INT + 27])
                return -1;
              x52 = XVECEXP (x14, 0, 14);
              if (x52 != const_int_rtx[MAX_SAVED_CONST_INT + 29])
                return -1;
              x53 = XVECEXP (x14, 0, 15);
              if (x53 != const_int_rtx[MAX_SAVED_CONST_INT + 31]
                  || pattern951 (x17, 16) != 0)
                return -1;
              x54 = XVECEXP (x17, 0, 8);
              if (x54 != const_int_rtx[MAX_SAVED_CONST_INT + 17])
                return -1;
              x55 = XVECEXP (x17, 0, 9);
              if (x55 != const_int_rtx[MAX_SAVED_CONST_INT + 19])
                return -1;
              x56 = XVECEXP (x17, 0, 10);
              if (x56 != const_int_rtx[MAX_SAVED_CONST_INT + 21])
                return -1;
              x57 = XVECEXP (x17, 0, 11);
              if (x57 != const_int_rtx[MAX_SAVED_CONST_INT + 23])
                return -1;
              x58 = XVECEXP (x17, 0, 12);
              if (x58 != const_int_rtx[MAX_SAVED_CONST_INT + 25])
                return -1;
              x59 = XVECEXP (x17, 0, 13);
              if (x59 != const_int_rtx[MAX_SAVED_CONST_INT + 27])
                return -1;
              x60 = XVECEXP (x17, 0, 14);
              if (x60 != const_int_rtx[MAX_SAVED_CONST_INT + 29])
                return -1;
              x61 = XVECEXP (x17, 0, 15);
              if (x61 != const_int_rtx[MAX_SAVED_CONST_INT + 31]
                  || pattern949 (x3, V16QImode, V16HImode, V32QImode) != 0
                  || !
#line 14222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2))
                return -1;
              return 3765; /* avx2_pmaddubsw256 */

            case 8:
              if (pattern616 (x4) != 0
                  || pattern946 (x14, 8) != 0
                  || pattern951 (x17, 8) != 0
                  || pattern867 (x3, V8HImode) != 0
                  || GET_MODE (x6) != V8QImode
                  || !register_operand (operands[1], V16QImode)
                  || GET_MODE (x8) != V8HImode
                  || GET_MODE (x9) != V8QImode
                  || !vector_operand (operands[2], V16QImode)
                  || pattern182 (x11, V8QImode, V8HImode) != 0
                  || !
#line 14309 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3))
                return -1;
              return 3774; /* ssse3_pmaddubsw128 */

            case 4:
              if (pattern640 (x4, 6, 4, 2, 0) != 0
                  || pattern933 (x14, 7, 5, 3, 1) != 0
                  || pattern944 (x17, 7, 5, 3, 1) != 0
                  || pattern949 (x3, V4QImode, V4HImode, V8QImode) != 0
                  || !
#line 14344 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3))
                return -1;
              return 3775; /* ssse3_pmaddubsw */

            default:
              return -1;
            }

        case REG:
        case SUBREG:
        case MEM:
          switch (pattern135 (x3))
            {
            case 0:
              if (!
#line 16075 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
                return -1;
              return 4024; /* xop_pmacssww */

            case 1:
              if (!
#line 16075 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
                return -1;
              return 4026; /* xop_pmacssdd */

            default:
              return -1;
            }

        case SIGN_EXTEND:
          if (pattern136 (x4) != 0)
            return -1;
          x11 = XEXP (x3, 1);
          operands[3] = x11;
          x6 = XEXP (x5, 0);
          x7 = XEXP (x6, 1);
          switch (XVECLEN (x7, 0))
            {
            case 2:
              if (pattern614 (x4) != 0
                  || pattern779 (x3, V2DImode, V4SImode, V2SImode) != 0)
                return -1;
              switch (pattern771 (x4))
                {
                case 0:
                  if (!
#line 16093 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
                    return -1;
                  return 4028; /* xop_pmacssdql */

                case 1:
                  if (!
#line 16111 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
                    return -1;
                  return 4030; /* xop_pmacssdqh */

                default:
                  return -1;
                }

            case 4:
              if (pattern640 (x4, 7, 5, 3, 1) != 0
                  || pattern779 (x3, V4SImode, V8HImode, V4HImode) != 0
                  || !
#line 16132 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
                return -1;
              return 4032; /* xop_pmacsswd */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case PLUS:
      if (GET_MODE (x4) != V4SImode)
        return -1;
      x5 = XEXP (x4, 0);
      if (GET_CODE (x5) != MULT
          || pattern181 (x4) != 0
          || !register_operand (operands[0], V4SImode)
          || GET_MODE (x3) != V4SImode
          || pattern953 (x3) != 0
          || !
#line 16164 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
        return -1;
      return 4034; /* xop_pmadcsswd */

    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];
  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);
  x5 = XEXP (x4, 1);
  switch (XVECLEN (x5, 0))
    {
    case 8:
      if (pattern641 (x5, V8HImode) != 0
          || pattern780 (x2, V8QImode, V8HImode) != 0
          || !
#line 1471 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
((TARGET_SSE || TARGET_3DNOW)
   && ix86_binary_operator_ok (PLUS, V8QImode, operands)))
        return -1;
      return 1215; /* *mmx_uavgv8qi3 */

    case 4:
      if (GET_MODE (x5) != V4SImode)
        return -1;
      x6 = XVECEXP (x5, 0, 0);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x7 = XVECEXP (x5, 0, 1);
      if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x8 = XVECEXP (x5, 0, 2);
      if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x9 = XVECEXP (x5, 0, 3);
      if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
          || pattern780 (x2, V4HImode, V4SImode) != 0
          || !
#line 1519 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
((TARGET_SSE || TARGET_3DNOW_A)
   && ix86_binary_operator_ok (PLUS, V4HImode, operands)))
        return -1;
      return 1216; /* *mmx_uavgv4hi3 */

    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];
  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);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != CONST_VECTOR
      || XVECLEN (x5, 0) != 32
      || pattern641 (x5, V32HImode) != 0)
    return -1;
  x6 = XVECEXP (x5, 0, 8);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x7 = XVECEXP (x5, 0, 9);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x8 = XVECEXP (x5, 0, 10);
  if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x9 = XVECEXP (x5, 0, 11);
  if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x10 = XVECEXP (x5, 0, 12);
  if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x11 = XVECEXP (x5, 0, 13);
  if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x12 = XVECEXP (x5, 0, 14);
  if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x13 = XVECEXP (x5, 0, 15);
  if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x14 = XVECEXP (x5, 0, 16);
  if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x15 = XVECEXP (x5, 0, 17);
  if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x16 = XVECEXP (x5, 0, 18);
  if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x17 = XVECEXP (x5, 0, 19);
  if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x18 = XVECEXP (x5, 0, 20);
  if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x19 = XVECEXP (x5, 0, 21);
  if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x20 = XVECEXP (x5, 0, 22);
  if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x21 = XVECEXP (x5, 0, 23);
  if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x22 = XVECEXP (x5, 0, 24);
  if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x23 = XVECEXP (x5, 0, 25);
  if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x24 = XVECEXP (x5, 0, 26);
  if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x25 = XVECEXP (x5, 0, 27);
  if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x26 = XVECEXP (x5, 0, 28);
  if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x27 = XVECEXP (x5, 0, 29);
  if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x28 = XVECEXP (x5, 0, 30);
  if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x29 = XVECEXP (x5, 0, 31);
  if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
      || !register_operand (operands[0], V32HImode)
      || GET_MODE (x2) != V32HImode
      || GET_MODE (x3) != V32SImode
      || pattern781 (x4, V32SImode) != 0)
    return -1;
  x30 = XEXP (x4, 0);
  x31 = XEXP (x30, 0);
  x32 = XEXP (x31, 1);
  if (GET_MODE (x32) != V32SImode)
    return -1;
  x33 = XEXP (x32, 0);
  operands[2] = x33;
  if (!nonimmediate_operand (operands[2], V32HImode)
      || !
#line 14272 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
    return -1;
  return 3772; /* avx512bw_umulhrswv32hi3 */
}

static int
recog_163 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19;
  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:
          if (XWINT (x5, 0) != 16LL)
            return -1;
          x7 = XEXP (x6, 0);
          switch (GET_CODE (x7))
            {
            case SIGN_EXTEND:
              switch (pattern338 (x3, SIGN_EXTEND))
                {
                case 0:
                  if (!
#line 747 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX && ix86_binary_operator_ok (MULT, V4HImode, operands)))
                    return -1;
                  return 1161; /* *mmx_smulv4hi3_highpart */

                case 1:
                  if (!(
#line 9919 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MULT, V32HImode, operands)
   && 1 && 1) && 
#line 328 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
                    return -1;
                  return 3088; /* *smulv32hi3_highpart */

                case 2:
                  if (!(
#line 9919 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MULT, V16HImode, operands)
   && 1 && 1) && 
#line 328 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
                    return -1;
                  return 3092; /* *smulv16hi3_highpart */

                case 3:
                  if (!
#line 9919 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MULT, V8HImode, operands)
   && 1 && 1))
                    return -1;
                  return 3096; /* *smulv8hi3_highpart */

                default:
                  return -1;
                }

            case ZERO_EXTEND:
              switch (pattern338 (x3, ZERO_EXTEND))
                {
                case 0:
                  if (!
#line 775 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
((TARGET_SSE || TARGET_3DNOW_A)
   && ix86_binary_operator_ok (MULT, V4HImode, operands)))
                    return -1;
                  return 1162; /* *mmx_umulv4hi3_highpart */

                case 1:
                  if (!(
#line 9919 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MULT, V32HImode, operands)
   && 1 && 1) && 
#line 328 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
                    return -1;
                  return 3090; /* *umulv32hi3_highpart */

                case 2:
                  if (!(
#line 9919 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MULT, V16HImode, operands)
   && 1 && 1) && 
#line 328 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
                    return -1;
                  return 3094; /* *umulv16hi3_highpart */

                case 3:
                  if (!
#line 9919 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2
   && ix86_binary_operator_ok (MULT, V8HImode, operands)
   && 1 && 1))
                    return -1;
                  return 3098; /* *umulv8hi3_highpart */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case PLUS:
          x7 = XEXP (x6, 0);
          switch (GET_CODE (x7))
            {
            case MULT:
              if (GET_MODE (x7) != V4SImode)
                return -1;
              x8 = XEXP (x7, 0);
              if (GET_CODE (x8) != SIGN_EXTEND
                  || GET_MODE (x8) != V4SImode)
                return -1;
              x9 = XEXP (x7, 1);
              if (GET_CODE (x9) != SIGN_EXTEND
                  || GET_MODE (x9) != V4SImode)
                return -1;
              x10 = XEXP (x6, 1);
              if (GET_CODE (x10) != CONST_VECTOR
                  || XVECLEN (x10, 0) != 4
                  || GET_MODE (x10) != V4SImode)
                return -1;
              x11 = XVECEXP (x10, 0, 0);
              if (GET_CODE (x11) != CONST_INT
                  || XWINT (x11, 0) != 32768LL)
                return -1;
              x12 = XVECEXP (x10, 0, 1);
              if (GET_CODE (x12) != CONST_INT
                  || XWINT (x12, 0) != 32768LL)
                return -1;
              x13 = XVECEXP (x10, 0, 2);
              if (GET_CODE (x13) != CONST_INT
                  || XWINT (x13, 0) != 32768LL)
                return -1;
              x14 = XVECEXP (x10, 0, 3);
              if (GET_CODE (x14) != CONST_INT
                  || XWINT (x14, 0) != 32768LL
                  || XWINT (x5, 0) != 16LL
                  || !register_operand (operands[0], V4HImode)
                  || GET_MODE (x3) != V4HImode
                  || GET_MODE (x4) != V4SImode
                  || GET_MODE (x6) != V4SImode)
                return -1;
              x15 = XEXP (x8, 0);
              operands[1] = x15;
              if (!nonimmediate_operand (operands[1], V4HImode))
                return -1;
              x16 = XEXP (x9, 0);
              operands[2] = x16;
              if (!nonimmediate_operand (operands[2], V4HImode)
                  || !
#line 856 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_3DNOW && ix86_binary_operator_ok (MULT, V4HImode, operands)))
                return -1;
              return 1164; /* *mmx_pmulhrwv4hi3 */

            case PLUS:
              x8 = XEXP (x7, 0);
              if (GET_CODE (x8) != ZERO_EXTEND)
                return -1;
              x9 = XEXP (x7, 1);
              if (GET_CODE (x9) != ZERO_EXTEND
                  || XWINT (x5, 0) != 1LL)
                return -1;
              x15 = XEXP (x8, 0);
              operands[1] = x15;
              x16 = XEXP (x9, 0);
              operands[2] = x16;
              x10 = XEXP (x6, 1);
              if (GET_CODE (x10) == CONST_VECTOR)
                {
                  res = recog_161 (x1, insn, pnum_clobbers);
                  if (res >= 0)
                    return res;
                }
              operands[3] = x10;
              switch (GET_MODE (operands[0]))
                {
                case V64QImode:
                  if (pattern642 (x3, V64QImode, V64HImode) != 0
                      || !(
#line 13740 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1
   && ix86_binary_operator_ok (PLUS, V64QImode, operands)) && 
#line 381 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
                    return -1;
                  return 3712; /* *avx512bw_uavgv64qi3 */

                case V32QImode:
                  if (pattern642 (x3, V32QImode, V32HImode) != 0
                      || !(
#line 13740 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1
   && ix86_binary_operator_ok (PLUS, V32QImode, operands)) && 
#line 381 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
                    return -1;
                  return 3714; /* *avx2_uavgv32qi3 */

                case V16QImode:
                  if (pattern642 (x3, V16QImode, V16HImode) != 0
                      || !
#line 13740 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1
   && ix86_binary_operator_ok (PLUS, V16QImode, operands)))
                    return -1;
                  return 3716; /* *sse2_uavgv16qi3 */

                case V32HImode:
                  if (pattern642 (x3, V32HImode, V32SImode) != 0
                      || !(
#line 13740 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1
   && ix86_binary_operator_ok (PLUS, V32HImode, operands)) && 
#line 382 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
                    return -1;
                  return 3718; /* *avx512bw_uavgv32hi3 */

                case V16HImode:
                  if (pattern642 (x3, V16HImode, V16SImode) != 0
                      || !(
#line 13740 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1
   && ix86_binary_operator_ok (PLUS, V16HImode, operands)) && 
#line 382 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
                    return -1;
                  return 3720; /* *avx2_uavgv16hi3 */

                case V8HImode:
                  if (pattern642 (x3, V8HImode, V8SImode) != 0
                      || !
#line 13740 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1
   && ix86_binary_operator_ok (PLUS, V8HImode, operands)))
                    return -1;
                  return 3722; /* *sse2_uavgv8hi3 */

                default:
                  return -1;
                }

            case LSHIFTRT:
              x8 = XEXP (x7, 0);
              if (GET_CODE (x8) != MULT)
                return -1;
              x15 = XEXP (x8, 0);
              if (GET_CODE (x15) != SIGN_EXTEND)
                return -1;
              x17 = XEXP (x8, 1);
              if (GET_CODE (x17) != SIGN_EXTEND)
                return -1;
              x9 = XEXP (x7, 1);
              if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 14]
                  || XWINT (x5, 0) != 1LL)
                return -1;
              x18 = XEXP (x15, 0);
              operands[1] = x18;
              if (nonimmediate_operand (operands[1], V32HImode))
                {
                  res = recog_162 (x1, insn, pnum_clobbers);
                  if (res >= 0)
                    return res;
                }
              x19 = XEXP (x17, 0);
              operands[2] = x19;
              x10 = XEXP (x6, 1);
              operands[3] = x10;
              switch (GET_MODE (operands[0]))
                {
                case V32HImode:
                  if (pattern698 (x3, V32HImode, V32SImode) != 0
                      || !(
#line 14412 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3 && 1 && 1
   && ix86_binary_operator_ok (MULT, V32HImode, operands)) && 
#line 328 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
                    return -1;
                  return 3776; /* *avx512bw_pmulhrswv32hi3 */

                case V16HImode:
                  if (pattern698 (x3, V16HImode, V16SImode) != 0
                      || !(
#line 14412 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3 && 1 && 1
   && ix86_binary_operator_ok (MULT, V16HImode, operands)) && 
#line 328 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
                    return -1;
                  return 3778; /* *avx2_pmulhrswv16hi3 */

                case V8HImode:
                  if (pattern698 (x3, V8HImode, V8SImode) != 0
                      || !
#line 14412 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3 && 1 && 1
   && ix86_binary_operator_ok (MULT, V8HImode, operands)))
                    return -1;
                  return 3780; /* *ssse3_pmulhrswv8hi3 */

                case V4HImode:
                  if (!register_operand (operands[0], V4HImode)
                      || GET_MODE (x3) != V4HImode
                      || GET_MODE (x4) != V4SImode
                      || pattern781 (x6, V4SImode) != 0
                      || !nonimmediate_operand (operands[1], V4HImode)
                      || GET_MODE (x17) != V4SImode
                      || !nonimmediate_operand (operands[2], V4HImode)
                      || !const1_operand (operands[3], V4HImode)
                      || !
#line 14438 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3 && ix86_binary_operator_ok (MULT, V4HImode, operands)))
                    return -1;
                  return 3782; /* *ssse3_pmulhrswv4hi3 */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    case REG:
    case SUBREG:
      switch (pattern25 (x3))
        {
        case 0:
          if (!
#line 9003 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2765; /* *avx512f_truncatev16siv16qi2 */

        case 1:
          if (!(
#line 9076 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 9068 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return -1;
          return 2801; /* *avx512vl_truncatev16hiv16qi2 */

        case 2:
          if (!
#line 9003 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2768; /* *avx512f_truncatev16siv16hi2 */

        case 3:
          if (!
#line 9003 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2771; /* *avx512f_truncatev8div8si2 */

        case 4:
          if (!
#line 9003 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2774; /* *avx512f_truncatev8div8hi2 */

        case 5:
          if (!
#line 9076 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2798; /* *avx512vl_truncatev8siv8hi2 */

        case 6:
          if (!
#line 9037 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
            return -1;
          return 2789; /* avx512bw_truncatev32hiv32qi2 */

        case 7:
          if (!
#line 9076 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return -1;
          return 2795; /* *avx512vl_truncatev4div4si2 */

        default:
          return -1;
        }

    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];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  operands[1] = x3;
  x4 = XEXP (x2, 2);
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
    case MEM:
      operands[3] = x4;
      switch (GET_MODE (operands[0]))
        {
        case SFmode:
          if (!register_operand (operands[0], SFmode)
              || GET_MODE (x2) != SFmode)
            return -1;
          if (nonimmediate_operand (operands[1], SFmode)
              && nonimmediate_operand (operands[2], SFmode)
              && nonimmediate_operand (operands[3], SFmode)
              && 
#line 3602 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4))
            return 1831; /* *fma_fmadd_sf */
          if (!vector_operand (operands[1], SFmode)
              || !vector_operand (operands[2], SFmode)
              || !vector_operand (operands[3], SFmode)
              || !
#line 3624 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1))
            return -1;
          return 1837; /* *fma_fmadd_sf */

        case DFmode:
          if (!register_operand (operands[0], DFmode)
              || GET_MODE (x2) != DFmode)
            return -1;
          if (nonimmediate_operand (operands[1], DFmode)
              && nonimmediate_operand (operands[2], DFmode)
              && nonimmediate_operand (operands[3], DFmode)
              && 
#line 3602 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4))
            return 1832; /* *fma_fmadd_df */
          if (!vector_operand (operands[1], DFmode)
              || !vector_operand (operands[2], DFmode)
              || !vector_operand (operands[3], DFmode)
              || !
#line 3624 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1))
            return -1;
          return 1846; /* *fma_fmadd_df */

        case V4SFmode:
          if (!register_operand (operands[0], V4SFmode)
              || GET_MODE (x2) != V4SFmode)
            return -1;
          if (nonimmediate_operand (operands[1], V4SFmode)
              && nonimmediate_operand (operands[2], V4SFmode)
              && nonimmediate_operand (operands[3], V4SFmode)
              && 
#line 3602 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4))
            return 1833; /* *fma_fmadd_v4sf */
          if (!vector_operand (operands[1], V4SFmode)
              || !vector_operand (operands[2], V4SFmode)
              || !vector_operand (operands[3], V4SFmode)
              || !(
#line 3624 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1) && 
#line 3615 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1844; /* *fma_fmadd_v4sf */

        case V2DFmode:
          if (!register_operand (operands[0], V2DFmode)
              || GET_MODE (x2) != V2DFmode)
            return -1;
          if (nonimmediate_operand (operands[1], V2DFmode)
              && nonimmediate_operand (operands[2], V2DFmode)
              && nonimmediate_operand (operands[3], V2DFmode)
              && 
#line 3602 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4))
            return 1834; /* *fma_fmadd_v2df */
          if (!vector_operand (operands[1], V2DFmode)
              || !vector_operand (operands[2], V2DFmode)
              || !vector_operand (operands[3], V2DFmode)
              || !(
#line 3624 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1) && 
#line 3616 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1853; /* *fma_fmadd_v2df */

        case V8SFmode:
          if (!register_operand (operands[0], V8SFmode)
              || GET_MODE (x2) != V8SFmode)
            return -1;
          if (nonimmediate_operand (operands[1], V8SFmode)
              && nonimmediate_operand (operands[2], V8SFmode)
              && nonimmediate_operand (operands[3], V8SFmode)
              && 
#line 3602 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4))
            return 1835; /* *fma_fmadd_v8sf */
          if (!vector_operand (operands[1], V8SFmode)
              || !vector_operand (operands[2], V8SFmode)
              || !vector_operand (operands[3], V8SFmode)
              || !(
#line 3624 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1) && 
#line 3615 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1842; /* *fma_fmadd_v8sf */

        case V4DFmode:
          if (!register_operand (operands[0], V4DFmode)
              || GET_MODE (x2) != V4DFmode)
            return -1;
          if (nonimmediate_operand (operands[1], V4DFmode)
              && nonimmediate_operand (operands[2], V4DFmode)
              && nonimmediate_operand (operands[3], V4DFmode)
              && 
#line 3602 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4))
            return 1836; /* *fma_fmadd_v4df */
          if (!vector_operand (operands[1], V4DFmode)
              || !vector_operand (operands[2], V4DFmode)
              || !vector_operand (operands[3], V4DFmode)
              || !(
#line 3624 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1) && 
#line 3616 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1851; /* *fma_fmadd_v4df */

        case V16SFmode:
          if (pattern386 (x2, V16SFmode) != 0
              || !
#line 3624 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1))
            return -1;
          return 1838; /* *fma_fmadd_v16sf */

        case V8DFmode:
          if (pattern386 (x2, V8DFmode) != 0
              || !
#line 3624 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1))
            return -1;
          return 1847; /* *fma_fmadd_v8df */

        default:
          return -1;
        }

    case NEG:
      x5 = XEXP (x4, 0);
      operands[3] = x5;
      switch (GET_MODE (operands[0]))
        {
        case SFmode:
          if (!register_operand (operands[0], SFmode)
              || GET_MODE (x2) != SFmode
              || GET_MODE (x4) != SFmode)
            return -1;
          if (nonimmediate_operand (operands[1], SFmode)
              && nonimmediate_operand (operands[2], SFmode)
              && nonimmediate_operand (operands[3], SFmode)
              && 
#line 3671 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4))
            return 1875; /* *fma_fmsub_sf */
          if (!vector_operand (operands[1], SFmode)
              || !vector_operand (operands[2], SFmode)
              || !vector_operand (operands[3], SFmode)
              || !
#line 3689 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1))
            return -1;
          return 1881; /* *fma_fmsub_sf */

        case DFmode:
          if (!register_operand (operands[0], DFmode)
              || GET_MODE (x2) != DFmode
              || GET_MODE (x4) != DFmode)
            return -1;
          if (nonimmediate_operand (operands[1], DFmode)
              && nonimmediate_operand (operands[2], DFmode)
              && nonimmediate_operand (operands[3], DFmode)
              && 
#line 3671 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4))
            return 1876; /* *fma_fmsub_df */
          if (!vector_operand (operands[1], DFmode)
              || !vector_operand (operands[2], DFmode)
              || !vector_operand (operands[3], DFmode)
              || !
#line 3689 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1))
            return -1;
          return 1890; /* *fma_fmsub_df */

        case V4SFmode:
          if (!register_operand (operands[0], V4SFmode)
              || GET_MODE (x2) != V4SFmode
              || GET_MODE (x4) != V4SFmode)
            return -1;
          if (nonimmediate_operand (operands[1], V4SFmode)
              && nonimmediate_operand (operands[2], V4SFmode)
              && nonimmediate_operand (operands[3], V4SFmode)
              && 
#line 3671 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4))
            return 1877; /* *fma_fmsub_v4sf */
          if (!vector_operand (operands[1], V4SFmode)
              || !vector_operand (operands[2], V4SFmode)
              || !vector_operand (operands[3], V4SFmode)
              || !(
#line 3689 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1) && 
#line 3615 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1888; /* *fma_fmsub_v4sf */

        case V2DFmode:
          if (!register_operand (operands[0], V2DFmode)
              || GET_MODE (x2) != V2DFmode
              || GET_MODE (x4) != V2DFmode)
            return -1;
          if (nonimmediate_operand (operands[1], V2DFmode)
              && nonimmediate_operand (operands[2], V2DFmode)
              && nonimmediate_operand (operands[3], V2DFmode)
              && 
#line 3671 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4))
            return 1878; /* *fma_fmsub_v2df */
          if (!vector_operand (operands[1], V2DFmode)
              || !vector_operand (operands[2], V2DFmode)
              || !vector_operand (operands[3], V2DFmode)
              || !(
#line 3689 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1) && 
#line 3616 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1897; /* *fma_fmsub_v2df */

        case V8SFmode:
          if (!register_operand (operands[0], V8SFmode)
              || GET_MODE (x2) != V8SFmode
              || GET_MODE (x4) != V8SFmode)
            return -1;
          if (nonimmediate_operand (operands[1], V8SFmode)
              && nonimmediate_operand (operands[2], V8SFmode)
              && nonimmediate_operand (operands[3], V8SFmode)
              && 
#line 3671 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4))
            return 1879; /* *fma_fmsub_v8sf */
          if (!vector_operand (operands[1], V8SFmode)
              || !vector_operand (operands[2], V8SFmode)
              || !vector_operand (operands[3], V8SFmode)
              || !(
#line 3689 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1) && 
#line 3615 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1886; /* *fma_fmsub_v8sf */

        case V4DFmode:
          if (!register_operand (operands[0], V4DFmode)
              || GET_MODE (x2) != V4DFmode
              || GET_MODE (x4) != V4DFmode)
            return -1;
          if (nonimmediate_operand (operands[1], V4DFmode)
              && nonimmediate_operand (operands[2], V4DFmode)
              && nonimmediate_operand (operands[3], V4DFmode)
              && 
#line 3671 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4))
            return 1880; /* *fma_fmsub_v4df */
          if (!vector_operand (operands[1], V4DFmode)
              || !vector_operand (operands[2], V4DFmode)
              || !vector_operand (operands[3], V4DFmode)
              || !(
#line 3689 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1) && 
#line 3616 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 1895; /* *fma_fmsub_v4df */

        case V16SFmode:
          if (pattern387 (x2, V16SFmode) != 0
              || !
#line 3689 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1))
            return -1;
          return 1882; /* *fma_fmsub_v16sf */

        case V8DFmode:
          if (pattern387 (x2, V8DFmode) != 0
              || !
#line 3689 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1))
            return -1;
          return 1891; /* *fma_fmsub_v8df */

        default:
          return -1;
        }

    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];
  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, 1);
  operands[2] = x4;
  x5 = XEXP (x3, 0);
  switch (GET_CODE (x5))
    {
    case REG:
    case SUBREG:
    case MEM:
      return recog_164 (x1, insn, pnum_clobbers);

    case NEG:
      x6 = XEXP (x5, 0);
      operands[1] = x6;
      x7 = XEXP (x3, 2);
      switch (GET_CODE (x7))
        {
        case REG:
        case SUBREG:
        case MEM:
          operands[3] = x7;
          switch (GET_MODE (operands[0]))
            {
            case SFmode:
              if (!register_operand (operands[0], SFmode)
                  || GET_MODE (x3) != SFmode
                  || GET_MODE (x5) != SFmode)
                return -1;
              if (nonimmediate_operand (operands[1], SFmode)
                  && nonimmediate_operand (operands[2], SFmode)
                  && nonimmediate_operand (operands[3], SFmode)
                  && 
#line 3738 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4))
                return 1919; /* *fma_fnmadd_sf */
              if (!vector_operand (operands[1], SFmode)
                  || !vector_operand (operands[2], SFmode)
                  || !vector_operand (operands[3], SFmode)
                  || !
#line 3756 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1))
                return -1;
              return 1925; /* *fma_fnmadd_sf */

            case DFmode:
              if (!register_operand (operands[0], DFmode)
                  || GET_MODE (x3) != DFmode
                  || GET_MODE (x5) != DFmode)
                return -1;
              if (nonimmediate_operand (operands[1], DFmode)
                  && nonimmediate_operand (operands[2], DFmode)
                  && nonimmediate_operand (operands[3], DFmode)
                  && 
#line 3738 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4))
                return 1920; /* *fma_fnmadd_df */
              if (!vector_operand (operands[1], DFmode)
                  || !vector_operand (operands[2], DFmode)
                  || !vector_operand (operands[3], DFmode)
                  || !
#line 3756 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1))
                return -1;
              return 1934; /* *fma_fnmadd_df */

            case V4SFmode:
              if (!register_operand (operands[0], V4SFmode)
                  || GET_MODE (x3) != V4SFmode
                  || GET_MODE (x5) != V4SFmode)
                return -1;
              if (nonimmediate_operand (operands[1], V4SFmode)
                  && nonimmediate_operand (operands[2], V4SFmode)
                  && nonimmediate_operand (operands[3], V4SFmode)
                  && 
#line 3738 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4))
                return 1921; /* *fma_fnmadd_v4sf */
              if (!vector_operand (operands[1], V4SFmode)
                  || !vector_operand (operands[2], V4SFmode)
                  || !vector_operand (operands[3], V4SFmode)
                  || !(
#line 3756 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1) && 
#line 3615 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 1932; /* *fma_fnmadd_v4sf */

            case V2DFmode:
              if (!register_operand (operands[0], V2DFmode)
                  || GET_MODE (x3) != V2DFmode
                  || GET_MODE (x5) != V2DFmode)
                return -1;
              if (nonimmediate_operand (operands[1], V2DFmode)
                  && nonimmediate_operand (operands[2], V2DFmode)
                  && nonimmediate_operand (operands[3], V2DFmode)
                  && 
#line 3738 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4))
                return 1922; /* *fma_fnmadd_v2df */
              if (!vector_operand (operands[1], V2DFmode)
                  || !vector_operand (operands[2], V2DFmode)
                  || !vector_operand (operands[3], V2DFmode)
                  || !(
#line 3756 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1) && 
#line 3616 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 1941; /* *fma_fnmadd_v2df */

            case V8SFmode:
              if (!register_operand (operands[0], V8SFmode)
                  || GET_MODE (x3) != V8SFmode
                  || GET_MODE (x5) != V8SFmode)
                return -1;
              if (nonimmediate_operand (operands[1], V8SFmode)
                  && nonimmediate_operand (operands[2], V8SFmode)
                  && nonimmediate_operand (operands[3], V8SFmode)
                  && 
#line 3738 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4))
                return 1923; /* *fma_fnmadd_v8sf */
              if (!vector_operand (operands[1], V8SFmode)
                  || !vector_operand (operands[2], V8SFmode)
                  || !vector_operand (operands[3], V8SFmode)
                  || !(
#line 3756 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1) && 
#line 3615 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 1930; /* *fma_fnmadd_v8sf */

            case V4DFmode:
              if (!register_operand (operands[0], V4DFmode)
                  || GET_MODE (x3) != V4DFmode
                  || GET_MODE (x5) != V4DFmode)
                return -1;
              if (nonimmediate_operand (operands[1], V4DFmode)
                  && nonimmediate_operand (operands[2], V4DFmode)
                  && nonimmediate_operand (operands[3], V4DFmode)
                  && 
#line 3738 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4))
                return 1924; /* *fma_fnmadd_v4df */
              if (!vector_operand (operands[1], V4DFmode)
                  || !vector_operand (operands[2], V4DFmode)
                  || !vector_operand (operands[3], V4DFmode)
                  || !(
#line 3756 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1) && 
#line 3616 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 1939; /* *fma_fnmadd_v4df */

            case V16SFmode:
              if (pattern388 (x3, V16SFmode) != 0
                  || !
#line 3756 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1))
                return -1;
              return 1926; /* *fma_fnmadd_v16sf */

            case V8DFmode:
              if (pattern388 (x3, V8DFmode) != 0
                  || !
#line 3756 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1))
                return -1;
              return 1935; /* *fma_fnmadd_v8df */

            default:
              return -1;
            }

        case NEG:
          x8 = XEXP (x7, 0);
          operands[3] = x8;
          switch (GET_MODE (operands[0]))
            {
            case SFmode:
              if (pattern389 (x3, SFmode) != 0)
                return -1;
              if (nonimmediate_operand (operands[1], SFmode)
                  && nonimmediate_operand (operands[2], SFmode)
                  && nonimmediate_operand (operands[3], SFmode)
                  && 
#line 3806 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4))
                return 1959; /* *fma_fnmsub_sf */
              if (!vector_operand (operands[1], SFmode)
                  || !vector_operand (operands[2], SFmode)
                  || !vector_operand (operands[3], SFmode)
                  || !
#line 3825 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1))
                return -1;
              return 1979; /* *fma_fnmsub_sf */

            case DFmode:
              if (pattern389 (x3, DFmode) != 0)
                return -1;
              if (nonimmediate_operand (operands[1], DFmode)
                  && nonimmediate_operand (operands[2], DFmode)
                  && nonimmediate_operand (operands[3], DFmode)
                  && 
#line 3806 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4))
                return 1961; /* *fma_fnmsub_df */
              if (!vector_operand (operands[1], DFmode)
                  || !vector_operand (operands[2], DFmode)
                  || !vector_operand (operands[3], DFmode)
                  || !
#line 3825 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1))
                return -1;
              return 1988; /* *fma_fnmsub_df */

            case V4SFmode:
              if (pattern389 (x3, V4SFmode) != 0)
                return -1;
              if (nonimmediate_operand (operands[1], V4SFmode)
                  && nonimmediate_operand (operands[2], V4SFmode)
                  && nonimmediate_operand (operands[3], V4SFmode)
                  && 
#line 3806 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4))
                return 1963; /* *fma_fnmsub_v4sf */
              if (!vector_operand (operands[1], V4SFmode)
                  || !vector_operand (operands[2], V4SFmode)
                  || !vector_operand (operands[3], V4SFmode)
                  || !(
#line 3825 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1) && 
#line 3615 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 1986; /* *fma_fnmsub_v4sf */

            case V2DFmode:
              if (pattern389 (x3, V2DFmode) != 0)
                return -1;
              if (nonimmediate_operand (operands[1], V2DFmode)
                  && nonimmediate_operand (operands[2], V2DFmode)
                  && nonimmediate_operand (operands[3], V2DFmode)
                  && 
#line 3806 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4))
                return 1967; /* *fma_fnmsub_v2df */
              if (!vector_operand (operands[1], V2DFmode)
                  || !vector_operand (operands[2], V2DFmode)
                  || !vector_operand (operands[3], V2DFmode)
                  || !(
#line 3825 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1) && 
#line 3616 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 1995; /* *fma_fnmsub_v2df */

            case V8SFmode:
              if (pattern389 (x3, V8SFmode) != 0)
                return -1;
              if (nonimmediate_operand (operands[1], V8SFmode)
                  && nonimmediate_operand (operands[2], V8SFmode)
                  && nonimmediate_operand (operands[3], V8SFmode)
                  && 
#line 3806 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4))
                return 1971; /* *fma_fnmsub_v8sf */
              if (!vector_operand (operands[1], V8SFmode)
                  || !vector_operand (operands[2], V8SFmode)
                  || !vector_operand (operands[3], V8SFmode)
                  || !(
#line 3825 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1) && 
#line 3615 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 1984; /* *fma_fnmsub_v8sf */

            case V4DFmode:
              if (pattern389 (x3, V4DFmode) != 0)
                return -1;
              if (nonimmediate_operand (operands[1], V4DFmode)
                  && nonimmediate_operand (operands[2], V4DFmode)
                  && nonimmediate_operand (operands[3], V4DFmode)
                  && 
#line 3806 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4))
                return 1975; /* *fma_fnmsub_v4df */
              if (!vector_operand (operands[1], V4DFmode)
                  || !vector_operand (operands[2], V4DFmode)
                  || !vector_operand (operands[3], V4DFmode)
                  || !(
#line 3825 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1) && 
#line 3616 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 1993; /* *fma_fnmsub_v4df */

            case V16SFmode:
              if (pattern390 (x3, V16SFmode) != 0
                  || !
#line 3825 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1))
                return -1;
              return 1980; /* *fma_fnmsub_v16sf */

            case V8DFmode:
              if (pattern390 (x3, V8DFmode) != 0
                  || !
#line 3825 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && 1))
                return -1;
              return 1989; /* *fma_fnmsub_v8df */

            default:
              return -1;
            }

        default:
          return -1;
        }

    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;
  int res ATTRIBUTE_UNUSED;
  switch (pattern1 (x1, V4SImode, V2DFmode, V2SImode))
    {
    case 0:
      switch (GET_MODE (operands[0]))
        {
        case V16SFmode:
          if (!register_operand (operands[0], V16SFmode))
            return -1;
          x2 = XEXP (x1, 1);
          if (GET_MODE (x2) != V16SFmode
              || !nonimmediate_operand (operands[1], V16SImode)
              || !
#line 4422 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2165; /* ufloatv16siv16sf2 */

        case V8SFmode:
          x2 = XEXP (x1, 1);
          switch (pattern178 (x2, V8SFmode))
            {
            case 0:
              if (!(
#line 4422 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 273 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2169; /* ufloatv8siv8sf2 */

            case 1:
              if (!
#line 4917 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1))
                return -1;
              return 2289; /* ufloatv8div8sf2 */

            default:
              return -1;
            }

        case V4SFmode:
          x2 = XEXP (x1, 1);
          switch (pattern179 (x2, V4SFmode))
            {
            case 0:
              if (!(
#line 4422 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 273 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2173; /* ufloatv4siv4sf2 */

            case 1:
              if (!(
#line 4917 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 233 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2295; /* ufloatv4div4sf2 */

            default:
              return -1;
            }

        case V8DFmode:
          if (!register_operand (operands[0], V8DFmode))
            return -1;
          x2 = XEXP (x1, 1);
          if (GET_MODE (x2) != V8DFmode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V8DImode:
              if (!nonimmediate_operand (operands[1], V8DImode)
                  || !
#line 4893 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ))
                return -1;
              return 2265; /* ufloatv8div8df2 */

            case V8SImode:
              if (!nonimmediate_operand (operands[1], V8SImode)
                  || !
#line 4969 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 2303; /* ufloatv8siv8df2 */

            default:
              return -1;
            }

        case V4DFmode:
          if (!register_operand (operands[0], V4DFmode))
            return -1;
          x2 = XEXP (x1, 1);
          if (GET_MODE (x2) != V4DFmode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V4DImode:
              if (!nonimmediate_operand (operands[1], V4DImode)
                  || !(
#line 4893 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 270 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2273; /* ufloatv4div4df2 */

            case V4SImode:
              if (!nonimmediate_operand (operands[1], V4SImode)
                  || !(
#line 4969 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 247 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2305; /* ufloatv4siv4df2 */

            default:
              return -1;
            }

        case V2DFmode:
          if (!register_operand (operands[0], V2DFmode))
            return -1;
          x2 = XEXP (x1, 1);
          if (GET_MODE (x2) != V2DFmode
              || !nonimmediate_operand (operands[1], V2DImode)
              || !(
#line 4893 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 270 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 2281; /* ufloatv2div2df2 */

        default:
          return -1;
        }

    case 1:
      if (!
#line 4981 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
        return -1;
      return 2307; /* ufloatv2siv2df2 */

    default:
      return -1;
    }
}

static int
recog_167 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  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:
    case MEM:
      operands[1] = x4;
      switch (GET_MODE (operands[0]))
        {
        case V16SImode:
          if (!register_operand (operands[0], V16SImode)
              || GET_MODE (x3) != V16SImode
              || !vector_operand (operands[1], V16SFmode)
              || !
#line 4542 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2217; /* ufix_truncv16sfv16si2 */

        case V8SImode:
          if (!register_operand (operands[0], V8SImode)
              || GET_MODE (x3) != V8SImode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V8DFmode:
              if (!vector_operand (operands[1], V8DFmode)
                  || !
#line 5125 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 2336; /* ufix_truncv8dfv8si2 */

            case V8SFmode:
              if (!nonimmediate_operand (operands[1], V8SFmode)
                  || !
#line 5218 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return -1;
              return 2394; /* ufix_truncv8sfv8si2 */

            default:
              return -1;
            }

        case V4SImode:
          if (!register_operand (operands[0], V4SImode)
              || GET_MODE (x3) != V4SImode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V4DFmode:
              if (!nonimmediate_operand (operands[1], V4DFmode)
                  || !
#line 5154 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL && TARGET_AVX512F))
                return -1;
              return 2344; /* ufix_truncv4dfv4si2 */

            case V4SFmode:
              if (!nonimmediate_operand (operands[1], V4SFmode)
                  || !
#line 5218 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
                return -1;
              return 2396; /* ufix_truncv4sfv4si2 */

            default:
              return -1;
            }

        case V8DImode:
          switch (pattern175 (x3))
            {
            case 0:
              if (!
#line 5164 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1))
                return -1;
              return 2350; /* ufix_truncv8dfv8di2 */

            case 1:
              if (!
#line 5196 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1))
                return -1;
              return 2382; /* ufix_truncv8sfv8di2 */

            default:
              return -1;
            }

        case V4DImode:
          switch (pattern176 (x3))
            {
            case 0:
              if (!(
#line 5164 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 270 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2356; /* ufix_truncv4dfv4di2 */

            case 1:
              if (!(
#line 5196 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 233 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2388; /* ufix_truncv4sfv4di2 */

            default:
              return -1;
            }

        case V2DImode:
          if (!register_operand (operands[0], V2DImode)
              || GET_MODE (x3) != V2DImode
              || !vector_operand (operands[1], V2DFmode)
              || !(
#line 5164 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && 1) && 
#line 270 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 2360; /* ufix_truncv2dfv2di2 */

        default:
          return -1;
        }

    case VEC_SELECT:
      if (pattern0 (x3, V4SFmode, V2DImode, V2SFmode) != 0
          || !
#line 5208 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && TARGET_AVX512VL))
        return -1;
      return 2392; /* ufix_truncv2sfv2di2 */

    default:
      return -1;
    }
}

static int
recog_168 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  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 (x2, 0);
  x5 = XEXP (x4, 0);
  operands[0] = x5;
  if (!nonimmediate_operand (operands[0], VOIDmode))
    return -1;
  x6 = XEXP (x4, 2);
  operands[2] = x6;
  if (!const_int_operand (operands[2], VOIDmode))
    return -1;
  switch (GET_MODE (x4))
    {
    case HImode:
      if (!
#line 7962 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && ((TARGET_64BIT && GET_MODE (operands[0]) == DImode)
       || GET_MODE (operands[0]) == SImode
       || GET_MODE (operands[0]) == HImode
       || GET_MODE (operands[0]) == QImode)
   /* Ensure that resulting mask is zero or sign extended operand.  */
   && INTVAL (operands[2]) >= 0
   && ((INTVAL (operands[1]) > 0
	&& INTVAL (operands[1]) + INTVAL (operands[2]) <= 32)
       || (HImode == DImode
	   && INTVAL (operands[1]) > 32
	   && INTVAL (operands[1]) + INTVAL (operands[2]) == 64))))
        return -1;
      return 375; /* *testqi_ext_3 */

    case SImode:
      if (!
#line 7962 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && ((TARGET_64BIT && GET_MODE (operands[0]) == DImode)
       || GET_MODE (operands[0]) == SImode
       || GET_MODE (operands[0]) == HImode
       || GET_MODE (operands[0]) == QImode)
   /* Ensure that resulting mask is zero or sign extended operand.  */
   && INTVAL (operands[2]) >= 0
   && ((INTVAL (operands[1]) > 0
	&& INTVAL (operands[1]) + INTVAL (operands[2]) <= 32)
       || (SImode == DImode
	   && INTVAL (operands[1]) > 32
	   && INTVAL (operands[1]) + INTVAL (operands[2]) == 64))))
        return -1;
      return 376; /* *testqi_ext_3 */

    case DImode:
      if (!(
#line 7962 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && ((TARGET_64BIT && GET_MODE (operands[0]) == DImode)
       || GET_MODE (operands[0]) == SImode
       || GET_MODE (operands[0]) == HImode
       || GET_MODE (operands[0]) == QImode)
   /* Ensure that resulting mask is zero or sign extended operand.  */
   && INTVAL (operands[2]) >= 0
   && ((INTVAL (operands[1]) > 0
	&& INTVAL (operands[1]) + INTVAL (operands[2]) <= 32)
       || (DImode == DImode
	   && INTVAL (operands[1]) > 32
	   && INTVAL (operands[1]) + INTVAL (operands[2]) == 64))) && 
#line 991 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
        return -1;
      return 377; /* *testqi_ext_3 */

    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];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  operands[2] = x3;
  switch (GET_MODE (operands[0]))
    {
    case DImode:
      if (!register_operand (operands[0], DImode)
          || GET_MODE (x2) != DImode)
        return -1;
      if (pnum_clobbers != NULL
          && register_operand (operands[1], DImode)
          && const_1_to_31_operand (operands[2], QImode)
          && 
#line 1043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT))
        {
          *pnum_clobbers = 2;
          return 602; /* ix86_rotrdi3_doubleword */
        }
      if (!nonimmediate_operand (operands[1], DImode)
          || !immediate_operand (operands[2], QImode)
          || !(
#line 10870 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
        return -1;
      return 605; /* *bmi2_rorxdi3_1 */

    case SImode:
      if (!register_operand (operands[0], SImode)
          || GET_MODE (x2) != SImode
          || !nonimmediate_operand (operands[1], SImode)
          || !immediate_operand (operands[2], QImode)
          || !
#line 10870 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2))
        return -1;
      return 604; /* *bmi2_rorxsi3_1 */

    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];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (XINT (x2, 1))
    {
    case 17:
      if (GET_MODE (x2) != BLKmode)
        return -1;
      x3 = XVECEXP (x2, 0, 0);
      if (!rtx_equal_p (x3, operands[0]))
        return -1;
      return 697; /* *memory_blockage */

    case 14:
      x3 = XVECEXP (x2, 0, 0);
      switch (GET_CODE (x3))
        {
        case CONST_INT:
          if (XWINT (x3, 0) != 0LL)
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case SImode:
              if (pnum_clobbers == NULL
                  || !register_operand (operands[0], SImode)
                  || GET_MODE (x2) != SImode
                  || !
#line 12592 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT))
                return -1;
              *pnum_clobbers = 1;
              return 706; /* *set_got */

            case DImode:
              if (!register_operand (operands[0], DImode)
                  || GET_MODE (x2) != DImode
                  || !
#line 12622 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                return -1;
              return 708; /* set_got_rex64 */

            default:
              return -1;
            }

        case LABEL_REF:
          if (pnum_clobbers == NULL
              || !register_operand (operands[0], SImode)
              || GET_MODE (x2) != SImode)
            return -1;
          x4 = XEXP (x3, 0);
          operands[1] = x4;
          if (!
#line 12614 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT))
            return -1;
          *pnum_clobbers = 1;
          return 707; /* *set_got_labelled */

        default:
          return -1;
        }

    case 15:
      if (GET_MODE (x2) != DImode)
        return -1;
      x3 = XVECEXP (x2, 0, 0);
      if (GET_CODE (x3) != LABEL_REF
          || !register_operand (operands[0], DImode))
        return -1;
      x4 = XEXP (x3, 0);
      operands[1] = x4;
      if (!
#line 12632 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
        return -1;
      return 709; /* set_rip_rex64 */

    case 16:
      if (GET_MODE (x2) != DImode)
        return -1;
      x3 = XVECEXP (x2, 0, 0);
      if (GET_CODE (x3) != LABEL_REF
          || !register_operand (operands[0], DImode))
        return -1;
      x4 = XEXP (x3, 0);
      operands[1] = x4;
      if (!
#line 12643 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LP64))
        return -1;
      return 710; /* set_got_offset_rex64 */

    case 84:
      switch (pattern144 (x2, pnum_clobbers))
        {
        case 0:
          if (
#line 12949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI
   && TARGET_AVOID_FALSE_DEP_FOR_BMI && optimize_function_for_speed_p (cfun)))
            {
              *pnum_clobbers = 1;
              return 726; /* *bmi_tzcnt_si_falsedep_1 */
            }
          if (!
#line 12984 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI))
            return -1;
          *pnum_clobbers = 1;
          return 731; /* *bmi_tzcnt_si */

        case 1:
          if ((
#line 12949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI
   && TARGET_AVOID_FALSE_DEP_FOR_BMI && optimize_function_for_speed_p (cfun)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            {
              *pnum_clobbers = 1;
              return 727; /* *bmi_tzcnt_di_falsedep_1 */
            }
          if (!(
#line 12984 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI) && 
#line 991 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          *pnum_clobbers = 1;
          return 732; /* *bmi_tzcnt_di */

        default:
          return -1;
        }

    case 83:
      switch (pattern144 (x2, pnum_clobbers))
        {
        case 0:
          if (
#line 13082 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LZCNT
   && TARGET_AVOID_FALSE_DEP_FOR_BMI && optimize_function_for_speed_p (cfun)))
            {
              *pnum_clobbers = 1;
              return 739; /* *lzcnt_si_falsedep_1 */
            }
          if (!
#line 13117 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LZCNT))
            return -1;
          *pnum_clobbers = 1;
          return 744; /* *lzcnt_si */

        case 1:
          if ((
#line 13082 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LZCNT
   && TARGET_AVOID_FALSE_DEP_FOR_BMI && optimize_function_for_speed_p (cfun)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            {
              *pnum_clobbers = 1;
              return 740; /* *lzcnt_di_falsedep_1 */
            }
          if (!(
#line 13117 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LZCNT) && 
#line 991 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          *pnum_clobbers = 1;
          return 745; /* *lzcnt_di */

        default:
          return -1;
        }

    case 19:
      x3 = XVECEXP (x2, 0, 0);
      if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      switch (pattern26 (x2))
        {
        case 0:
          if (
#line 13956 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_X32))
            return 816; /* *load_tp_x32 */
          if (!(
#line 13978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_X32) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
            return -1;
          return 818; /* *load_tp_si */

        case 1:
          if (!(
#line 13978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_X32) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
            return -1;
          return 819; /* *load_tp_di */

        default:
          return -1;
        }

    case 22:
      if (GET_MODE (x2) != DImode
          || !register_operand (operands[0], DImode))
        return -1;
      x3 = XVECEXP (x2, 0, 0);
      operands[1] = x3;
      if (!tls_symbolic_operand (operands[1], VOIDmode)
          || !
#line 14130 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && TARGET_GNU2_TLS))
        return -1;
      return 827; /* *tls_dynamic_gnu2_lea_64 */

    case 55:
      x3 = XVECEXP (x2, 0, 0);
      operands[1] = x3;
      if (!register_operand (operands[1], XFmode))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case DImode:
          if (GET_MODE (x2) != DImode)
            return -1;
          if (nonimmediate_operand (operands[0], DImode)
              && 
#line 15790 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && can_create_pseudo_p ()))
            return 901; /* *fistdi2_1 */
          if (pnum_clobbers == NULL
              || !memory_operand (operands[0], DImode)
              || !
#line 15814 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387))
            return -1;
          *pnum_clobbers = 1;
          return 902; /* fistdi2 */

        case SImode:
          if (GET_MODE (x2) != SImode)
            return -1;
          if (register_operand (operands[0], SImode)
              && 
#line 15855 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && can_create_pseudo_p ()))
            return 905; /* *fistsi2_1 */
          if (!memory_operand (operands[0], SImode)
              || !
#line 15873 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387))
            return -1;
          return 907; /* fistsi2 */

        default:
          return -1;
        }

    case 63:
      switch (pattern145 (x2, pnum_clobbers))
        {
        case 0:
          if (!
#line 16146 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations
   && can_create_pseudo_p ()))
            return -1;
          *pnum_clobbers = 1;
          return 920; /* *fistsi2_floor_1 */

        case 1:
          if (!
#line 16146 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations
   && can_create_pseudo_p ()))
            return -1;
          *pnum_clobbers = 1;
          return 922; /* *fistdi2_floor_1 */

        default:
          return -1;
        }

    case 64:
      switch (pattern145 (x2, pnum_clobbers))
        {
        case 0:
          if (!
#line 16146 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations
   && can_create_pseudo_p ()))
            return -1;
          *pnum_clobbers = 1;
          return 921; /* *fistsi2_ceil_1 */

        case 1:
          if (!
#line 16146 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations
   && can_create_pseudo_p ()))
            return -1;
          *pnum_clobbers = 1;
          return 923; /* *fistdi2_ceil_1 */

        default:
          return -1;
        }

    case 42:
      if (GET_MODE (x2) != SImode
          || !register_operand (operands[0], SImode))
        return -1;
      x3 = XVECEXP (x2, 0, 0);
      operands[1] = x3;
      switch (GET_MODE (operands[1]))
        {
        case DFmode:
          if (!register_operand (operands[1], DFmode)
              || !
#line 16430 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH))
            return -1;
          return 941; /* movmsk_df */

        case V8QImode:
          if (!register_operand (operands[1], V8QImode)
              || !
#line 1539 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_SSE || TARGET_3DNOW_A))
            return -1;
          return 1218; /* mmx_pmovmskb */

        case V8SFmode:
          if (!register_operand (operands[1], V8SFmode)
              || !(
#line 13775 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 221 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 3727; /* avx_movmskps256 */

        case V4SFmode:
          if (!register_operand (operands[1], V4SFmode)
              || !
#line 13775 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
            return -1;
          return 3728; /* sse_movmskps */

        case V4DFmode:
          if (!register_operand (operands[1], V4DFmode)
              || !(
#line 13775 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 3729; /* avx_movmskpd256 */

        case V2DFmode:
          if (!register_operand (operands[1], V2DFmode)
              || !(
#line 13775 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return -1;
          return 3730; /* sse2_movmskpd */

        case V32QImode:
          if (!register_operand (operands[1], V32QImode)
              || !(
#line 13798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2) && 
#line 322 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
            return -1;
          return 3735; /* avx2_pmovmskb */

        case V16QImode:
          if (!register_operand (operands[1], V16QImode)
              || !
#line 13798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))
            return -1;
          return 3736; /* sse2_pmovmskb */

        default:
          return -1;
        }

    case 34:
      if (GET_MODE (x2) != BLKmode)
        return -1;
      x3 = XVECEXP (x2, 0, 0);
      if (!rtx_equal_p (x3, operands[0]))
        return -1;
      return 1081; /* *pause */

    case 12:
      x3 = XVECEXP (x2, 0, 0);
      operands[1] = x3;
      switch (GET_MODE (operands[0]))
        {
        case SImode:
          if (!register_operand (operands[0], SImode)
              || GET_MODE (x2) != SImode
              || !symbol_operand (operands[1], SImode)
              || !
#line 19615 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_MPX))
            return -1;
          return 1107; /* move_size_reloc_si */

        case DImode:
          if (!register_operand (operands[0], DImode)
              || GET_MODE (x2) != DImode
              || !symbol_operand (operands[1], DImode)
              || !(
#line 19615 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_MPX) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          return 1108; /* move_size_reloc_di */

        default:
          return -1;
        }

    case 98:
      if (GET_MODE (x2) != DImode
          || !memory_operand (operands[0], DImode))
        return -1;
      x3 = XVECEXP (x2, 0, 0);
      operands[1] = x3;
      if (!register_operand (operands[1], DImode)
          || !
#line 229 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_SSE || TARGET_3DNOW_A))
        return -1;
      return 1116; /* sse_movntq */

    case 104:
      x3 = XVECEXP (x2, 0, 0);
      operands[1] = x3;
      switch (GET_MODE (operands[0]))
        {
        case SImode:
          if (!memory_operand (operands[0], SImode)
              || GET_MODE (x2) != SImode
              || !register_operand (operands[1], SImode)
              || !
#line 1555 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))
            return -1;
          return 1374; /* sse2_movntisi */

        case DImode:
          if (!memory_operand (operands[0], DImode)
              || GET_MODE (x2) != DImode
              || !register_operand (operands[1], DImode)
              || !(
#line 1555 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          return 1375; /* sse2_movntidi */

        default:
          return -1;
        }

    case 40:
      x3 = XVECEXP (x2, 0, 0);
      switch (GET_CODE (x3))
        {
        case VEC_SELECT:
          switch (pattern222 (x3))
            {
            case 0:
              switch (pattern509 (x2, SImode))
                {
                case 0:
                  if (!
#line 4292 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
                    return -1;
                  return 2140; /* sse_cvtss2si */

                case 1:
                  if (!
#line 4787 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))
                    return -1;
                  return 2247; /* sse2_cvtsd2si */

                default:
                  return -1;
                }

            case 1:
              switch (pattern509 (x2, DImode))
                {
                case 0:
                  if (!
#line 4322 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && TARGET_64BIT))
                    return -1;
                  return 2143; /* sse_cvtss2siq */

                case 1:
                  if (!
#line 4818 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && TARGET_64BIT))
                    return -1;
                  return 2250; /* sse2_cvtsd2siq */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case REG:
        case SUBREG:
        case MEM:
          operands[1] = x3;
          switch (GET_MODE (operands[0]))
            {
            case SImode:
              switch (pattern345 (x2, SImode))
                {
                case 0:
                  if (!
#line 4305 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
                    return -1;
                  return 2142; /* sse_cvtss2si_2 */

                case 1:
                  if (!
#line 4801 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))
                    return -1;
                  return 2249; /* sse2_cvtsd2si_2 */

                default:
                  return -1;
                }

            case DImode:
              switch (pattern345 (x2, DImode))
                {
                case 0:
                  if (!
#line 4335 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && TARGET_64BIT))
                    return -1;
                  return 2145; /* sse_cvtss2siq_2 */

                case 1:
                  if (!
#line 4831 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && TARGET_64BIT))
                    return -1;
                  return 2252; /* sse2_cvtsd2siq_2 */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 151:
      x3 = XVECEXP (x2, 0, 0);
      if (GET_CODE (x3) != VEC_SELECT)
        return -1;
      switch (pattern222 (x3))
        {
        case 0:
          switch (pattern510 (x2, SImode))
            {
            case 0:
              if (!
#line 4687 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 2231; /* avx512f_vcvtss2usi */

            case 1:
              if (!
#line 4737 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
                return -1;
              return 2239; /* avx512f_vcvtsd2usi */

            default:
              return -1;
            }

        case 1:
          switch (pattern510 (x2, DImode))
            {
            case 0:
              if (!
#line 4700 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && TARGET_64BIT))
                return -1;
              return 2233; /* avx512f_vcvtss2usiq */

            case 1:
              if (!
#line 4750 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && TARGET_64BIT))
                return -1;
              return 2241; /* avx512f_vcvtsd2usiq */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 188:
      x3 = XVECEXP (x2, 0, 0);
      operands[1] = x3;
      switch (GET_MODE (operands[0]))
        {
        case DImode:
          if (!register_operand (operands[0], DImode)
              || GET_MODE (x2) != DImode
              || !register_operand (operands[1], V64QImode)
              || !
#line 5406 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
            return -1;
          return 2420; /* avx512bw_cvtb2maskv64qi */

        case SImode:
          if (!register_operand (operands[0], SImode)
              || GET_MODE (x2) != SImode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V32QImode:
              if (!register_operand (operands[1], V32QImode)
                  || !(
#line 5406 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 2422; /* avx512vl_cvtb2maskv32qi */

            case V32HImode:
              if (!register_operand (operands[1], V32HImode)
                  || !
#line 5406 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
                return -1;
              return 2423; /* avx512bw_cvtw2maskv32hi */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 195:
      if (GET_MODE (x2) != BLKmode)
        return -1;
      x3 = XVECEXP (x2, 0, 0);
      if (!rtx_equal_p (x3, operands[0])
          || !
#line 51 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
(TARGET_SSE2))
        return -1;
      return 4970; /* *sse2_lfence */

    case 196:
      if (GET_MODE (x2) != BLKmode)
        return -1;
      x3 = XVECEXP (x2, 0, 0);
      if (!rtx_equal_p (x3, operands[0])
          || !
#line 70 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
(TARGET_SSE || TARGET_3DNOW_A))
        return -1;
      return 4971; /* *sse_sfence */

    case 197:
      if (GET_MODE (x2) != BLKmode)
        return -1;
      x3 = XVECEXP (x2, 0, 0);
      if (!rtx_equal_p (x3, operands[0]))
        return -1;
      if (
#line 89 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
(TARGET_64BIT || TARGET_SSE2))
        return 4972; /* mfence_sse2 */
      if (pnum_clobbers == NULL
          || !
#line 100 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
(!(TARGET_64BIT || TARGET_SSE2)))
        return -1;
      *pnum_clobbers = 1;
      return 4973; /* mfence_nosse */

    case 199:
      if (GET_MODE (x2) != DImode
          || !memory_operand (operands[0], DImode))
        return -1;
      x3 = XVECEXP (x2, 0, 0);
      operands[1] = x3;
      if (!register_operand (operands[1], DFmode)
          || !
#line 320 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
(TARGET_80387))
        return -1;
      return 4981; /* storedi_via_fpu */

    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];
  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, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case PLUS:
      if (pattern89 (x3, pnum_clobbers) != 0)
        return -1;
      x5 = XEXP (x4, 0);
      switch (GET_CODE (x5))
        {
        case REG:
        case SUBREG:
        case MEM:
          operands[1] = x5;
          if (!nonimmediate_operand (operands[1], SImode))
            return -1;
          x6 = XEXP (x4, 1);
          operands[2] = x6;
          if (!x86_64_general_operand (operands[2], SImode)
              || !
#line 5562 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_binary_operator_ok (PLUS, SImode, operands)))
            return -1;
          *pnum_clobbers = 1;
          return 222; /* addsi_1_zext */

        case PLUS:
          if (GET_MODE (x5) != SImode)
            return -1;
          x7 = XEXP (x5, 0);
          if (!ix86_carry_flag_operator (x7, SImode))
            return -1;
          operands[3] = x7;
          x8 = XEXP (x7, 0);
          if (GET_CODE (x8) != REG
              || REGNO (x8) != 17)
            return -1;
          x9 = XEXP (x7, 1);
          if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x10 = XEXP (x5, 1);
          operands[1] = x10;
          if (!register_operand (operands[1], SImode))
            return -1;
          x6 = XEXP (x4, 1);
          operands[2] = x6;
          if (!x86_64_general_operand (operands[2], SImode)
              || !
#line 6636 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_binary_operator_ok (PLUS, SImode, operands)))
            return -1;
          *pnum_clobbers = 1;
          return 289; /* *addsi3_carry_zext */

        case UNSPEC:
          if (XVECLEN (x5, 0) != 1
              || XINT (x5, 1) != 19
              || GET_MODE (x5) != SImode)
            return -1;
          x11 = XVECEXP (x5, 0, 0);
          if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x6 = XEXP (x4, 1);
          operands[1] = x6;
          if (!register_operand (operands[1], SImode)
              || !
#line 14005 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_X32))
            return -1;
          *pnum_clobbers = 1;
          return 821; /* *add_tp_x32_zext */

        default:
          return -1;
        }

    case MINUS:
      if (pattern89 (x3, pnum_clobbers) != 0)
        return -1;
      x6 = XEXP (x4, 1);
      operands[2] = x6;
      if (!x86_64_general_operand (operands[2], SImode))
        return -1;
      x5 = XEXP (x4, 0);
      switch (GET_CODE (x5))
        {
        case REG:
        case SUBREG:
          operands[1] = x5;
          if (!register_operand (operands[1], SImode)
              || !
#line 6454 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_binary_operator_ok (MINUS, SImode, operands)))
            return -1;
          *pnum_clobbers = 1;
          return 265; /* *subsi_1_zext */

        case MINUS:
          if (GET_MODE (x5) != SImode)
            return -1;
          x10 = XEXP (x5, 1);
          if (!ix86_carry_flag_operator (x10, SImode))
            return -1;
          operands[3] = x10;
          x12 = XEXP (x10, 0);
          if (GET_CODE (x12) != REG
              || REGNO (x12) != 17)
            return -1;
          x13 = XEXP (x10, 1);
          if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x7 = XEXP (x5, 0);
          operands[1] = x7;
          if (!register_operand (operands[1], SImode)
              || !
#line 6693 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_binary_operator_ok (MINUS, SImode, operands)))
            return -1;
          *pnum_clobbers = 1;
          return 296; /* *subsi3_carry_zext */

        default:
          return -1;
        }

    case MULT:
      if (pattern90 (x3, pnum_clobbers) != 0
          || !
#line 6911 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
        return -1;
      *pnum_clobbers = 1;
      return 320; /* *mulsi3_1_zext */

    case TRUNCATE:
      if (pnum_clobbers == NULL
          || GET_MODE (x4) != SImode)
        return -1;
      x5 = XEXP (x4, 0);
      if (GET_CODE (x5) != LSHIFTRT
          || GET_MODE (x5) != DImode)
        return -1;
      x7 = XEXP (x5, 0);
      if (GET_CODE (x7) != MULT
          || GET_MODE (x7) != DImode)
        return -1;
      x10 = XEXP (x5, 1);
      if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 32]
          || !register_operand (operands[0], DImode)
          || GET_MODE (x3) != DImode)
        return -1;
      x8 = XEXP (x7, 0);
      if (GET_MODE (x8) != DImode)
        return -1;
      x9 = XEXP (x7, 1);
      if (GET_MODE (x9) != DImode)
        return -1;
      switch (GET_CODE (x8))
        {
        case SIGN_EXTEND:
          if (GET_CODE (x9) != SIGN_EXTEND)
            return -1;
          x14 = XEXP (x8, 0);
          operands[1] = x14;
          if (!nonimmediate_operand (operands[1], SImode))
            return -1;
          x15 = XEXP (x9, 0);
          operands[2] = x15;
          if (!nonimmediate_operand (operands[2], SImode)
              || !
#line 7380 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
            return -1;
          *pnum_clobbers = 2;
          return 345; /* *smulsi3_highpart_zext */

        case ZERO_EXTEND:
          if (GET_CODE (x9) != ZERO_EXTEND)
            return -1;
          x14 = XEXP (x8, 0);
          operands[1] = x14;
          if (!nonimmediate_operand (operands[1], SImode))
            return -1;
          x15 = XEXP (x9, 0);
          operands[2] = x15;
          if (!nonimmediate_operand (operands[2], SImode)
              || !
#line 7380 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
            return -1;
          *pnum_clobbers = 2;
          return 346; /* *umulsi3_highpart_zext */

        default:
          return -1;
        }

    case AND:
      if (pattern90 (x3, pnum_clobbers) != 0
          || !
#line 8261 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_binary_operator_ok (AND, SImode, operands)))
        return -1;
      *pnum_clobbers = 1;
      return 393; /* *andsi_1_zext */

    case IOR:
      if (pattern90 (x3, pnum_clobbers) != 0
          || !
#line 8825 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_binary_operator_ok (IOR, SImode, operands)))
        return -1;
      *pnum_clobbers = 1;
      return 421; /* *iorsi_1_zext */

    case XOR:
      if (pattern90 (x3, pnum_clobbers) != 0
          || !
#line 8825 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_binary_operator_ok (XOR, SImode, operands)))
        return -1;
      *pnum_clobbers = 1;
      return 422; /* *xorsi_1_zext */

    case NOT:
      if (pattern88 (x3, DImode, SImode) != 0
          || !
#line 9621 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_unary_operator_ok (NOT, SImode, operands)))
        return -1;
      return 509; /* *one_cmplsi2_1_zext */

    case ASHIFT:
      if (pattern91 (x3) != 0)
        return -1;
      if (register_operand (operands[2], SImode)
          && 
#line 9924 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && TARGET_BMI2))
        return 533; /* *bmi2_ashlsi3_1_zext */
      if (pnum_clobbers == NULL
          || !nonmemory_operand (operands[2], QImode)
          || !
#line 9935 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_binary_operator_ok (ASHIFT, SImode, operands)))
        return -1;
      *pnum_clobbers = 1;
      return 534; /* *ashlsi3_1_zext */

    case ASHIFTRT:
      if (GET_MODE (x4) != SImode
          || !register_operand (operands[0], DImode)
          || GET_MODE (x3) != DImode)
        return -1;
      x5 = XEXP (x4, 0);
      operands[1] = x5;
      x6 = XEXP (x4, 1);
      operands[2] = x6;
      switch (GET_CODE (operands[2]))
        {
        case CONST_INT:
          if (pnum_clobbers != NULL
              && const_int_operand (operands[2], QImode)
              && register_operand (operands[1], SImode)
              && 
#line 10453 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && INTVAL (operands[2]) == 31
   && (TARGET_USE_CLTD || optimize_function_for_size_p (cfun))
   && ix86_binary_operator_ok (ASHIFTRT, SImode, operands)))
            {
              *pnum_clobbers = 1;
              return 559; /* *ashrsi3_cvt_zext */
            }
          break;

        case REG:
        case SUBREG:
          if (register_operand (operands[2], SImode)
              && nonimmediate_operand (operands[1], SImode)
              && 
#line 10551 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && TARGET_BMI2))
            return 569; /* *bmi2_ashrsi3_1_zext */
          break;

        default:
          break;
        }
      if (pnum_clobbers == NULL
          || !nonmemory_operand (operands[2], QImode)
          || !nonimmediate_operand (operands[1], SImode)
          || !
#line 10562 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_binary_operator_ok (ASHIFTRT, SImode, operands)))
        return -1;
      *pnum_clobbers = 1;
      return 571; /* *ashrsi3_1_zext */

    case LSHIFTRT:
      if (pattern91 (x3) != 0)
        return -1;
      if (register_operand (operands[2], SImode)
          && 
#line 10551 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && TARGET_BMI2))
        return 568; /* *bmi2_lshrsi3_1_zext */
      if (pnum_clobbers == NULL
          || !nonmemory_operand (operands[2], QImode)
          || !
#line 10562 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_binary_operator_ok (LSHIFTRT, SImode, operands)))
        return -1;
      *pnum_clobbers = 1;
      return 570; /* *lshrsi3_1_zext */

    case ROTATERT:
      if (pattern91 (x3) != 0)
        return -1;
      if (immediate_operand (operands[2], QImode)
          && 
#line 10937 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && TARGET_BMI2))
        return 610; /* *bmi2_rorxsi3_1_zext */
      if (pnum_clobbers == NULL
          || !nonmemory_operand (operands[2], QImode)
          || !
#line 10948 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_binary_operator_ok (ROTATERT, SImode, operands)))
        return -1;
      *pnum_clobbers = 1;
      return 612; /* *rotrsi3_1_zext */

    case ROTATE:
      if (pnum_clobbers == NULL
          || pattern91 (x3) != 0
          || !nonmemory_operand (operands[2], QImode)
          || !
#line 10948 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_binary_operator_ok (ROTATE, SImode, operands)))
        return -1;
      *pnum_clobbers = 1;
      return 611; /* *rotlsi3_1_zext */

    case UNSPEC:
      if (XVECLEN (x4, 0) != 1
          || !register_operand (operands[0], DImode)
          || GET_MODE (x3) != DImode
          || GET_MODE (x4) != SImode)
        return -1;
      switch (XINT (x4, 1))
        {
        case 19:
          x16 = XVECEXP (x4, 0, 0);
          if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
              || !
#line 13967 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_X32))
            return -1;
          return 817; /* *load_tp_x32_zext */

        case 42:
          x16 = XVECEXP (x4, 0, 0);
          operands[1] = x16;
          switch (GET_MODE (operands[1]))
            {
            case V8SFmode:
              if (!register_operand (operands[1], V8SFmode)
                  || !(
#line 13787 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_64BIT && TARGET_SSE) && 
#line 221 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
                return -1;
              return 3731; /* *avx_movmskps256_zext */

            case V4SFmode:
              if (!register_operand (operands[1], V4SFmode)
                  || !
#line 13787 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_64BIT && TARGET_SSE))
                return -1;
              return 3732; /* *sse_movmskps_zext */

            case V4DFmode:
              if (!register_operand (operands[1], V4DFmode)
                  || !(
#line 13787 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_64BIT && TARGET_SSE) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
                return -1;
              return 3733; /* *avx_movmskpd256_zext */

            case V2DFmode:
              if (!register_operand (operands[1], V2DFmode)
                  || !(
#line 13787 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_64BIT && TARGET_SSE) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
                return -1;
              return 3734; /* *sse2_movmskpd_zext */

            case V32QImode:
              if (!register_operand (operands[1], V32QImode)
                  || !(
#line 13815 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_64BIT && TARGET_SSE2) && 
#line 322 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
                return -1;
              return 3737; /* *avx2_pmovmskb_zext */

            case V16QImode:
              if (!register_operand (operands[1], V16QImode)
                  || !
#line 13815 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_64BIT && TARGET_SSE2))
                return -1;
              return 3738; /* *sse2_pmovmskb_zext */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case VEC_SELECT:
      x6 = XEXP (x4, 1);
      if (GET_CODE (x6) != PARALLEL
          || XVECLEN (x6, 0) != 1)
        return -1;
      x17 = XVECEXP (x6, 0, 0);
      if (GET_CODE (x17) != CONST_INT)
        return -1;
      operands[2] = x17;
      x5 = XEXP (x4, 0);
      operands[1] = x5;
      switch (pattern26 (x3))
        {
        case 0:
          switch (GET_MODE (x4))
            {
            case HImode:
              switch (GET_MODE (operands[1]))
                {
                case V4HImode:
                  if (register_operand (operands[1], V4HImode)
                      && const_0_to_3_operand (operands[2], SImode)
                      && 
#line 1190 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_SSE || TARGET_3DNOW_A))
                    return 1206; /* mmx_pextrw */
                  break;

                case V8HImode:
                  if (register_operand (operands[1], V8HImode)
                      && const_0_to_7_operand (operands[2], SImode)
                      && 
#line 13319 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))
                    return 3695; /* *vec_extractv8hi_zext */
                  break;

                default:
                  break;
                }
              break;

            case QImode:
              if (register_operand (operands[1], V16QImode)
                  && const_0_to_15_operand (operands[2], SImode)
                  && (
#line 13319 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2) && 
#line 13286 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1)))
                return 3693; /* *vec_extractv16qi_zext */
              break;

            default:
              break;
            }
          break;

        case 1:
          switch (GET_MODE (x4))
            {
            case SImode:
              if (memory_operand (operands[1], V2SImode)
                  && const_0_to_1_operand (operands[2], SImode)
                  && 
#line 1342 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_64BIT && TARGET_MMX))
                return 1214; /* *vec_extractv2si_zext_mem */
              break;

            case QImode:
              if (register_operand (operands[1], V16QImode)
                  && const_0_to_15_operand (operands[2], SImode)
                  && (
#line 13319 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2) && (
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT) && 
#line 13286 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1))))
                return 3694; /* *vec_extractv16qi_zext */
              break;

            case HImode:
              if (register_operand (operands[1], V8HImode)
                  && const_0_to_7_operand (operands[2], SImode)
                  && (
#line 13319 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return 3696; /* *vec_extractv8hi_zext */
              break;

            default:
              break;
            }
          break;

        default:
          break;
        }
      if (!register_operand (operands[0], DImode)
          || GET_MODE (x3) != DImode
          || GET_MODE (x4) != SImode)
        return -1;
      operands[1] = x5;
      if (register_operand (operands[1], V4SImode))
        {
          if (XWINT (x17, 0) == 0LL
              && 
#line 13356 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_64BIT && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_FROM_VEC))
            return 3701; /* *vec_extractv4si_0_zext */
          operands[2] = x17;
          if (const_0_to_3_operand (operands[2], SImode)
              && 
#line 13418 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_64BIT && TARGET_SSE4_1))
            return 3704; /* *vec_extractv4si_zext */
        }
      if (!memory_operand (operands[1], V4SImode))
        return -1;
      operands[2] = x17;
      if (!const_0_to_3_operand (operands[2], SImode)
          || !
#line 13440 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_64BIT && TARGET_SSE))
        return -1;
      return 3706; /* *vec_extractv4si_zext_mem */

    default:
      return -1;
    }
}

static int
recog_172 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != REG
      || REGNO (x2) != 17)
    return -1;
  x3 = XEXP (x1, 1);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case NEG:
      if (pnum_clobbers == NULL)
        return -1;
      x5 = XEXP (x4, 0);
      operands[2] = x5;
      x6 = XEXP (x3, 1);
      operands[1] = x6;
      switch (GET_MODE (x4))
        {
        case QImode:
          if (!general_operand (operands[2], QImode)
              || !nonimmediate_operand (operands[1], QImode)
              || !
#line 5906 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCZmode)
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
            return -1;
          *pnum_clobbers = 1;
          return 231; /* *addqi_3 */

        case HImode:
          if (!general_operand (operands[2], HImode)
              || !nonimmediate_operand (operands[1], HImode)
              || !
#line 5906 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCZmode)
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
            return -1;
          *pnum_clobbers = 1;
          return 232; /* *addhi_3 */

        case SImode:
          if (!x86_64_general_operand (operands[2], SImode)
              || !nonimmediate_operand (operands[1], SImode)
              || !
#line 5906 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCZmode)
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
            return -1;
          *pnum_clobbers = 1;
          return 233; /* *addsi_3 */

        case DImode:
          if (!x86_64_general_operand (operands[2], DImode)
              || !nonimmediate_operand (operands[1], DImode)
              || !(
#line 5906 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCZmode)
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          *pnum_clobbers = 1;
          return 234; /* *adddi_3 */

        default:
          return -1;
        }

    case REG:
    case SUBREG:
    case MEM:
      if (pnum_clobbers == NULL)
        return -1;
      operands[1] = x4;
      x6 = XEXP (x3, 1);
      operands[2] = x6;
      switch (GET_MODE (operands[1]))
        {
        case DImode:
          if (!nonimmediate_operand (operands[1], DImode)
              || !x86_64_immediate_operand (operands[2], DImode)
              || !
#line 5998 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT
   && ix86_match_ccmode (insn, CCGCmode)))
            return -1;
          *pnum_clobbers = 1;
          return 236; /* *adddi_4 */

        case QImode:
          if (!nonimmediate_operand (operands[1], QImode)
              || !const_int_operand (operands[2], QImode)
              || !
#line 6043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCGCmode)))
            return -1;
          *pnum_clobbers = 1;
          return 237; /* *addqi_4 */

        case HImode:
          if (!nonimmediate_operand (operands[1], HImode)
              || !const_int_operand (operands[2], HImode)
              || !
#line 6043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCGCmode)))
            return -1;
          *pnum_clobbers = 1;
          return 238; /* *addhi_4 */

        case SImode:
          if (!nonimmediate_operand (operands[1], SImode)
              || !const_int_operand (operands[2], SImode)
              || !
#line 6043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCGCmode)))
            return -1;
          *pnum_clobbers = 1;
          return 239; /* *addsi_4 */

        default:
          return -1;
        }

    case PLUS:
      if (pnum_clobbers == NULL)
        return -1;
      x5 = XEXP (x4, 0);
      operands[1] = x5;
      x7 = XEXP (x4, 1);
      operands[2] = x7;
      x6 = XEXP (x3, 1);
      if (x6 == const_int_rtx[MAX_SAVED_CONST_INT + 0])
        {
          switch (pattern139 (x4))
            {
            case 0:
              if (
#line 6082 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCGOCmode)
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                {
                  *pnum_clobbers = 1;
                  return 240; /* *addqi_5 */
                }
              break;

            case 1:
              if (
#line 6082 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCGOCmode)
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                {
                  *pnum_clobbers = 1;
                  return 241; /* *addhi_5 */
                }
              break;

            case 2:
              if (
#line 6082 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCGOCmode)
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                {
                  *pnum_clobbers = 1;
                  return 242; /* *addsi_5 */
                }
              break;

            case 3:
              if ((
#line 6082 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCGOCmode)
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                {
                  *pnum_clobbers = 1;
                  return 243; /* *adddi_5 */
                }
              break;

            default:
              break;
            }
        }
      if (GET_MODE (x2) != CCCmode
          || GET_MODE (x3) != CCCmode
          || !rtx_equal_p (x6, operands[2]))
        return -1;
      switch (pattern139 (x4))
        {
        case 0:
          if (!
#line 6754 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))))
            return -1;
          *pnum_clobbers = 1;
          return 303; /* *addqi3_cconly_overflow_2 */

        case 1:
          if (!
#line 6754 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))))
            return -1;
          *pnum_clobbers = 1;
          return 304; /* *addhi3_cconly_overflow_2 */

        case 2:
          if (!
#line 6754 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))))
            return -1;
          *pnum_clobbers = 1;
          return 305; /* *addsi3_cconly_overflow_2 */

        case 3:
          if (!(
#line 6754 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          *pnum_clobbers = 1;
          return 306; /* *adddi3_cconly_overflow_2 */

        default:
          return -1;
        }

    case AND:
      x6 = XEXP (x3, 1);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x5 = XEXP (x4, 0);
      switch (GET_CODE (x5))
        {
        case REG:
        case SUBREG:
        case MEM:
          operands[0] = x5;
          x7 = XEXP (x4, 1);
          operands[1] = x7;
          switch (GET_MODE (x4))
            {
            case DImode:
              if (!nonimmediate_operand (operands[0], DImode)
                  || !x86_64_szext_general_operand (operands[1], DImode)
                  || !
#line 7838 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_match_ccmode (insn, CCNOmode)
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
                return -1;
              return 367; /* *testdi_1 */

            case QImode:
              if (!nonimmediate_operand (operands[0], QImode)
                  || !general_operand (operands[1], QImode))
                return -1;
              if (
#line 7857 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[0]) && MEM_P (operands[1]))
    && ix86_match_ccmode (insn,
 			 CONST_INT_P (operands[1])
 			 && INTVAL (operands[1]) >= 0 ? CCNOmode : CCZmode)))
                return 368; /* *testqi_1_maybe_si */
              if (!
#line 7882 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
                return -1;
              return 369; /* *testqi_1 */

            case HImode:
              if (!nonimmediate_operand (operands[0], HImode)
                  || !general_operand (operands[1], HImode)
                  || !
#line 7882 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
                return -1;
              return 370; /* *testhi_1 */

            case SImode:
              if (!nonimmediate_operand (operands[0], SImode)
                  || !x86_64_general_operand (operands[1], SImode)
                  || !
#line 7882 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
                return -1;
              return 371; /* *testsi_1 */

            default:
              return -1;
            }

        case ZERO_EXTRACT:
          if (pattern280 (x4) != 0)
            return -1;
          x8 = XEXP (x5, 0);
          operands[0] = x8;
          if (!ext_register_operand (operands[0], VOIDmode))
            return -1;
          x7 = XEXP (x4, 1);
          switch (GET_CODE (x7))
            {
            case CONST_INT:
              operands[1] = x7;
              if (!const_int_operand (operands[1], VOIDmode)
                  || !
#line 7911 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)))
                return -1;
              return 372; /* *testqi_ext_0 */

            case ZERO_EXTEND:
              if (GET_MODE (x7) != SImode)
                return -1;
              x9 = XEXP (x7, 0);
              operands[1] = x9;
              if (!nonimmediate_x64nomem_operand (operands[1], QImode)
                  || !
#line 7930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)))
                return -1;
              return 373; /* *testqi_ext_1 */

            case ZERO_EXTRACT:
              if (GET_MODE (x7) != SImode)
                return -1;
              x10 = XEXP (x7, 1);
              if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
                return -1;
              x11 = XEXP (x7, 2);
              if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
                return -1;
              x9 = XEXP (x7, 0);
              operands[1] = x9;
              if (!ext_register_operand (operands[1], VOIDmode)
                  || !
#line 7949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)))
                return -1;
              return 374; /* *testqi_ext_2 */

            default:
              return -1;
            }

        case NOT:
          if (pnum_clobbers == NULL)
            return -1;
          x8 = XEXP (x5, 0);
          operands[1] = x8;
          x7 = XEXP (x4, 1);
          operands[2] = x7;
          switch (GET_MODE (x4))
            {
            case SImode:
              if (GET_MODE (x5) != SImode
                  || !register_operand (operands[1], SImode)
                  || !nonimmediate_operand (operands[2], SImode)
                  || !
#line 13145 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI && ix86_match_ccmode (insn, CCNOmode)))
                return -1;
              *pnum_clobbers = 1;
              return 748; /* *bmi_andn_si_ccno */

            case DImode:
              if (GET_MODE (x5) != DImode
                  || !register_operand (operands[1], DImode)
                  || !nonimmediate_operand (operands[2], DImode)
                  || !(
#line 13145 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI && ix86_match_ccmode (insn, CCNOmode)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              *pnum_clobbers = 1;
              return 749; /* *bmi_andn_di_ccno */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case ZERO_EXTRACT:
      x7 = XEXP (x4, 1);
      if (GET_CODE (x7) != CONST_INT)
        return -1;
      operands[1] = x7;
      if (const_int_operand (operands[1], VOIDmode))
        {
          res = recog_168 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      if (XWINT (x7, 0) != 1LL)
        return -1;
      x6 = XEXP (x3, 1);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || GET_MODE (x2) != CCCmode
          || GET_MODE (x3) != CCCmode)
        return -1;
      x5 = XEXP (x4, 0);
      operands[0] = x5;
      x12 = XEXP (x4, 2);
      operands[1] = x12;
      if (!nonmemory_operand (operands[1], SImode))
        return -1;
      switch (GET_MODE (x4))
        {
        case SImode:
          if (!register_operand (operands[0], SImode))
            return -1;
          return 622; /* *btsi */

        case DImode:
          if (!register_operand (operands[0], DImode)
              || !
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
            return -1;
          return 623; /* *btdi */

        default:
          return -1;
        }

    case IOR:
      switch (pattern140 (x3, pnum_clobbers))
        {
        case 0:
          if (!
#line 9029 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
            return -1;
          *pnum_clobbers = 1;
          return 450; /* *iorqi_3 */

        case 1:
          if (!
#line 9029 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
            return -1;
          *pnum_clobbers = 1;
          return 452; /* *iorhi_3 */

        case 2:
          if (!
#line 9029 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
            return -1;
          *pnum_clobbers = 1;
          return 454; /* *iorsi_3 */

        case 3:
          if (!(
#line 9029 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          *pnum_clobbers = 1;
          return 456; /* *iordi_3 */

        default:
          return -1;
        }

    case XOR:
      switch (pattern140 (x3, pnum_clobbers))
        {
        case 0:
          if (!
#line 9029 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
            return -1;
          *pnum_clobbers = 1;
          return 451; /* *xorqi_3 */

        case 1:
          if (!
#line 9029 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
            return -1;
          *pnum_clobbers = 1;
          return 453; /* *xorhi_3 */

        case 2:
          if (!
#line 9029 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
            return -1;
          *pnum_clobbers = 1;
          return 455; /* *xorsi_3 */

        case 3:
          if (!(
#line 9029 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          *pnum_clobbers = 1;
          return 457; /* *xordi_3 */

        default:
          return -1;
        }

    case ASHIFT:
      switch (pattern141 (x3, pnum_clobbers))
        {
        case 0:
          if (!
#line 10285 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[2] == const1_rtx
	&& (TARGET_SHIFT1
	    || TARGET_DOUBLE_WITH_ADD)))
   && ix86_match_ccmode (insn, CCGOCmode)))
            return -1;
          *pnum_clobbers = 1;
          return 543; /* *ashlqi3_cconly */

        case 1:
          if (!
#line 10285 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[2] == const1_rtx
	&& (TARGET_SHIFT1
	    || TARGET_DOUBLE_WITH_ADD)))
   && ix86_match_ccmode (insn, CCGOCmode)))
            return -1;
          *pnum_clobbers = 1;
          return 544; /* *ashlhi3_cconly */

        case 2:
          if (!
#line 10285 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[2] == const1_rtx
	&& (TARGET_SHIFT1
	    || TARGET_DOUBLE_WITH_ADD)))
   && ix86_match_ccmode (insn, CCGOCmode)))
            return -1;
          *pnum_clobbers = 1;
          return 545; /* *ashlsi3_cconly */

        case 3:
          if (!(
#line 10285 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[2] == const1_rtx
	&& (TARGET_SHIFT1
	    || TARGET_DOUBLE_WITH_ADD)))
   && ix86_match_ccmode (insn, CCGOCmode)) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          *pnum_clobbers = 1;
          return 546; /* *ashldi3_cconly */

        default:
          return -1;
        }

    case LSHIFTRT:
      switch (pattern141 (x3, pnum_clobbers))
        {
        case 0:
          if (!
#line 10725 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[2] == const1_rtx
	&& TARGET_SHIFT1))
   && ix86_match_ccmode (insn, CCGOCmode)))
            return -1;
          *pnum_clobbers = 1;
          return 588; /* *lshrqi3_cconly */

        case 1:
          if (!
#line 10725 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[2] == const1_rtx
	&& TARGET_SHIFT1))
   && ix86_match_ccmode (insn, CCGOCmode)))
            return -1;
          *pnum_clobbers = 1;
          return 590; /* *lshrhi3_cconly */

        case 2:
          if (!
#line 10725 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[2] == const1_rtx
	&& TARGET_SHIFT1))
   && ix86_match_ccmode (insn, CCGOCmode)))
            return -1;
          *pnum_clobbers = 1;
          return 592; /* *lshrsi3_cconly */

        case 3:
          if (!(
#line 10725 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[2] == const1_rtx
	&& TARGET_SHIFT1))
   && ix86_match_ccmode (insn, CCGOCmode)) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          *pnum_clobbers = 1;
          return 594; /* *lshrdi3_cconly */

        default:
          return -1;
        }

    case ASHIFTRT:
      switch (pattern141 (x3, pnum_clobbers))
        {
        case 0:
          if (!
#line 10725 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[2] == const1_rtx
	&& TARGET_SHIFT1))
   && ix86_match_ccmode (insn, CCGOCmode)))
            return -1;
          *pnum_clobbers = 1;
          return 589; /* *ashrqi3_cconly */

        case 1:
          if (!
#line 10725 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[2] == const1_rtx
	&& TARGET_SHIFT1))
   && ix86_match_ccmode (insn, CCGOCmode)))
            return -1;
          *pnum_clobbers = 1;
          return 591; /* *ashrhi3_cconly */

        case 2:
          if (!
#line 10725 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[2] == const1_rtx
	&& TARGET_SHIFT1))
   && ix86_match_ccmode (insn, CCGOCmode)))
            return -1;
          *pnum_clobbers = 1;
          return 593; /* *ashrsi3_cconly */

        case 3:
          if (!(
#line 10725 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[2] == const1_rtx
	&& TARGET_SHIFT1))
   && ix86_match_ccmode (insn, CCGOCmode)) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          *pnum_clobbers = 1;
          return 595; /* *ashrdi3_cconly */

        default:
          return -1;
        }

    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];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  switch (XVECLEN (x3, 0))
    {
    case 1:
      return recog_170 (x1, insn, pnum_clobbers);

    case 2:
      x4 = XVECEXP (x3, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x3, 0, 1);
      operands[2] = x5;
      switch (XINT (x3, 1))
        {
        case 85:
          if (pnum_clobbers == NULL)
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case SImode:
              if (pattern311 (x3, SImode) != 0
                  || !
#line 13157 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI))
                return -1;
              *pnum_clobbers = 1;
              return 750; /* bmi_bextr_si */

            case DImode:
              if (pattern311 (x3, DImode) != 0
                  || !(
#line 13157 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              *pnum_clobbers = 1;
              return 751; /* bmi_bextr_di */

            default:
              return -1;
            }

        case 86:
          switch (GET_MODE (operands[0]))
            {
            case SImode:
              if (pattern45 (x3, SImode) != 0
                  || !
#line 13288 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2))
                return -1;
              return 766; /* bmi2_pdep_si3 */

            case DImode:
              if (pattern45 (x3, DImode) != 0
                  || !(
#line 13288 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 767; /* bmi2_pdep_di3 */

            default:
              return -1;
            }

        case 87:
          switch (GET_MODE (operands[0]))
            {
            case SImode:
              if (pattern45 (x3, SImode) != 0
                  || !
#line 13299 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2))
                return -1;
              return 768; /* bmi2_pext_si3 */

            case DImode:
              if (pattern45 (x3, DImode) != 0
                  || !(
#line 13299 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 769; /* bmi2_pext_di3 */

            default:
              return -1;
            }

        case 82:
          switch (GET_MODE (operands[0]))
            {
            case SImode:
              if (!register_operand (operands[0], SImode)
                  || GET_MODE (x3) != SImode
                  || !register_operand (operands[1], SImode))
                return -1;
              switch (GET_MODE (operands[2]))
                {
                case QImode:
                  if (!nonimmediate_operand (operands[2], QImode)
                      || !
#line 18879 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_SSE4_2 || TARGET_CRC32))
                    return -1;
                  return 1023; /* sse4_2_crc32qi */

                case HImode:
                  if (!nonimmediate_operand (operands[2], HImode)
                      || !
#line 18879 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_SSE4_2 || TARGET_CRC32))
                    return -1;
                  return 1024; /* sse4_2_crc32hi */

                case SImode:
                  if (!nonimmediate_operand (operands[2], SImode)
                      || !
#line 18879 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_SSE4_2 || TARGET_CRC32))
                    return -1;
                  return 1025; /* sse4_2_crc32si */

                default:
                  return -1;
                }

            case DImode:
              if (pattern45 (x3, DImode) != 0
                  || !
#line 18900 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && (TARGET_SSE4_2 || TARGET_CRC32)))
                return -1;
              return 1026; /* sse4_2_crc32di */

            default:
              return -1;
            }

        case 168:
          switch (pattern283 (x3))
            {
            case 0:
              if (!
#line 11003 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (EQ, V64QImode, operands)))
                return -1;
              return 3376; /* avx512bw_eqv64qi3_1 */

            case 1:
              if (!(
#line 11003 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (EQ, V32QImode, operands)) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 3380; /* avx512vl_eqv32qi3_1 */

            case 2:
              if (!
#line 11003 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (EQ, V32HImode, operands)))
                return -1;
              return 3382; /* avx512bw_eqv32hi3_1 */

            default:
              return -1;
            }

        case 169:
          switch (pattern283 (x3))
            {
            case 0:
              if (!
#line 11116 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
                return -1;
              return 3421; /* avx512bw_gtv64qi3 */

            case 1:
              if (!(
#line 11116 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 3425; /* avx512vl_gtv32qi3 */

            case 2:
              if (!
#line 11116 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
                return -1;
              return 3427; /* avx512bw_gtv32hi3 */

            default:
              return -1;
            }

        case 153:
          switch (pattern283 (x3))
            {
            case 0:
              if (!
#line 11688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
                return -1;
              return 3526; /* avx512bw_testmv64qi3 */

            case 1:
              if (!(
#line 11688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 3530; /* avx512vl_testmv32qi3 */

            case 2:
              if (!
#line 11688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
                return -1;
              return 3532; /* avx512bw_testmv32hi3 */

            default:
              return -1;
            }

        case 154:
          switch (pattern283 (x3))
            {
            case 0:
              if (!
#line 11710 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
                return -1;
              return 3550; /* avx512bw_testnmv64qi3 */

            case 1:
              if (!(
#line 11710 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 3554; /* avx512vl_testnmv32qi3 */

            case 2:
              if (!
#line 11710 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
                return -1;
              return 3556; /* avx512bw_testnmv32hi3 */

            default:
              return -1;
            }

        case 201:
          if (!const_int_operand (operands[2], SImode))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case SImode:
              if (!memory_operand (operands[0], SImode)
                  || GET_MODE (x3) != SImode
                  || !x86_64_nonmemory_operand (operands[1], SImode))
                return -1;
              return 4977; /* atomic_storesi_1 */

            case DImode:
              if (!memory_operand (operands[0], DImode)
                  || GET_MODE (x3) != DImode
                  || !x86_64_nonmemory_operand (operands[1], DImode)
                  || !
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                return -1;
              return 4978; /* atomic_storedi_1 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 4:
      if (pnum_clobbers == NULL)
        return -1;
      x6 = XVECEXP (x3, 0, 3);
      if (GET_CODE (x6) != REG
          || REGNO (x6) != 7
          || GET_MODE (x6) != SImode
          || !register_operand (operands[0], SImode)
          || GET_MODE (x3) != SImode)
        return -1;
      x4 = XVECEXP (x3, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x3, 0, 1);
      operands[2] = x5;
      x7 = XVECEXP (x3, 0, 2);
      operands[3] = x7;
      switch (XINT (x3, 1))
        {
        case 20:
          if (!register_operand (operands[1], SImode)
              || !tls_symbolic_operand (operands[2], VOIDmode)
              || !constant_call_address_operand (operands[3], VOIDmode)
              || !
#line 13745 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_GNU_TLS))
            return -1;
          *pnum_clobbers = 3;
          return 809; /* *tls_global_dynamic_32_gnu */

        case 22:
          if (!tls_symbolic_operand (operands[1], VOIDmode)
              || !register_operand (operands[2], SImode)
              || !register_operand (operands[3], SImode)
              || !
#line 14084 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_GNU2_TLS))
            return -1;
          *pnum_clobbers = 1;
          return 825; /* *tls_dynamic_gnu2_call_32 */

        default:
          return -1;
        }

    case 3:
      x4 = XVECEXP (x3, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x3, 0, 1);
      operands[2] = x5;
      switch (XINT (x3, 1))
        {
        case 21:
          if (pattern284 (x3, pnum_clobbers, SImode) != 0
              || !register_operand (operands[1], SImode)
              || !constant_call_address_operand (operands[2], VOIDmode)
              || !
#line 13843 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_GNU_TLS))
            return -1;
          *pnum_clobbers = 3;
          return 812; /* *tls_local_dynamic_base_32_gnu */

        case 22:
          if (pattern284 (x3, pnum_clobbers, DImode) != 0
              || !tls_symbolic_operand (operands[1], VOIDmode)
              || !register_operand (operands[2], DImode)
              || !
#line 14144 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && TARGET_GNU2_TLS))
            return -1;
          *pnum_clobbers = 1;
          return 828; /* *tls_dynamic_gnu2_call_64 */

        case 136:
          switch (pattern285 (x3))
            {
            case 0:
              if (!
#line 2702 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
                return -1;
              return 1713; /* avx512bw_cmpv64qi3 */

            case 1:
              if (!(
#line 2702 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 1717; /* avx512vl_cmpv32qi3 */

            case 2:
              if (!
#line 2702 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
                return -1;
              return 1719; /* avx512bw_cmpv32hi3 */

            default:
              return -1;
            }

        case 152:
          switch (pattern285 (x3))
            {
            case 0:
              if (!
#line 2716 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
                return -1;
              return 1725; /* avx512bw_ucmpv64qi3 */

            case 1:
              if (!(
#line 2716 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
                return -1;
              return 1729; /* avx512vl_ucmpv32qi3 */

            case 2:
              if (!
#line 2716 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
                return -1;
              return 1731; /* avx512bw_ucmpv32hi3 */

            default:
              return -1;
            }

        case 110:
          if (GET_MODE (x3) != DImode
              || !register_operand (operands[0], DImode)
              || !register_operand (operands[1], DImode)
              || !nonimmediate_operand (operands[2], DImode))
            return -1;
          x7 = XVECEXP (x3, 0, 2);
          operands[3] = x7;
          if (!const_0_to_255_mul_8_operand (operands[3], SImode)
              || !
#line 14563 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3))
            return -1;
          return 3805; /* ssse3_palignrdi */

        default:
          return -1;
        }

    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];
  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[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
    case MEM:
      if (pnum_clobbers != NULL)
        {
          switch (pattern138 (x3))
            {
            case 0:
              if ((
#line 5475 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, DImode, operands)) && 
#line 1043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT)))
                {
                  *pnum_clobbers = 1;
                  return 218; /* *adddi3_doubleword */
                }
              if ((
#line 5506 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, DImode, operands)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                {
                  *pnum_clobbers = 1;
                  return 221; /* *adddi_1 */
                }
              break;

            case 1:
              if (
#line 5506 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, SImode, operands)))
                {
                  *pnum_clobbers = 1;
                  return 220; /* *addsi_1 */
                }
              break;

            default:
              break;
            }
        }
      operands[1] = x4;
      if (!register_operand (operands[1], SImode)
          || pattern219 (x3, 22) != 0)
        return -1;
      x5 = XEXP (x3, 1);
      x6 = XEXP (x5, 0);
      x7 = XVECEXP (x6, 0, 0);
      operands[2] = x7;
      if (!tls_symbolic_operand (operands[2], VOIDmode)
          || !
#line 14068 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_GNU2_TLS))
        return -1;
      return 824; /* *tls_dynamic_gnu2_lea_32 */

    case PLUS:
      x8 = XEXP (x4, 0);
      switch (GET_CODE (x8))
        {
        case REG:
        case SUBREG:
          operands[1] = x8;
          if (!index_register_operand (operands[1], VOIDmode)
              || !register_operand (operands[0], VOIDmode))
            return -1;
          x9 = XEXP (x4, 1);
          operands[2] = x9;
          if (!register_operand (operands[2], VOIDmode))
            return -1;
          x5 = XEXP (x3, 1);
          operands[3] = x5;
          if (!immediate_operand (operands[3], VOIDmode)
              || !
#line 6265 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((GET_MODE (operands[0]) == QImode || GET_MODE (operands[0]) == HImode)
   && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
   && GET_MODE (operands[0]) == GET_MODE (operands[1])
   && GET_MODE (operands[0]) == GET_MODE (operands[2])
   && (GET_MODE (operands[0]) == GET_MODE (operands[3])
       || GET_MODE (operands[3]) == VOIDmode)))
            return -1;
          return 254; /* *lea_general_1 */

        case MULT:
          if (!register_operand (operands[0], VOIDmode))
            return -1;
          x10 = XEXP (x8, 0);
          operands[1] = x10;
          if (!index_register_operand (operands[1], VOIDmode))
            return -1;
          x11 = XEXP (x8, 1);
          operands[2] = x11;
          if (!const248_operand (operands[2], VOIDmode))
            return -1;
          x9 = XEXP (x4, 1);
          operands[3] = x9;
          if (!register_operand (operands[3], VOIDmode))
            return -1;
          x5 = XEXP (x3, 1);
          operands[4] = x5;
          if (!immediate_operand (operands[4], VOIDmode)
              || !
#line 6328 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((GET_MODE (operands[0]) == QImode || GET_MODE (operands[0]) == HImode)
   && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
   && GET_MODE (operands[0]) == GET_MODE (operands[1])
   && GET_MODE (operands[0]) == GET_MODE (operands[3])))
            return -1;
          return 256; /* *lea_general_3 */

        case GE:
        case GT:
        case LE:
        case LT:
        case GTU:
        case LTU:
        case UNEQ:
        case UNGE:
        case UNGT:
        case UNLE:
        case UNLT:
        case LTGT:
          if (pnum_clobbers == NULL)
            return -1;
          operands[4] = x8;
          x11 = XEXP (x8, 1);
          if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x10 = XEXP (x8, 0);
          operands[3] = x10;
          if (!flags_reg_operand (operands[3], VOIDmode))
            return -1;
          x9 = XEXP (x4, 1);
          operands[1] = x9;
          x5 = XEXP (x3, 1);
          operands[2] = x5;
          switch (GET_MODE (operands[0]))
            {
            case SImode:
              if (pattern575 (x3, SImode) != 0
                  || !
#line 6620 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, SImode, operands)))
                return -1;
              *pnum_clobbers = 1;
              return 287; /* addsi3_carry */

            case DImode:
              if (pattern575 (x3, DImode) != 0
                  || !(
#line 6620 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, DImode, operands)) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              *pnum_clobbers = 1;
              return 288; /* adddi3_carry */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case MULT:
      if (!register_operand (operands[0], VOIDmode))
        return -1;
      x8 = XEXP (x4, 0);
      operands[1] = x8;
      if (!index_register_operand (operands[1], VOIDmode))
        return -1;
      x9 = XEXP (x4, 1);
      operands[2] = x9;
      if (!const248_operand (operands[2], VOIDmode))
        return -1;
      x5 = XEXP (x3, 1);
      operands[3] = x5;
      if (!nonmemory_operand (operands[3], VOIDmode)
          || !
#line 6297 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((GET_MODE (operands[0]) == QImode || GET_MODE (operands[0]) == HImode)
   && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
   && GET_MODE (operands[0]) == GET_MODE (operands[1])
   && (GET_MODE (operands[0]) == GET_MODE (operands[3])
       || GET_MODE (operands[3]) == VOIDmode)))
        return -1;
      return 255; /* *lea_general_2 */

    case UNSPEC:
      if (pnum_clobbers == NULL)
        return -1;
      switch (XVECLEN (x4, 0))
        {
        case 3:
          x12 = XVECEXP (x4, 0, 2);
          if (GET_CODE (x12) != REG
              || REGNO (x12) != 7)
            return -1;
          x5 = XEXP (x3, 1);
          if (GET_CODE (x5) != CONST)
            return -1;
          x6 = XEXP (x5, 0);
          if (GET_CODE (x6) != UNSPEC
              || XVECLEN (x6, 0) != 1
              || XINT (x6, 1) != 6)
            return -1;
          x7 = XVECEXP (x6, 0, 0);
          if (!tls_symbolic_operand (x7, VOIDmode))
            return -1;
          switch (XINT (x4, 1))
            {
            case 21:
              if (GET_MODE (x4) != SImode
                  || !register_operand (operands[0], SImode)
                  || GET_MODE (x3) != SImode)
                return -1;
              x13 = XVECEXP (x4, 0, 0);
              operands[1] = x13;
              if (!register_operand (operands[1], SImode))
                return -1;
              x14 = XVECEXP (x4, 0, 1);
              operands[2] = x14;
              if (!constant_call_address_operand (operands[2], VOIDmode)
                  || GET_MODE (x12) != SImode
                  || GET_MODE (x5) != SImode
                  || GET_MODE (x6) != SImode)
                return -1;
              operands[3] = x7;
              *pnum_clobbers = 3;
              return 815; /* *tls_local_dynamic_32_once */

            case 22:
              if (GET_MODE (x4) != DImode
                  || !register_operand (operands[0], DImode)
                  || GET_MODE (x3) != DImode)
                return -1;
              x13 = XVECEXP (x4, 0, 0);
              operands[2] = x13;
              if (!tls_modbase_operand (operands[2], VOIDmode))
                return -1;
              x14 = XVECEXP (x4, 0, 1);
              operands[3] = x14;
              if (GET_MODE (x12) != DImode
                  || GET_MODE (x5) != DImode
                  || GET_MODE (x6) != DImode)
                return -1;
              operands[1] = x7;
              if (!
#line 14161 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && TARGET_GNU2_TLS))
                return -1;
              *pnum_clobbers = 1;
              return 829; /* *tls_dynamic_gnu2_combine_64 */

            default:
              return -1;
            }

        case 1:
          if (XINT (x4, 1) != 19)
            return -1;
          x13 = XVECEXP (x4, 0, 0);
          if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x5 = XEXP (x3, 1);
          operands[1] = x5;
          switch (GET_MODE (operands[0]))
            {
            case SImode:
              if (pattern458 (x3, SImode) != 0)
                return -1;
              if (
#line 13991 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_X32))
                {
                  *pnum_clobbers = 1;
                  return 820; /* *add_tp_x32 */
                }
              if (!(
#line 14018 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_X32) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              *pnum_clobbers = 1;
              return 822; /* *add_tp_si */

            case DImode:
              if (pattern458 (x3, DImode) != 0
                  || !(
#line 14018 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_X32) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              *pnum_clobbers = 1;
              return 823; /* *add_tp_di */

            default:
              return -1;
            }

        case 4:
          if (XINT (x4, 1) != 22
              || GET_MODE (x4) != SImode)
            return -1;
          x15 = XVECEXP (x4, 0, 3);
          if (GET_CODE (x15) != REG
              || REGNO (x15) != 7
              || GET_MODE (x15) != SImode
              || pattern219 (x3, 6) != 0)
            return -1;
          x13 = XVECEXP (x4, 0, 0);
          operands[3] = x13;
          if (!tls_modbase_operand (operands[3], VOIDmode))
            return -1;
          x14 = XVECEXP (x4, 0, 1);
          operands[4] = x14;
          x12 = XVECEXP (x4, 0, 2);
          operands[2] = x12;
          if (!register_operand (operands[2], SImode))
            return -1;
          x5 = XEXP (x3, 1);
          x6 = XEXP (x5, 0);
          x7 = XVECEXP (x6, 0, 0);
          operands[1] = x7;
          if (!tls_symbolic_operand (operands[1], VOIDmode)
              || !
#line 14102 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_GNU2_TLS))
            return -1;
          *pnum_clobbers = 1;
          return 826; /* *tls_dynamic_gnu2_combine_32 */

        default:
          return -1;
        }

    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];
  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 REG:
    case SUBREG:
    case MEM:
      operands[1] = x4;
      x5 = XEXP (x3, 1);
      operands[2] = x5;
      switch (GET_MODE (operands[0]))
        {
        case SImode:
          if (GET_MODE (x3) != SImode)
            return -1;
          if (mask_reg_operand (operands[0], SImode)
              && mask_reg_operand (operands[1], SImode)
              && mask_reg_operand (operands[2], SImode)
              && (
#line 8095 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F) && 
#line 8089 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512BW)))
            return 384; /* *kandsi */
          if (pnum_clobbers == NULL
              || !nonimmediate_operand (operands[0], SImode)
              || !nonimmediate_operand (operands[1], SImode)
              || !x86_64_general_operand (operands[2], SImode)
              || !
#line 8228 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (AND, SImode, operands)))
            return -1;
          *pnum_clobbers = 1;
          return 392; /* *andsi_1 */

        case DImode:
          if (GET_MODE (x3) != DImode)
            return -1;
          if (mask_reg_operand (operands[0], DImode)
              && mask_reg_operand (operands[1], DImode)
              && mask_reg_operand (operands[2], DImode)
              && (
#line 8095 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F) && 
#line 8089 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512BW)))
            return 387; /* *kanddi */
          if (pnum_clobbers == NULL
              || !nonimmediate_operand (operands[0], DImode)
              || !nonimmediate_operand (operands[1], DImode)
              || !x86_64_szext_general_operand (operands[2], DImode))
            return -1;
          if (
#line 8162 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_binary_operator_ok (AND, DImode, operands)))
            {
              *pnum_clobbers = 1;
              return 390; /* *anddi_1 */
            }
          if (!
#line 8197 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_STV && TARGET_SSE2
   && ix86_binary_operator_ok (AND, DImode, operands)))
            return -1;
          *pnum_clobbers = 1;
          return 391; /* *anddi3_doubleword */

        default:
          return -1;
        }

    case NOT:
      if (pnum_clobbers == NULL)
        return -1;
      x6 = XEXP (x4, 0);
      operands[1] = x6;
      x5 = XEXP (x3, 1);
      operands[2] = x5;
      switch (GET_MODE (operands[0]))
        {
        case DImode:
          if (pattern264 (x3, DImode) != 0)
            return -1;
          if (
#line 8778 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI && !TARGET_64BIT && TARGET_STV && TARGET_SSE))
            {
              *pnum_clobbers = 1;
              return 416; /* *andndi3_doubleword */
            }
          if (!(
#line 13131 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          *pnum_clobbers = 1;
          return 747; /* *bmi_andn_di */

        case SImode:
          if (pattern264 (x3, SImode) != 0
              || !
#line 13131 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI))
            return -1;
          *pnum_clobbers = 1;
          return 746; /* *bmi_andn_si */

        default:
          return -1;
        }

    case NEG:
      if (pnum_clobbers == NULL)
        return -1;
      x6 = XEXP (x4, 0);
      operands[1] = x6;
      x5 = XEXP (x3, 1);
      if (!rtx_equal_p (x5, operands[1]))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case SImode:
          if (pattern339 (x3, SImode) != 0
              || !
#line 13184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI))
            return -1;
          *pnum_clobbers = 1;
          return 754; /* *bmi_blsi_si */

        case DImode:
          if (pattern339 (x3, DImode) != 0
              || !(
#line 13184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          *pnum_clobbers = 1;
          return 755; /* *bmi_blsi_di */

        default:
          return -1;
        }

    case PLUS:
      if (pnum_clobbers == NULL)
        return -1;
      x7 = XEXP (x4, 1);
      if (GET_CODE (x7) != CONST_INT)
        return -1;
      x6 = XEXP (x4, 0);
      operands[1] = x6;
      switch (XWINT (x7, 0))
        {
        case -1LL:
          switch (pattern341 (x3))
            {
            case 0:
              if (!
#line 13212 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI))
                return -1;
              *pnum_clobbers = 1;
              return 758; /* *bmi_blsr_si */

            case 1:
              if (!(
#line 13212 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              *pnum_clobbers = 1;
              return 759; /* *bmi_blsr_di */

            case 2:
              if (!
#line 13438 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM))
                return -1;
              *pnum_clobbers = 1;
              return 788; /* *tbm_tzmsk_si */

            case 3:
              if (!(
#line 13438 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              *pnum_clobbers = 1;
              return 789; /* *tbm_tzmsk_di */

            default:
              return -1;
            }

        case 1LL:
          switch (pattern341 (x3))
            {
            case 0:
              if (!
#line 13329 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM))
                return -1;
              *pnum_clobbers = 1;
              return 772; /* *tbm_blcfill_si */

            case 1:
              if (!(
#line 13329 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              *pnum_clobbers = 1;
              return 773; /* *tbm_blcfill_di */

            case 2:
              if (!
#line 13357 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM))
                return -1;
              *pnum_clobbers = 1;
              return 776; /* *tbm_blcic_si */

            case 3:
              if (!(
#line 13357 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              *pnum_clobbers = 1;
              return 777; /* *tbm_blcic_di */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case UNSPEC:
      switch (XVECLEN (x4, 0))
        {
        case 3:
          x8 = XVECEXP (x4, 0, 0);
          operands[1] = x8;
          x9 = XVECEXP (x4, 0, 1);
          operands[2] = x9;
          x10 = XVECEXP (x4, 0, 2);
          operands[3] = x10;
          if (!const_0_to_7_operand (operands[3], SImode))
            return -1;
          x5 = XEXP (x3, 1);
          operands[4] = x5;
          switch (XINT (x4, 1))
            {
            case 136:
              switch (pattern508 (x3))
                {
                case 0:
                  if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 2702 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
                    return -1;
                  return 1714; /* avx512bw_cmpv64qi3_mask */

                case 1:
                  if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2702 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 1718; /* avx512vl_cmpv32qi3_mask */

                case 2:
                  if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 2702 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
                    return -1;
                  return 1720; /* avx512bw_cmpv32hi3_mask */

                default:
                  return -1;
                }

            case 152:
              switch (pattern508 (x3))
                {
                case 0:
                  if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 2716 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
                    return -1;
                  return 1726; /* avx512bw_ucmpv64qi3_mask */

                case 1:
                  if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2716 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 1730; /* avx512vl_ucmpv32qi3_mask */

                case 2:
                  if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 2716 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
                    return -1;
                  return 1732; /* avx512bw_ucmpv32hi3_mask */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case 2:
          x8 = XVECEXP (x4, 0, 0);
          operands[1] = x8;
          x9 = XVECEXP (x4, 0, 1);
          operands[2] = x9;
          x5 = XEXP (x3, 1);
          operands[3] = x5;
          switch (XINT (x4, 1))
            {
            case 168:
              switch (pattern392 (x3))
                {
                case 0:
                  if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 11003 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (EQ, V64QImode, operands))))
                    return -1;
                  return 3377; /* avx512bw_eqv64qi3_mask_1 */

                case 1:
                  if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11003 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (EQ, V32QImode, operands)) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 3381; /* avx512vl_eqv32qi3_mask_1 */

                case 2:
                  if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 11003 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (EQ, V32HImode, operands))))
                    return -1;
                  return 3383; /* avx512bw_eqv32hi3_mask_1 */

                default:
                  return -1;
                }

            case 169:
              switch (pattern392 (x3))
                {
                case 0:
                  if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 11116 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
                    return -1;
                  return 3422; /* avx512bw_gtv64qi3_mask */

                case 1:
                  if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11116 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 3426; /* avx512vl_gtv32qi3_mask */

                case 2:
                  if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 11116 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
                    return -1;
                  return 3428; /* avx512bw_gtv32hi3_mask */

                default:
                  return -1;
                }

            case 153:
              switch (pattern392 (x3))
                {
                case 0:
                  if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 11688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
                    return -1;
                  return 3527; /* avx512bw_testmv64qi3_mask */

                case 1:
                  if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 3531; /* avx512vl_testmv32qi3_mask */

                case 2:
                  if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 11688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
                    return -1;
                  return 3533; /* avx512bw_testmv32hi3_mask */

                default:
                  return -1;
                }

            case 154:
              switch (pattern392 (x3))
                {
                case 0:
                  if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 11710 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
                    return -1;
                  return 3551; /* avx512bw_testnmv64qi3_mask */

                case 1:
                  if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 11710 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 3555; /* avx512vl_testnmv32qi3_mask */

                case 2:
                  if (!(
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 11710 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
                    return -1;
                  return 3557; /* avx512bw_testnmv32hi3_mask */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    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];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  switch (pattern2 (x1))
    {
    case 0:
      switch (GET_MODE (operands[0]))
        {
        case SFmode:
          if (!register_operand (operands[0], SFmode))
            return -1;
          x2 = XEXP (x1, 1);
          if (GET_MODE (x2) != SFmode
              || !register_operand (operands[1], SFmode)
              || !
#line 9470 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387
   && (reload_completed
       || !(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH))))
            return -1;
          return 487; /* *abssf2_1 */

        case DFmode:
          if (!register_operand (operands[0], DFmode))
            return -1;
          x2 = XEXP (x1, 1);
          if (GET_MODE (x2) != DFmode
              || !register_operand (operands[1], DFmode)
              || !
#line 9470 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387
   && (reload_completed
       || !(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH))))
            return -1;
          return 489; /* *absdf2_1 */

        case XFmode:
          if (!register_operand (operands[0], XFmode))
            return -1;
          x2 = XEXP (x1, 1);
          if (GET_MODE (x2) != XFmode
              || !register_operand (operands[1], XFmode)
              || !
#line 9470 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387
   && (reload_completed
       || !(SSE_FLOAT_MODE_P (XFmode) && TARGET_SSE_MATH))))
            return -1;
          return 491; /* *absxf2_1 */

        case V64QImode:
          if (!register_operand (operands[0], V64QImode))
            return -1;
          x2 = XEXP (x1, 1);
          if (GET_MODE (x2) != V64QImode
              || !vector_operand (operands[1], V64QImode)
              || !(
#line 14587 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3) && 
#line 14578 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return -1;
          return 3806; /* *absv64qi2 */

        case V32QImode:
          if (!register_operand (operands[0], V32QImode))
            return -1;
          x2 = XEXP (x1, 1);
          if (GET_MODE (x2) != V32QImode
              || !vector_operand (operands[1], V32QImode)
              || !(
#line 14587 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3) && 
#line 14578 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
            return -1;
          return 3807; /* *absv32qi2 */

        case V16QImode:
          if (!register_operand (operands[0], V16QImode))
            return -1;
          x2 = XEXP (x1, 1);
          if (GET_MODE (x2) != V16QImode
              || !vector_operand (operands[1], V16QImode)
              || !
#line 14587 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3))
            return -1;
          return 3808; /* *absv16qi2 */

        case V32HImode:
          if (!register_operand (operands[0], V32HImode))
            return -1;
          x2 = XEXP (x1, 1);
          if (GET_MODE (x2) != V32HImode
              || !vector_operand (operands[1], V32HImode)
              || !(
#line 14587 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3) && 
#line 14579 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return -1;
          return 3809; /* *absv32hi2 */

        case V16HImode:
          if (!register_operand (operands[0], V16HImode))
            return -1;
          x2 = XEXP (x1, 1);
          if (GET_MODE (x2) != V16HImode
              || !vector_operand (operands[1], V16HImode)
              || !(
#line 14587 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3) && 
#line 14579 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
            return -1;
          return 3810; /* *absv16hi2 */

        case V8HImode:
          if (!register_operand (operands[0], V8HImode))
            return -1;
          x2 = XEXP (x1, 1);
          if (GET_MODE (x2) != V8HImode
              || !vector_operand (operands[1], V8HImode)
              || !
#line 14587 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3))
            return -1;
          return 3811; /* *absv8hi2 */

        case V16SImode:
          if (!register_operand (operands[0], V16SImode))
            return -1;
          x2 = XEXP (x1, 1);
          if (GET_MODE (x2) != V16SImode
              || !vector_operand (operands[1], V16SImode)
              || !(
#line 14587 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3) && 
#line 14580 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 3812; /* *absv16si2 */

        case V8SImode:
          if (!register_operand (operands[0], V8SImode))
            return -1;
          x2 = XEXP (x1, 1);
          if (GET_MODE (x2) != V8SImode
              || !vector_operand (operands[1], V8SImode)
              || !(
#line 14587 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3) && 
#line 14580 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
            return -1;
          return 3813; /* *absv8si2 */

        case V4SImode:
          if (!register_operand (operands[0], V4SImode))
            return -1;
          x2 = XEXP (x1, 1);
          if (GET_MODE (x2) != V4SImode
              || !vector_operand (operands[1], V4SImode)
              || !
#line 14587 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3))
            return -1;
          return 3814; /* *absv4si2 */

        case V8DImode:
          if (!register_operand (operands[0], V8DImode))
            return -1;
          x2 = XEXP (x1, 1);
          if (GET_MODE (x2) != V8DImode
              || !vector_operand (operands[1], V8DImode)
              || !(
#line 14587 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3) && 
#line 14581 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 3815; /* *absv8di2 */

        case V4DImode:
          if (!register_operand (operands[0], V4DImode))
            return -1;
          x2 = XEXP (x1, 1);
          if (GET_MODE (x2) != V4DImode
              || !vector_operand (operands[1], V4DImode)
              || !(
#line 14587 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3) && 
#line 14581 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3816; /* *absv4di2 */

        case V2DImode:
          if (!register_operand (operands[0], V2DImode))
            return -1;
          x2 = XEXP (x1, 1);
          if (GET_MODE (x2) != V2DImode
              || !vector_operand (operands[1], V2DImode)
              || !(
#line 14587 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3) && 
#line 14581 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
            return -1;
          return 3817; /* *absv2di2 */

        case V8QImode:
          if (!register_operand (operands[0], V8QImode))
            return -1;
          x2 = XEXP (x1, 1);
          if (GET_MODE (x2) != V8QImode
              || !nonimmediate_operand (operands[1], V8QImode)
              || !
#line 14638 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3))
            return -1;
          return 3830; /* absv8qi2 */

        case V4HImode:
          if (!register_operand (operands[0], V4HImode))
            return -1;
          x2 = XEXP (x1, 1);
          if (GET_MODE (x2) != V4HImode
              || !nonimmediate_operand (operands[1], V4HImode)
              || !
#line 14638 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3))
            return -1;
          return 3831; /* absv4hi2 */

        case V2SImode:
          if (!register_operand (operands[0], V2SImode))
            return -1;
          x2 = XEXP (x1, 1);
          if (GET_MODE (x2) != V2SImode
              || !nonimmediate_operand (operands[1], V2SImode)
              || !
#line 14638 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSSE3))
            return -1;
          return 3832; /* absv2si2 */

        default:
          return -1;
        }

    case 1:
      if (!
#line 9481 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && (!TARGET_SSE_MATH || TARGET_MIX_SSE_I387)))
        return -1;
      return 493; /* *absextendsfdf2 */

    case 2:
      if (!
#line 9490 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
        return -1;
      return 495; /* *absextendsfxf2 */

    case 3:
      if (!
#line 9499 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
        return -1;
      return 497; /* *absextenddfxf2 */

    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, x6, x7, x8, x9;
  rtx x10, x11, x12;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case ASHIFT:
      x5 = XEXP (x4, 0);
      switch (GET_CODE (x5))
        {
        case REG:
        case SUBREG:
        case MEM:
          x6 = XEXP (x4, 1);
          operands[2] = x6;
          x7 = XEXP (x3, 1);
          switch (GET_CODE (x7))
            {
            case CONST_INT:
              operands[3] = x7;
              if (!const_int_operand (operands[3], VOIDmode)
                  || !register_operand (operands[0], VOIDmode))
                return -1;
              operands[1] = x5;
              if (!index_register_operand (operands[1], VOIDmode)
                  || !const_int_operand (operands[2], VOIDmode)
                  || !
#line 6363 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((((GET_MODE (operands[0]) == QImode || GET_MODE (operands[0]) == HImode)
      && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
    || GET_MODE (operands[0]) == SImode
    || (TARGET_64BIT && GET_MODE (operands[0]) == DImode))
   && GET_MODE (operands[0]) == GET_MODE (operands[1])
   && ((unsigned HOST_WIDE_INT) INTVAL (operands[2])) - 1 < 3
   && ((unsigned HOST_WIDE_INT) INTVAL (operands[3])
       < (HOST_WIDE_INT_1U << INTVAL (operands[2])))))
                return -1;
              return 257; /* *lea_general_4 */

            case LSHIFTRT:
              if (pnum_clobbers == NULL)
                return -1;
              x8 = XEXP (x7, 1);
              if (GET_CODE (x8) != MINUS
                  || GET_MODE (x8) != QImode)
                return -1;
              x9 = XEXP (x8, 0);
              if (GET_CODE (x9) != CONST_INT)
                return -1;
              switch (pattern461 (x3))
                {
                case 0:
                  if (!
#line 9760 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                    return -1;
                  *pnum_clobbers = 1;
                  return 525; /* x86_64_shld */

                case 1:
                  *pnum_clobbers = 1;
                  return 526; /* x86_shld */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case ZERO_EXTEND:
          x6 = XEXP (x4, 1);
          if (GET_CODE (x6) != CONST_INT)
            return -1;
          x7 = XEXP (x3, 1);
          if (GET_CODE (x7) != ZERO_EXTEND)
            return -1;
          x10 = XEXP (x5, 0);
          operands[1] = x10;
          x11 = XEXP (x7, 0);
          operands[2] = x11;
          switch (XWINT (x6, 0))
            {
            case 16LL:
              if (pattern459 (x3, HImode, SImode) != 0
                  || !
#line 8964 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512BW))
                return -1;
              return 442; /* kunpcksi */

            case 32LL:
              if (pattern459 (x3, SImode, DImode) != 0
                  || !
#line 8975 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512BW))
                return -1;
              return 443; /* kunpckdi */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case REG:
    case SUBREG:
    case MEM:
      operands[1] = x4;
      x7 = XEXP (x3, 1);
      operands[2] = x7;
      switch (GET_MODE (operands[0]))
        {
        case SImode:
          if (GET_MODE (x3) != SImode)
            return -1;
          if (mask_reg_operand (operands[0], SImode)
              && mask_reg_operand (operands[1], SImode)
              && mask_reg_operand (operands[2], SImode)
              && (
#line 8095 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F) && 
#line 8089 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512BW)))
            return 385; /* *korsi */
          if (pnum_clobbers == NULL
              || !nonimmediate_operand (operands[0], SImode)
              || !nonimmediate_operand (operands[1], SImode)
              || !x86_64_general_operand (operands[2], SImode)
              || !
#line 8722 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (IOR, SImode, operands)))
            return -1;
          *pnum_clobbers = 1;
          return 410; /* *iorsi_1 */

        case DImode:
          if (GET_MODE (x3) != DImode)
            return -1;
          if (mask_reg_operand (operands[0], DImode)
              && mask_reg_operand (operands[1], DImode)
              && mask_reg_operand (operands[2], DImode)
              && (
#line 8095 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F) && 
#line 8089 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512BW)))
            return 388; /* *kordi */
          if (pnum_clobbers == NULL
              || !nonimmediate_operand (operands[0], DImode)
              || !nonimmediate_operand (operands[1], DImode))
            return -1;
          if (x86_64_general_operand (operands[2], DImode)
              && (
#line 8722 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (IOR, DImode, operands)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            {
              *pnum_clobbers = 1;
              return 412; /* *iordi_1 */
            }
          if (!x86_64_szext_general_operand (operands[2], DImode)
              || !
#line 8736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_STV && TARGET_SSE2
   && ix86_binary_operator_ok (IOR, DImode, operands)))
            return -1;
          *pnum_clobbers = 1;
          return 414; /* *iordi3_doubleword */

        default:
          return -1;
        }

    case ZERO_EXTEND:
      if (pattern92 (x3, pnum_clobbers) != 0
          || !
#line 8836 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_binary_operator_ok (IOR, SImode, operands)))
        return -1;
      *pnum_clobbers = 1;
      return 423; /* *iorsi_1_zext_imm */

    case LSHIFTRT:
      if (pnum_clobbers == NULL)
        return -1;
      x7 = XEXP (x3, 1);
      if (GET_CODE (x7) != ASHIFT)
        return -1;
      x8 = XEXP (x7, 1);
      if (GET_CODE (x8) != MINUS
          || GET_MODE (x8) != QImode)
        return -1;
      x9 = XEXP (x8, 0);
      if (GET_CODE (x9) != CONST_INT)
        return -1;
      x6 = XEXP (x4, 1);
      operands[2] = x6;
      switch (pattern461 (x3))
        {
        case 0:
          if (!
#line 10387 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
            return -1;
          *pnum_clobbers = 1;
          return 555; /* x86_64_shrd */

        case 1:
          *pnum_clobbers = 1;
          return 556; /* x86_shrd */

        default:
          return -1;
        }

    case NOT:
      if (pnum_clobbers == NULL)
        return -1;
      x5 = XEXP (x4, 0);
      if (GET_CODE (x5) != PLUS)
        return -1;
      x12 = XEXP (x5, 1);
      if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x10 = XEXP (x5, 0);
      operands[1] = x10;
      x7 = XEXP (x3, 1);
      if (!rtx_equal_p (x7, operands[1]))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case SImode:
          if (pattern462 (x3, SImode) != 0
              || !
#line 13343 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM))
            return -1;
          *pnum_clobbers = 1;
          return 774; /* *tbm_blci_si */

        case DImode:
          if (pattern462 (x3, DImode) != 0
              || !(
#line 13343 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          *pnum_clobbers = 1;
          return 775; /* *tbm_blci_di */

        default:
          return -1;
        }

    case PLUS:
      if (pnum_clobbers == NULL)
        return -1;
      x6 = XEXP (x4, 1);
      if (GET_CODE (x6) != CONST_INT)
        return -1;
      x5 = XEXP (x4, 0);
      operands[1] = x5;
      switch (XWINT (x6, 0))
        {
        case 1LL:
          switch (pattern341 (x3))
            {
            case 0:
              if (!
#line 13383 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM))
                return -1;
              *pnum_clobbers = 1;
              return 780; /* *tbm_blcs_si */

            case 1:
              if (!(
#line 13383 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              *pnum_clobbers = 1;
              return 781; /* *tbm_blcs_di */

            case 2:
              if (!
#line 13424 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM))
                return -1;
              *pnum_clobbers = 1;
              return 786; /* *tbm_t1mskc_si */

            case 3:
              if (!(
#line 13424 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              *pnum_clobbers = 1;
              return 787; /* *tbm_t1mskc_di */

            default:
              return -1;
            }

        case -1LL:
          switch (pattern341 (x3))
            {
            case 0:
              if (!
#line 13396 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM))
                return -1;
              *pnum_clobbers = 1;
              return 782; /* *tbm_blsfill_si */

            case 1:
              if (!(
#line 13396 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              *pnum_clobbers = 1;
              return 783; /* *tbm_blsfill_di */

            case 2:
              if (!
#line 13410 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM))
                return -1;
              *pnum_clobbers = 1;
              return 784; /* *tbm_blsic_si */

            case 3:
              if (!(
#line 13410 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              *pnum_clobbers = 1;
              return 785; /* *tbm_blsic_di */

            default:
              return -1;
            }

        default:
          return -1;
        }

    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];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  switch (XVECLEN (x3, 0))
    {
    case 1:
      switch (XINT (x3, 1))
        {
        case 1:
          if (pnum_clobbers == NULL)
            return -1;
          x4 = XVECEXP (x3, 0, 0);
          operands[1] = x4;
          switch (GET_MODE (operands[0]))
            {
            case SImode:
              if (!register_operand (operands[0], SImode)
                  || GET_MODE (x3) != SImode
                  || !register_operand (operands[1], SImode)
                  || !(
#line 17683 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_target_stack_probe ()) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              *pnum_clobbers = 1;
              return 1005; /* allocate_stack_worker_probe_si */

            case DImode:
              if (!register_operand (operands[0], DImode)
                  || GET_MODE (x3) != DImode
                  || !register_operand (operands[1], DImode)
                  || !(
#line 17683 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_target_stack_probe ()) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              *pnum_clobbers = 1;
              return 1006; /* allocate_stack_worker_probe_di */

            default:
              return -1;
            }

        case 10:
          if (GET_MODE (x3) != DImode
              || !register_operand (operands[0], DImode))
            return -1;
          x4 = XVECEXP (x3, 0, 0);
          operands[1] = x4;
          if (!register_operand (operands[1], SImode)
              || !
#line 18911 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT))
            return -1;
          return 1027; /* rdpmc */

        case 8:
          if (GET_MODE (x3) != DImode)
            return -1;
          x4 = XVECEXP (x3, 0, 0);
          if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
              || !register_operand (operands[0], DImode)
              || !
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT))
            return -1;
          return 1029; /* rdtsc */

        case 12:
          x4 = XVECEXP (x3, 0, 0);
          if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          switch (pattern26 (x3))
            {
            case 0:
              if (!(
#line 19228 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LWP) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              return 1061; /* lwp_slwpcbsi */

            case 1:
              if (!(
#line 19228 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LWP) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              return 1062; /* lwp_slwpcbdi */

            default:
              return -1;
            }

        case 15:
          x4 = XVECEXP (x3, 0, 0);
          if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          switch (pattern26 (x3))
            {
            case 0:
              if (!
#line 19295 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && TARGET_FSGSBASE))
                return -1;
              return 1067; /* rdfsbasesi */

            case 1:
              if (!(
#line 19295 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && TARGET_FSGSBASE) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 1069; /* rdfsbasedi */

            default:
              return -1;
            }

        case 16:
          x4 = XVECEXP (x3, 0, 0);
          if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          switch (pattern26 (x3))
            {
            case 0:
              if (!
#line 19295 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && TARGET_FSGSBASE))
                return -1;
              return 1068; /* rdgsbasesi */

            case 1:
              if (!(
#line 19295 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && TARGET_FSGSBASE) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 1070; /* rdgsbasedi */

            default:
              return -1;
            }

        case 55:
          if (GET_MODE (x3) != SImode)
            return -1;
          x4 = XVECEXP (x3, 0, 0);
          if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
              || !memory_operand (operands[0], SImode)
              || !
#line 13872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
            return -1;
          return 3742; /* sse_stmxcsr */

        default:
          return -1;
        }

    case 2:
      if (pnum_clobbers == NULL)
        return -1;
      x5 = XVECEXP (x3, 0, 1);
      operands[2] = x5;
      switch (XINT (x3, 1))
        {
        case 2:
          x4 = XVECEXP (x3, 0, 0);
          operands[1] = x4;
          switch (GET_MODE (operands[0]))
            {
            case SImode:
              if (pattern393 (x3, SImode) != 0
                  || !
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))
                return -1;
              *pnum_clobbers = 1;
              return 1009; /* probe_stack_rangesi */

            case DImode:
              if (pattern393 (x3, DImode) != 0
                  || !
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))
                return -1;
              *pnum_clobbers = 1;
              return 1010; /* probe_stack_rangedi */

            default:
              return -1;
            }

        case 63:
          if (!const_int_operand (operands[2], SImode))
            return -1;
          x4 = XVECEXP (x3, 0, 0);
          switch (GET_CODE (x4))
            {
            case PLUS:
              switch (pattern394 (x3))
                {
                case 0:
                  *pnum_clobbers = 1;
                  return 5002; /* atomic_addsi */

                case 1:
                  if (!
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                    return -1;
                  *pnum_clobbers = 1;
                  return 5003; /* atomic_adddi */

                default:
                  return -1;
                }

            case MINUS:
              switch (pattern394 (x3))
                {
                case 0:
                  *pnum_clobbers = 1;
                  return 5006; /* atomic_subsi */

                case 1:
                  if (!
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                    return -1;
                  *pnum_clobbers = 1;
                  return 5007; /* atomic_subdi */

                default:
                  return -1;
                }

            case AND:
              switch (pattern394 (x3))
                {
                case 0:
                  *pnum_clobbers = 1;
                  return 5014; /* atomic_andsi */

                case 1:
                  if (!
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                    return -1;
                  *pnum_clobbers = 1;
                  return 5017; /* atomic_anddi */

                default:
                  return -1;
                }

            case IOR:
              switch (pattern394 (x3))
                {
                case 0:
                  *pnum_clobbers = 1;
                  return 5015; /* atomic_orsi */

                case 1:
                  if (!
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                    return -1;
                  *pnum_clobbers = 1;
                  return 5018; /* atomic_ordi */

                default:
                  return -1;
                }

            case XOR:
              switch (pattern394 (x3))
                {
                case 0:
                  *pnum_clobbers = 1;
                  return 5016; /* atomic_xorsi */

                case 1:
                  if (!
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                    return -1;
                  *pnum_clobbers = 1;
                  return 5019; /* atomic_xordi */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  switch (GET_CODE (x3))
    {
    case REG:
    case SUBREG:
    case MEM:
      switch (pattern21 (x1, pnum_clobbers))
        {
        case 0:
          if (mask_reg_operand (operands[0], QImode)
              && mask_reg_operand (operands[1], QImode)
              && mask_reg_operand (operands[2], QImode)
              && 
#line 8095 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F))
            return 380; /* *kxorqi */
          if (pnum_clobbers == NULL
              || !nonimmediate_operand (operands[0], QImode)
              || !nonimmediate_operand (operands[1], QImode)
              || !general_operand (operands[2], QImode)
              || !
#line 8809 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (XOR, QImode, operands)))
            return -1;
          *pnum_clobbers = 1;
          return 420; /* *xorqi_1 */

        case 1:
          if (mask_reg_operand (operands[0], HImode)
              && mask_reg_operand (operands[1], HImode)
              && mask_reg_operand (operands[2], HImode)
              && 
#line 8095 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F))
            return 383; /* *kxorhi */
          if (pnum_clobbers == NULL
              || !nonimmediate_operand (operands[0], HImode)
              || !nonimmediate_operand (operands[1], HImode)
              || !general_operand (operands[2], HImode)
              || !
#line 8795 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (XOR, HImode, operands)))
            return -1;
          *pnum_clobbers = 1;
          return 418; /* *xorhi_1 */

        case 2:
          if (!
#line 1021 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX && ix86_binary_operator_ok (XOR, V8QImode, operands)))
            return -1;
          return 1189; /* *mmx_xorv8qi3 */

        case 3:
          if (!
#line 1021 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX && ix86_binary_operator_ok (XOR, V4HImode, operands)))
            return -1;
          return 1192; /* *mmx_xorv4hi3 */

        case 4:
          if (!
#line 1021 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX && ix86_binary_operator_ok (XOR, V2SImode, operands)))
            return -1;
          return 1195; /* *mmx_xorv2si3 */

        case 5:
          if (!(
#line 3216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1
   && ix86_binary_operator_ok (XOR, V8SFmode, operands)) && 
#line 221 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 1787; /* *xorv8sf3 */

        case 6:
          if (!
#line 3216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1
   && ix86_binary_operator_ok (XOR, V4SFmode, operands)))
            return -1;
          return 1793; /* *xorv4sf3 */

        case 7:
          if (!(
#line 3216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1
   && ix86_binary_operator_ok (XOR, V4DFmode, operands)) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 1799; /* *xorv4df3 */

        case 8:
          if (!(
#line 3216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1
   && ix86_binary_operator_ok (XOR, V2DFmode, operands)) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return -1;
          return 1805; /* *xorv2df3 */

        case 9:
          if (!
#line 3274 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (XOR, V16SFmode, operands)))
            return -1;
          return 1811; /* *xorv16sf3 */

        case 10:
          if (!
#line 3274 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (XOR, V8DFmode, operands)))
            return -1;
          return 1817; /* *xorv8df3 */

        case 11:
          if (!
#line 3416 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(SSE_FLOAT_MODE_P (SFmode)))
            return -1;
          return 1824; /* *xorsf3 */

        case 12:
          if (!
#line 3416 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(SSE_FLOAT_MODE_P (DFmode)))
            return -1;
          return 1827; /* *xordf3 */

        case 13:
          if (!
#line 3465 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && ix86_binary_operator_ok (XOR, TFmode, operands)))
            return -1;
          return 1830; /* *xortf3 */

        case 14:
          if (!(
#line 11493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1
   && ix86_binary_operator_ok (XOR, V16SImode, operands)) && 
#line 424 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 3458; /* *xorv16si3 */

        case 15:
          if (!(
#line 11493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1
   && ix86_binary_operator_ok (XOR, V8SImode, operands)) && 
#line 424 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 3464; /* *xorv8si3 */

        case 16:
          if (!
#line 11493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1
   && ix86_binary_operator_ok (XOR, V4SImode, operands)))
            return -1;
          return 3470; /* *xorv4si3 */

        case 17:
          if (!(
#line 11493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1
   && ix86_binary_operator_ok (XOR, V8DImode, operands)) && 
#line 425 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 3476; /* *xorv8di3 */

        case 18:
          if (!(
#line 11493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1
   && ix86_binary_operator_ok (XOR, V4DImode, operands)) && 
#line 425 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 3482; /* *xorv4di3 */

        case 19:
          if (!
#line 11493 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1
   && ix86_binary_operator_ok (XOR, V2DImode, operands)))
            return -1;
          return 3488; /* *xorv2di3 */

        case 20:
          if (!(
#line 11588 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (XOR, V64QImode, operands)) && 
#line 428 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 3494; /* *xorv64qi3 */

        case 21:
          if (!(
#line 11588 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (XOR, V32QImode, operands)) && 
#line 428 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 3500; /* *xorv32qi3 */

        case 22:
          if (!
#line 11588 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (XOR, V16QImode, operands)))
            return -1;
          return 3506; /* *xorv16qi3 */

        case 23:
          if (!(
#line 11588 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (XOR, V32HImode, operands)) && 
#line 429 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
            return -1;
          return 3512; /* *xorv32hi3 */

        case 24:
          if (!(
#line 11588 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (XOR, V16HImode, operands)) && 
#line 429 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return -1;
          return 3518; /* *xorv16hi3 */

        case 25:
          if (!
#line 11588 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (XOR, V8HImode, operands)))
            return -1;
          return 3524; /* *xorv8hi3 */

        case 26:
          if (!
#line 8846 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
            return -1;
          *pnum_clobbers = 1;
          return 426; /* *xorqi_1_slp */

        default:
          return -1;
        }

    case ZERO_EXTRACT:
      switch (pattern23 (x1, pnum_clobbers))
        {
        case 0:
          if (!
#line 9046 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
            return -1;
          *pnum_clobbers = 1;
          return 459; /* *xorqi_ext_0 */

        case 1:
          if (!
#line 9065 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
            return -1;
          *pnum_clobbers = 1;
          return 461; /* *xorqi_ext_1 */

        case 2:
          if (!
#line 9084 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
            return -1;
          *pnum_clobbers = 1;
          return 463; /* *xorqi_ext_2 */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_180 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern5 (x1, pnum_clobbers))
    {
    case 0:
      if (!
#line 1044 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
        return -1;
      *pnum_clobbers = 2;
      return 603; /* ix86_rotrti3_doubleword */

    case 1:
      if (!
#line 11006 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ROTATERT, QImode, operands)))
        return -1;
      *pnum_clobbers = 1;
      return 614; /* *rotrqi3_1 */

    case 2:
      if (!
#line 11006 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ROTATERT, HImode, operands)))
        return -1;
      *pnum_clobbers = 1;
      return 616; /* *rotrhi3_1 */

    case 3:
      if (register_operand (operands[1], V16SImode)
          && nonimmediate_operand (operands[2], V16SImode)
          && 
#line 10685 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return 3198; /* avx512f_rorvv16si */
      if (!nonimmediate_operand (operands[1], V16SImode)
          || !const_0_to_255_operand (operands[2], SImode)
          || !
#line 10695 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 3222; /* avx512f_rorv16si */

    case 4:
      if (register_operand (operands[1], V8SImode)
          && nonimmediate_operand (operands[2], V8SImode)
          && (
#line 10685 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return 3202; /* avx512vl_rorvv8si */
      if (!nonimmediate_operand (operands[1], V8SImode)
          || !const_0_to_255_operand (operands[2], SImode)
          || !(
#line 10695 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 3226; /* avx512vl_rorv8si */

    case 5:
      if (register_operand (operands[1], V4SImode)
          && nonimmediate_operand (operands[2], V4SImode)
          && (
#line 10685 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return 3206; /* avx512vl_rorvv4si */
      if (!nonimmediate_operand (operands[1], V4SImode))
        return -1;
      if (const_0_to_255_operand (operands[2], SImode)
          && (
#line 10695 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return 3230; /* avx512vl_rorv4si */
      if (!const_0_to_31_operand (operands[2], SImode)
          || !
#line 16520 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
        return -1;
      return 4076; /* xop_rotrv4si3 */

    case 6:
      if (register_operand (operands[1], V8DImode)
          && nonimmediate_operand (operands[2], V8DImode)
          && 
#line 10685 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return 3210; /* avx512f_rorvv8di */
      if (!nonimmediate_operand (operands[1], V8DImode)
          || !const_0_to_255_operand (operands[2], SImode)
          || !
#line 10695 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 3234; /* avx512f_rorv8di */

    case 7:
      if (register_operand (operands[1], V4DImode)
          && nonimmediate_operand (operands[2], V4DImode)
          && (
#line 10685 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return 3214; /* avx512vl_rorvv4di */
      if (!nonimmediate_operand (operands[1], V4DImode)
          || !const_0_to_255_operand (operands[2], SImode)
          || !(
#line 10695 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 3238; /* avx512vl_rorv4di */

    case 8:
      if (register_operand (operands[1], V2DImode)
          && nonimmediate_operand (operands[2], V2DImode)
          && (
#line 10685 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return 3218; /* avx512vl_rorvv2di */
      if (!nonimmediate_operand (operands[1], V2DImode))
        return -1;
      if (const_0_to_255_operand (operands[2], SImode)
          && (
#line 10695 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return 3242; /* avx512vl_rorv2di */
      if (!const_0_to_63_operand (operands[2], SImode)
          || !
#line 16520 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
        return -1;
      return 4077; /* xop_rotrv2di3 */

    case 9:
      if (!
#line 16520 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
        return -1;
      return 4074; /* xop_rotrv16qi3 */

    case 10:
      if (!
#line 16520 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
        return -1;
      return 4075; /* xop_rotrv8hi3 */

    case 11:
      if (!
#line 11029 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_REG_STALL
    || (operands[1] == const1_rtx
	&& TARGET_SHIFT1))))
        return -1;
      *pnum_clobbers = 1;
      return 618; /* *rotrqi3_1_slp */

    default:
      return -1;
    }
}

static int
recog_181 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern5 (x1, pnum_clobbers))
    {
    case 0:
      if (!
#line 1044 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
        return -1;
      *pnum_clobbers = 2;
      return 601; /* ix86_rotlti3_doubleword */

    case 1:
      if (!
#line 11006 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ROTATE, QImode, operands)))
        return -1;
      *pnum_clobbers = 1;
      return 613; /* *rotlqi3_1 */

    case 2:
      if (!
#line 11006 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ROTATE, HImode, operands)))
        return -1;
      *pnum_clobbers = 1;
      return 615; /* *rotlhi3_1 */

    case 3:
      if (register_operand (operands[1], V16SImode)
          && nonimmediate_operand (operands[2], V16SImode)
          && 
#line 10685 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return 3196; /* avx512f_rolvv16si */
      if (!nonimmediate_operand (operands[1], V16SImode)
          || !const_0_to_255_operand (operands[2], SImode)
          || !
#line 10695 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 3220; /* avx512f_rolv16si */

    case 4:
      if (register_operand (operands[1], V8SImode)
          && nonimmediate_operand (operands[2], V8SImode)
          && (
#line 10685 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return 3200; /* avx512vl_rolvv8si */
      if (!nonimmediate_operand (operands[1], V8SImode)
          || !const_0_to_255_operand (operands[2], SImode)
          || !(
#line 10695 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 3224; /* avx512vl_rolv8si */

    case 5:
      if (register_operand (operands[1], V4SImode)
          && nonimmediate_operand (operands[2], V4SImode)
          && (
#line 10685 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return 3204; /* avx512vl_rolvv4si */
      if (!nonimmediate_operand (operands[1], V4SImode))
        return -1;
      if (const_0_to_255_operand (operands[2], SImode)
          && (
#line 10695 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return 3228; /* avx512vl_rolv4si */
      if (!const_0_to_31_operand (operands[2], SImode)
          || !
#line 16509 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
        return -1;
      return 4072; /* xop_rotlv4si3 */

    case 6:
      if (register_operand (operands[1], V8DImode)
          && nonimmediate_operand (operands[2], V8DImode)
          && 
#line 10685 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return 3208; /* avx512f_rolvv8di */
      if (!nonimmediate_operand (operands[1], V8DImode)
          || !const_0_to_255_operand (operands[2], SImode)
          || !
#line 10695 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
        return -1;
      return 3232; /* avx512f_rolv8di */

    case 7:
      if (register_operand (operands[1], V4DImode)
          && nonimmediate_operand (operands[2], V4DImode)
          && (
#line 10685 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return 3212; /* avx512vl_rolvv4di */
      if (!nonimmediate_operand (operands[1], V4DImode)
          || !const_0_to_255_operand (operands[2], SImode)
          || !(
#line 10695 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 3236; /* avx512vl_rolv4di */

    case 8:
      if (register_operand (operands[1], V2DImode)
          && nonimmediate_operand (operands[2], V2DImode)
          && (
#line 10685 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return 3216; /* avx512vl_rolvv2di */
      if (!nonimmediate_operand (operands[1], V2DImode))
        return -1;
      if (const_0_to_255_operand (operands[2], SImode)
          && (
#line 10695 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return 3240; /* avx512vl_rolv2di */
      if (!const_0_to_63_operand (operands[2], SImode)
          || !
#line 16509 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
        return -1;
      return 4073; /* xop_rotlv2di3 */

    case 9:
      if (!
#line 16509 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
        return -1;
      return 4070; /* xop_rotlv16qi3 */

    case 10:
      if (!
#line 16509 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP))
        return -1;
      return 4071; /* xop_rotlv8hi3 */

    case 11:
      if (!
#line 11029 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_REG_STALL
    || (operands[1] == const1_rtx
	&& TARGET_SHIFT1))))
        return -1;
      *pnum_clobbers = 1;
      return 617; /* *rotlqi3_1_slp */

    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, 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 NEG:
      if (pnum_clobbers == NULL
          || GET_MODE (x4) != DImode)
        return -1;
      x5 = XEXP (x4, 0);
      if (GET_CODE (x5) != ASHIFT
          || GET_MODE (x5) != DImode)
        return -1;
      x6 = XEXP (x5, 1);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 32])
        return -1;
      x7 = XEXP (x3, 1);
      if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 32]
          || !register_operand (operands[0], DImode)
          || GET_MODE (x3) != DImode)
        return -1;
      x8 = XEXP (x5, 0);
      operands[1] = x8;
      if (!register_operand (operands[1], DImode)
          || !
#line 9227 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_unary_operator_ok (NEG, SImode, operands)))
        return -1;
      *pnum_clobbers = 1;
      return 471; /* *negsi2_1_zext */

    case REG:
    case SUBREG:
    case MEM:
      operands[1] = x4;
      x7 = XEXP (x3, 1);
      switch (GET_CODE (x7))
        {
        case CONST_INT:
        case CONST_WIDE_INT:
        case CONST_FIXED:
        case CONST_DOUBLE:
        case CONST_VECTOR:
        case CONST:
        case LABEL_REF:
        case SYMBOL_REF:
        case HIGH:
          operands[2] = x7;
          if (immediate_operand (operands[2], QImode))
            {
              switch (GET_MODE (operands[0]))
                {
                case SImode:
                  if (register_operand (operands[0], SImode)
                      && GET_MODE (x3) == SImode
                      && register_operand (operands[1], SImode)
                      && (
#line 9707 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F) && 
#line 970 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512BW)))
                    return 520; /* *shiftrsi3 */
                  break;

                case DImode:
                  if (register_operand (operands[0], DImode)
                      && GET_MODE (x3) == DImode
                      && register_operand (operands[1], DImode)
                      && (
#line 9707 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F) && 
#line 970 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512BW)))
                    return 522; /* *shiftrdi3 */
                  break;

                default:
                  break;
                }
            }
          break;

        case REG:
        case SUBREG:
          if (pnum_clobbers != NULL
              && GET_CODE (x7) == SUBREG)
            {
              switch (pattern220 (x3))
                {
                case 0:
                  if (
#line 10343 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (LSHIFTRT, SImode, operands)
   && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
      == GET_MODE_BITSIZE (SImode)-1))
                    {
                      *pnum_clobbers = 1;
                      return 547; /* *lshrsi3_mask */
                    }
                  break;

                case 1:
                  if ((
#line 10343 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (LSHIFTRT, DImode, operands)
   && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
      == GET_MODE_BITSIZE (DImode)-1) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                    {
                      *pnum_clobbers = 1;
                      return 549; /* *lshrdi3_mask */
                    }
                  break;

                default:
                  break;
                }
            }
          operands[2] = x7;
          if (pattern221 (x3) == 0
              && 
#line 10498 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2))
            return 560; /* *bmi2_lshrsi3_1 */
          break;

        default:
          break;
        }
      operands[2] = x7;
      switch (GET_MODE (operands[0]))
        {
        case DImode:
          if (GET_MODE (x3) != DImode)
            return -1;
          if (register_operand (operands[0], DImode))
            {
              if (pnum_clobbers != NULL
                  && register_operand (operands[1], DImode)
                  && nonmemory_operand (operands[2], QImode)
                  && 
#line 1021 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT))
                {
                  *pnum_clobbers = 1;
                  return 551; /* *lshrdi3_doubleword */
                }
              if (nonimmediate_operand (operands[1], DImode)
                  && register_operand (operands[2], DImode)
                  && (
#line 10498 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return 562; /* *bmi2_lshrdi3_1 */
            }
          if (pnum_clobbers == NULL
              || !nonimmediate_operand (operands[0], DImode)
              || !nonimmediate_operand (operands[1], DImode)
              || !nonmemory_operand (operands[2], QImode)
              || !(
#line 10509 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (LSHIFTRT, DImode, operands)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          *pnum_clobbers = 1;
          return 566; /* *lshrdi3_1 */

        case SImode:
          if (pattern3 (x3, pnum_clobbers, SImode) != 0
              || !
#line 10509 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (LSHIFTRT, SImode, operands)))
            return -1;
          *pnum_clobbers = 1;
          return 564; /* *lshrsi3_1 */

        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];
  int res ATTRIBUTE_UNUSED;
  switch (pattern10 (x1))
    {
    case 0:
      if (!
#line 17541 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH))
        return -1;
      return 994; /* sminsf3 */

    case 1:
      if (!
#line 17541 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH))
        return -1;
      return 996; /* smindf3 */

    case 2:
      if (!
#line 327 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_3DNOW && ix86_binary_operator_ok (SMIN, V2SFmode, operands)))
        return -1;
      return 1121; /* *mmx_sminv2sf3 */

    case 3:
      if (!
#line 905 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
((TARGET_SSE || TARGET_3DNOW_A)
   && ix86_binary_operator_ok (SMIN, V4HImode, operands)))
        return -1;
      return 1167; /* *mmx_sminv4hi3 */

    case 4:
      if (!(
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMIN, V16SFmode, operands)
   && 1 && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
        return -1;
      return 1553; /* *sminv16sf3 */

    case 5:
      if (!(
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMIN, V8SFmode, operands)
   && 1 && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
        return -1;
      return 1561; /* *sminv8sf3 */

    case 6:
      if (!
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMIN, V4SFmode, operands)
   && 1 && 1))
        return -1;
      return 1569; /* *sminv4sf3 */

    case 7:
      if (!(
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMIN, V8DFmode, operands)
   && 1 && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
        return -1;
      return 1577; /* *sminv8df3 */

    case 8:
      if (!(
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMIN, V4DFmode, operands)
   && 1 && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
        return -1;
      return 1585; /* *sminv4df3 */

    case 9:
      if (!(
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMIN, V2DFmode, operands)
   && 1 && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
        return -1;
      return 1593; /* *sminv2df3 */

    case 10:
      if (nonimmediate_operand (operands[1], V32QImode)
          && 
#line 10713 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && ix86_binary_operator_ok (SMIN, V32QImode, operands)))
        return 3245; /* *avx2_sminv32qi3 */
      if (!register_operand (operands[1], V32QImode)
          || !(
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 3322; /* *sminv32qi3 */

    case 11:
      if (nonimmediate_operand (operands[1], V16HImode)
          && 
#line 10713 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && ix86_binary_operator_ok (SMIN, V16HImode, operands)))
        return 3249; /* *avx2_sminv16hi3 */
      if (!register_operand (operands[1], V16HImode)
          || !(
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 3338; /* *sminv16hi3 */

    case 12:
      if (
#line 10713 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && ix86_binary_operator_ok (SMIN, V8SImode, operands)))
        return 3253; /* *avx2_sminv8si3 */
      if (!(
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (SMIN, V8SImode, operands)) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 3266; /* *avx512f_sminv8si3 */

    case 13:
      if (!
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (SMIN, V16SImode, operands)))
        return -1;
      return 3258; /* *avx512f_sminv16si3 */

    case 14:
      if (nonimmediate_operand (operands[1], V4SImode)
          && nonimmediate_operand (operands[2], V4SImode)
          && (
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (SMIN, V4SImode, operands)) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return 3274; /* *avx512f_sminv4si3 */
      if (!vector_operand (operands[1], V4SImode)
          || !vector_operand (operands[2], V4SImode)
          || !
#line 10840 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1
   && 1
   && ix86_binary_operator_ok (SMIN, V4SImode, operands)))
        return -1;
      return 3358; /* *sse4_1_sminv4si3 */

    case 15:
      if (!
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (SMIN, V8DImode, operands)))
        return -1;
      return 3282; /* *avx512f_sminv8di3 */

    case 16:
      if (!(
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (SMIN, V4DImode, operands)) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 3290; /* *avx512f_sminv4di3 */

    case 17:
      if (!(
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (SMIN, V2DImode, operands)) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 3298; /* *avx512f_sminv2di3 */

    case 18:
      if (!
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
        return -1;
      return 3306; /* *sminv64qi3 */

    case 19:
      if (register_operand (operands[1], V16QImode)
          && nonimmediate_operand (operands[2], V16QImode)
          && (
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return 3314; /* *sminv16qi3 */
      if (!vector_operand (operands[1], V16QImode)
          || !vector_operand (operands[2], V16QImode)
          || !
#line 10840 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1
   && 1
   && ix86_binary_operator_ok (SMIN, V16QImode, operands)))
        return -1;
      return 3354; /* *sse4_1_sminv16qi3 */

    case 20:
      if (!
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
        return -1;
      return 3330; /* *sminv32hi3 */

    case 21:
      if (register_operand (operands[1], V8HImode)
          && nonimmediate_operand (operands[2], V8HImode)
          && (
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return 3346; /* *sminv8hi3 */
      if (!vector_operand (operands[1], V8HImode)
          || !vector_operand (operands[2], V8HImode)
          || !
#line 10858 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && ix86_binary_operator_ok (SMIN, V8HImode, operands)))
        return -1;
      return 3361; /* *sminv8hi3 */

    default:
      return -1;
    }
}

static int
recog_184 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern10 (x1))
    {
    case 0:
      if (!
#line 17541 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH))
        return -1;
      return 993; /* smaxsf3 */

    case 1:
      if (!
#line 17541 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH))
        return -1;
      return 995; /* smaxdf3 */

    case 2:
      if (!
#line 327 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_3DNOW && ix86_binary_operator_ok (SMAX, V2SFmode, operands)))
        return -1;
      return 1120; /* *mmx_smaxv2sf3 */

    case 3:
      if (!
#line 905 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
((TARGET_SSE || TARGET_3DNOW_A)
   && ix86_binary_operator_ok (SMAX, V4HImode, operands)))
        return -1;
      return 1166; /* *mmx_smaxv4hi3 */

    case 4:
      if (!(
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMAX, V16SFmode, operands)
   && 1 && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
        return -1;
      return 1549; /* *smaxv16sf3 */

    case 5:
      if (!(
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMAX, V8SFmode, operands)
   && 1 && 1) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
        return -1;
      return 1557; /* *smaxv8sf3 */

    case 6:
      if (!
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMAX, V4SFmode, operands)
   && 1 && 1))
        return -1;
      return 1565; /* *smaxv4sf3 */

    case 7:
      if (!(
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMAX, V8DFmode, operands)
   && 1 && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
        return -1;
      return 1573; /* *smaxv8df3 */

    case 8:
      if (!(
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMAX, V4DFmode, operands)
   && 1 && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
        return -1;
      return 1581; /* *smaxv4df3 */

    case 9:
      if (!(
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMAX, V2DFmode, operands)
   && 1 && 1) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
        return -1;
      return 1589; /* *smaxv2df3 */

    case 10:
      if (nonimmediate_operand (operands[1], V32QImode)
          && 
#line 10713 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && ix86_binary_operator_ok (SMAX, V32QImode, operands)))
        return 3244; /* *avx2_smaxv32qi3 */
      if (!register_operand (operands[1], V32QImode)
          || !(
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 3320; /* *smaxv32qi3 */

    case 11:
      if (nonimmediate_operand (operands[1], V16HImode)
          && 
#line 10713 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && ix86_binary_operator_ok (SMAX, V16HImode, operands)))
        return 3248; /* *avx2_smaxv16hi3 */
      if (!register_operand (operands[1], V16HImode)
          || !(
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 3336; /* *smaxv16hi3 */

    case 12:
      if (
#line 10713 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && ix86_binary_operator_ok (SMAX, V8SImode, operands)))
        return 3252; /* *avx2_smaxv8si3 */
      if (!(
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (SMAX, V8SImode, operands)) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 3264; /* *avx512f_smaxv8si3 */

    case 13:
      if (!
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (SMAX, V16SImode, operands)))
        return -1;
      return 3256; /* *avx512f_smaxv16si3 */

    case 14:
      if (nonimmediate_operand (operands[1], V4SImode)
          && nonimmediate_operand (operands[2], V4SImode)
          && (
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (SMAX, V4SImode, operands)) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return 3272; /* *avx512f_smaxv4si3 */
      if (!vector_operand (operands[1], V4SImode)
          || !vector_operand (operands[2], V4SImode)
          || !
#line 10840 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1
   && 1
   && ix86_binary_operator_ok (SMAX, V4SImode, operands)))
        return -1;
      return 3356; /* *sse4_1_smaxv4si3 */

    case 15:
      if (!
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (SMAX, V8DImode, operands)))
        return -1;
      return 3280; /* *avx512f_smaxv8di3 */

    case 16:
      if (!(
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (SMAX, V4DImode, operands)) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 3288; /* *avx512f_smaxv4di3 */

    case 17:
      if (!(
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (SMAX, V2DImode, operands)) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 3296; /* *avx512f_smaxv2di3 */

    case 18:
      if (!
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
        return -1;
      return 3304; /* *smaxv64qi3 */

    case 19:
      if (register_operand (operands[1], V16QImode)
          && nonimmediate_operand (operands[2], V16QImode)
          && (
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return 3312; /* *smaxv16qi3 */
      if (!vector_operand (operands[1], V16QImode)
          || !vector_operand (operands[2], V16QImode)
          || !
#line 10840 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1
   && 1
   && ix86_binary_operator_ok (SMAX, V16QImode, operands)))
        return -1;
      return 3352; /* *sse4_1_smaxv16qi3 */

    case 20:
      if (!
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
        return -1;
      return 3328; /* *smaxv32hi3 */

    case 21:
      if (register_operand (operands[1], V8HImode)
          && nonimmediate_operand (operands[2], V8HImode)
          && (
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return 3344; /* *smaxv8hi3 */
      if (!vector_operand (operands[1], V8HImode)
          || !vector_operand (operands[2], V8HImode)
          || !
#line 10858 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && ix86_binary_operator_ok (SMAX, V8HImode, operands)))
        return -1;
      return 3360; /* *smaxv8hi3 */

    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, 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 ASHIFT:
      if (pattern93 (x3) != 0
          || !
#line 6363 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((((GET_MODE (operands[0]) == QImode || GET_MODE (operands[0]) == HImode)
      && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
    || GET_MODE (operands[0]) == SImode
    || (TARGET_64BIT && GET_MODE (operands[0]) == DImode))
   && GET_MODE (operands[0]) == GET_MODE (operands[1])
   && ((unsigned HOST_WIDE_INT) INTVAL (operands[2])) - 1 < 3
   && ((unsigned HOST_WIDE_INT) INTVAL (operands[3])
       < (HOST_WIDE_INT_1U << INTVAL (operands[2])))))
        return -1;
      return 258; /* *lea_general_4 */

    case REG:
    case SUBREG:
    case MEM:
      operands[1] = x4;
      x5 = XEXP (x3, 1);
      operands[2] = x5;
      switch (GET_MODE (operands[0]))
        {
        case SImode:
          if (GET_MODE (x3) != SImode)
            return -1;
          if (mask_reg_operand (operands[0], SImode)
              && mask_reg_operand (operands[1], SImode)
              && mask_reg_operand (operands[2], SImode)
              && (
#line 8095 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F) && 
#line 8089 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512BW)))
            return 386; /* *kxorsi */
          if (pnum_clobbers == NULL
              || !nonimmediate_operand (operands[0], SImode)
              || !nonimmediate_operand (operands[1], SImode)
              || !x86_64_general_operand (operands[2], SImode)
              || !
#line 8722 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (XOR, SImode, operands)))
            return -1;
          *pnum_clobbers = 1;
          return 411; /* *xorsi_1 */

        case DImode:
          if (GET_MODE (x3) != DImode)
            return -1;
          if (mask_reg_operand (operands[0], DImode)
              && mask_reg_operand (operands[1], DImode)
              && mask_reg_operand (operands[2], DImode)
              && (
#line 8095 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F) && 
#line 8089 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512BW)))
            return 389; /* *kxordi */
          if (pnum_clobbers == NULL
              || !nonimmediate_operand (operands[0], DImode)
              || !nonimmediate_operand (operands[1], DImode))
            return -1;
          if (x86_64_general_operand (operands[2], DImode)
              && (
#line 8722 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (XOR, DImode, operands)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            {
              *pnum_clobbers = 1;
              return 413; /* *xordi_1 */
            }
          if (!x86_64_szext_general_operand (operands[2], DImode)
              || !
#line 8736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_STV && TARGET_SSE2
   && ix86_binary_operator_ok (XOR, DImode, operands)))
            return -1;
          *pnum_clobbers = 1;
          return 415; /* *xordi3_doubleword */

        default:
          return -1;
        }

    case ZERO_EXTEND:
      if (pattern92 (x3, pnum_clobbers) != 0
          || !
#line 8836 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_binary_operator_ok (XOR, SImode, operands)))
        return -1;
      *pnum_clobbers = 1;
      return 424; /* *xorsi_1_zext_imm */

    case PLUS:
      if (pnum_clobbers == NULL)
        return -1;
      x6 = XEXP (x4, 1);
      if (GET_CODE (x6) != CONST_INT)
        return -1;
      x7 = XEXP (x4, 0);
      operands[1] = x7;
      x5 = XEXP (x3, 1);
      if (!rtx_equal_p (x5, operands[1]))
        return -1;
      switch (XWINT (x6, 0))
        {
        case -1LL:
          switch (GET_MODE (operands[0]))
            {
            case SImode:
              if (pattern339 (x3, SImode) != 0
                  || !
#line 13198 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI))
                return -1;
              *pnum_clobbers = 1;
              return 756; /* *bmi_blsmsk_si */

            case DImode:
              if (pattern339 (x3, DImode) != 0
                  || !(
#line 13198 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              *pnum_clobbers = 1;
              return 757; /* *bmi_blsmsk_di */

            default:
              return -1;
            }

        case 1LL:
          switch (GET_MODE (operands[0]))
            {
            case SImode:
              if (pattern339 (x3, SImode) != 0
                  || !
#line 13370 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM))
                return -1;
              *pnum_clobbers = 1;
              return 778; /* *tbm_blcmsk_si */

            case DImode:
              if (pattern339 (x3, DImode) != 0
                  || !(
#line 13370 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              *pnum_clobbers = 1;
              return 779; /* *tbm_blcmsk_di */

            default:
              return -1;
            }

        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;
  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);
  switch (GET_CODE (x5))
    {
    case REG:
    case SUBREG:
      if (pnum_clobbers != NULL
          && GET_CODE (x5) == SUBREG)
        {
          switch (pattern220 (x3))
            {
            case 0:
              if (
#line 10343 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
   && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
      == GET_MODE_BITSIZE (SImode)-1))
                {
                  *pnum_clobbers = 1;
                  return 548; /* *ashrsi3_mask */
                }
              break;

            case 1:
              if ((
#line 10343 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
   && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
      == GET_MODE_BITSIZE (DImode)-1) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                {
                  *pnum_clobbers = 1;
                  return 550; /* *ashrdi3_mask */
                }
              break;

            default:
              break;
            }
        }
      operands[2] = x5;
      if (pattern221 (x3) == 0
          && 
#line 10498 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2))
        return 561; /* *bmi2_ashrsi3_1 */
      break;

    case CONST_INT:
      if (pnum_clobbers != NULL)
        {
          operands[2] = x5;
          if (const_int_operand (operands[2], QImode)
              && nonimmediate_operand (operands[0], SImode)
              && GET_MODE (x3) == SImode
              && nonimmediate_operand (operands[1], SImode)
              && 
#line 10435 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(INTVAL (operands[2]) == 31
   && (TARGET_USE_CLTD || optimize_function_for_size_p (cfun))
   && ix86_binary_operator_ok (ASHIFTRT, SImode, operands)))
            {
              *pnum_clobbers = 1;
              return 558; /* ashrsi3_cvt */
            }
        }
      break;

    default:
      break;
    }
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case DImode:
      if (pnum_clobbers != NULL
          && GET_MODE (x3) == DImode)
        {
          if (register_operand (operands[0], DImode)
              && register_operand (operands[1], DImode)
              && nonmemory_operand (operands[2], QImode)
              && 
#line 1021 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT))
            {
              *pnum_clobbers = 1;
              return 552; /* *ashrdi3_doubleword */
            }
          if (nonimmediate_operand (operands[0], DImode)
              && nonimmediate_operand (operands[1], DImode)
              && const_int_operand (operands[2], QImode)
              && 
#line 10418 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && INTVAL (operands[2]) == 63
   && (TARGET_USE_CLTD || optimize_function_for_size_p (cfun))
   && ix86_binary_operator_ok (ASHIFTRT, DImode, operands)))
            {
              *pnum_clobbers = 1;
              return 557; /* ashrdi3_cvt */
            }
        }
      if (GET_MODE (x3) != DImode
          || !nonimmediate_operand (operands[1], DImode))
        return -1;
      if (register_operand (operands[0], DImode)
          && register_operand (operands[2], DImode)
          && (
#line 10498 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
        return 563; /* *bmi2_ashrdi3_1 */
      if (pnum_clobbers == NULL
          || !nonimmediate_operand (operands[0], DImode)
          || !nonmemory_operand (operands[2], QImode)
          || !(
#line 10509 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ASHIFTRT, DImode, operands)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
        return -1;
      *pnum_clobbers = 1;
      return 567; /* *ashrdi3_1 */

    case SImode:
      if (pattern3 (x3, pnum_clobbers, SImode) != 0
          || !
#line 10509 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ASHIFTRT, SImode, operands)))
        return -1;
      *pnum_clobbers = 1;
      return 565; /* *ashrsi3_1 */

    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, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != PARALLEL
      || XVECLEN (x3, 0) != 1)
    return -1;
  x4 = XVECEXP (x3, 0, 0);
  if (GET_CODE (x4) != CONST_INT)
    return -1;
  x5 = XEXP (x1, 0);
  operands[0] = x5;
  x6 = XEXP (x2, 0);
  operands[1] = x6;
  switch (XWINT (x4, 0))
    {
    case 0LL:
      switch (GET_MODE (operands[0]))
        {
        case SImode:
          if (nonimmediate_operand (operands[0], SImode)
              && GET_MODE (x2) == SImode)
            {
              switch (GET_MODE (operands[1]))
                {
                case V2SImode:
                  if (nonimmediate_operand (operands[1], V2SImode)
                      && 
#line 1295 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
                    return 1212; /* *vec_extractv2si_0 */
                  break;

                case V4SImode:
                  if (nonimmediate_operand (operands[1], V4SImode)
                      && 
#line 13346 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
                    return 3699; /* *vec_extractv4si_0 */
                  break;

                default:
                  break;
                }
            }
          break;

        case DImode:
          if (nonimmediate_operand (operands[0], DImode)
              && GET_MODE (x2) == DImode
              && nonimmediate_operand (operands[1], V2DImode))
            {
              if ((
#line 13346 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && !(MEM_P (operands[0]) && MEM_P (operands[1]))) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return 3700; /* *vec_extractv2di_0 */
              if (
#line 13367 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && !TARGET_64BIT
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
                return 3702; /* *vec_extractv2di_0_sse */
            }
          break;

        default:
          break;
        }
      break;

    case 1LL:
      switch (GET_MODE (operands[0]))
        {
        case SImode:
          if (nonimmediate_operand (operands[0], SImode)
              && GET_MODE (x2) == SImode
              && nonimmediate_operand (operands[1], V2SImode)
              && 
#line 1313 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
            return 1213; /* *vec_extractv2si_1 */
          break;

        case DImode:
          if (nonimmediate_operand (operands[0], DImode)
              && GET_MODE (x2) == DImode
              && nonimmediate_operand (operands[1], V2DImode)
              && 
#line 13453 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
            return 3707; /* *vec_extractv2di_1 */
          break;

        default:
          break;
        }
      break;

    default:
      break;
    }
  if (register_operand (operands[1], V4SImode)
      && nonimmediate_operand (operands[0], SImode)
      && GET_MODE (x2) == SImode)
    {
      operands[2] = x4;
      if (const_0_to_3_operand (operands[2], SImode)
          && 
#line 13385 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1))
        return 3703; /* *vec_extractv4si */
    }
  if (!memory_operand (operands[1], V4SImode)
      || !register_operand (operands[0], SImode)
      || GET_MODE (x2) != SImode)
    return -1;
  operands[2] = x4;
  if (!const_0_to_3_operand (operands[2], VOIDmode)
      || !
#line 13431 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
    return -1;
  return 3705; /* *vec_extractv4si_mem */
}

static int
recog_188 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern11 (x1))
    {
    case 0:
      if (!
#line 924 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
((TARGET_SSE || TARGET_3DNOW_A)
   && ix86_binary_operator_ok (UMAX, V8QImode, operands)))
        return -1;
      return 1168; /* *mmx_umaxv8qi3 */

    case 1:
      if (nonimmediate_operand (operands[1], V32QImode)
          && 
#line 10713 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && ix86_binary_operator_ok (UMAX, V32QImode, operands)))
        return 3246; /* *avx2_umaxv32qi3 */
      if (!register_operand (operands[1], V32QImode)
          || !(
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 3324; /* *umaxv32qi3 */

    case 2:
      if (nonimmediate_operand (operands[1], V16HImode)
          && 
#line 10713 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && ix86_binary_operator_ok (UMAX, V16HImode, operands)))
        return 3250; /* *avx2_umaxv16hi3 */
      if (!register_operand (operands[1], V16HImode)
          || !(
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 3340; /* *umaxv16hi3 */

    case 3:
      if (
#line 10713 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && ix86_binary_operator_ok (UMAX, V8SImode, operands)))
        return 3254; /* *avx2_umaxv8si3 */
      if (!(
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (UMAX, V8SImode, operands)) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 3268; /* *avx512f_umaxv8si3 */

    case 4:
      if (!
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (UMAX, V16SImode, operands)))
        return -1;
      return 3260; /* *avx512f_umaxv16si3 */

    case 5:
      if (nonimmediate_operand (operands[1], V4SImode)
          && nonimmediate_operand (operands[2], V4SImode)
          && (
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (UMAX, V4SImode, operands)) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return 3276; /* *avx512f_umaxv4si3 */
      if (!vector_operand (operands[1], V4SImode)
          || !vector_operand (operands[2], V4SImode)
          || !
#line 10924 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1
   && 1
   && ix86_binary_operator_ok (UMAX, V4SImode, operands)))
        return -1;
      return 3366; /* *sse4_1_umaxv4si3 */

    case 6:
      if (!
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (UMAX, V8DImode, operands)))
        return -1;
      return 3284; /* *avx512f_umaxv8di3 */

    case 7:
      if (!(
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (UMAX, V4DImode, operands)) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 3292; /* *avx512f_umaxv4di3 */

    case 8:
      if (!(
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (UMAX, V2DImode, operands)) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 3300; /* *avx512f_umaxv2di3 */

    case 9:
      if (!
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
        return -1;
      return 3308; /* *umaxv64qi3 */

    case 10:
      if (register_operand (operands[1], V16QImode)
          && nonimmediate_operand (operands[2], V16QImode)
          && (
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return 3316; /* *umaxv16qi3 */
      if (!vector_operand (operands[1], V16QImode)
          || !vector_operand (operands[2], V16QImode)
          || !
#line 10942 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && ix86_binary_operator_ok (UMAX, V16QImode, operands)))
        return -1;
      return 3370; /* *umaxv16qi3 */

    case 11:
      if (!
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
        return -1;
      return 3332; /* *umaxv32hi3 */

    case 12:
      if (register_operand (operands[1], V8HImode)
          && nonimmediate_operand (operands[2], V8HImode)
          && (
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return 3348; /* *umaxv8hi3 */
      if (!vector_operand (operands[1], V8HImode)
          || !vector_operand (operands[2], V8HImode)
          || !
#line 10924 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1
   && 1
   && ix86_binary_operator_ok (UMAX, V8HImode, operands)))
        return -1;
      return 3362; /* *sse4_1_umaxv8hi3 */

    default:
      return -1;
    }
}

static int
recog_189 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern11 (x1))
    {
    case 0:
      if (!
#line 924 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
((TARGET_SSE || TARGET_3DNOW_A)
   && ix86_binary_operator_ok (UMIN, V8QImode, operands)))
        return -1;
      return 1169; /* *mmx_uminv8qi3 */

    case 1:
      if (nonimmediate_operand (operands[1], V32QImode)
          && 
#line 10713 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && ix86_binary_operator_ok (UMIN, V32QImode, operands)))
        return 3247; /* *avx2_uminv32qi3 */
      if (!register_operand (operands[1], V32QImode)
          || !(
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 3326; /* *uminv32qi3 */

    case 2:
      if (nonimmediate_operand (operands[1], V16HImode)
          && 
#line 10713 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && ix86_binary_operator_ok (UMIN, V16HImode, operands)))
        return 3251; /* *avx2_uminv16hi3 */
      if (!register_operand (operands[1], V16HImode)
          || !(
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 3342; /* *uminv16hi3 */

    case 3:
      if (
#line 10713 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2 && ix86_binary_operator_ok (UMIN, V8SImode, operands)))
        return 3255; /* *avx2_uminv8si3 */
      if (!(
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (UMIN, V8SImode, operands)) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 3270; /* *avx512f_uminv8si3 */

    case 4:
      if (!
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (UMIN, V16SImode, operands)))
        return -1;
      return 3262; /* *avx512f_uminv16si3 */

    case 5:
      if (nonimmediate_operand (operands[1], V4SImode)
          && nonimmediate_operand (operands[2], V4SImode)
          && (
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (UMIN, V4SImode, operands)) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return 3278; /* *avx512f_uminv4si3 */
      if (!vector_operand (operands[1], V4SImode)
          || !vector_operand (operands[2], V4SImode)
          || !
#line 10924 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1
   && 1
   && ix86_binary_operator_ok (UMIN, V4SImode, operands)))
        return -1;
      return 3368; /* *sse4_1_uminv4si3 */

    case 6:
      if (!
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (UMIN, V8DImode, operands)))
        return -1;
      return 3286; /* *avx512f_uminv8di3 */

    case 7:
      if (!(
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (UMIN, V4DImode, operands)) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 3294; /* *avx512f_uminv4di3 */

    case 8:
      if (!(
#line 10736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && ix86_binary_operator_ok (UMIN, V2DImode, operands)) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 3302; /* *avx512f_uminv2di3 */

    case 9:
      if (!
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
        return -1;
      return 3310; /* *uminv64qi3 */

    case 10:
      if (register_operand (operands[1], V16QImode)
          && nonimmediate_operand (operands[2], V16QImode)
          && (
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return 3318; /* *uminv16qi3 */
      if (!vector_operand (operands[1], V16QImode)
          || !vector_operand (operands[2], V16QImode)
          || !
#line 10942 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && ix86_binary_operator_ok (UMIN, V16QImode, operands)))
        return -1;
      return 3371; /* *uminv16qi3 */

    case 11:
      if (!
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
        return -1;
      return 3334; /* *uminv32hi3 */

    case 12:
      if (register_operand (operands[1], V8HImode)
          && nonimmediate_operand (operands[2], V8HImode)
          && (
#line 10748 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW) && 
#line 183 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return 3350; /* *uminv8hi3 */
      if (!vector_operand (operands[1], V8HImode)
          || !vector_operand (operands[2], V8HImode)
          || !
#line 10924 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1
   && 1
   && ix86_binary_operator_ok (UMIN, V8HImode, operands)))
        return -1;
      return 3364; /* *sse4_1_uminv8hi3 */

    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, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XEXP (x3, 0);
  operands[1] = x4;
  x5 = XEXP (x3, 1);
  operands[2] = x5;
  switch (pattern26 (x3))
    {
    case 0:
      if (register_operand (operands[1], SImode)
          && immediate_operand (operands[2], QImode)
          && (
#line 9707 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F) && 
#line 970 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512BW)))
        return 519; /* *shiftlsi3 */
      if (nonimmediate_operand (operands[1], SImode)
          && register_operand (operands[2], SImode)
          && 
#line 9854 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2))
        return 529; /* *bmi2_ashlsi3_1 */
      break;

    case 1:
      if (register_operand (operands[1], DImode)
          && immediate_operand (operands[2], QImode)
          && (
#line 9707 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F) && 
#line 970 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512BW)))
        return 521; /* *shiftldi3 */
      if (pnum_clobbers != NULL
          && reg_or_pm1_operand (operands[1], DImode)
          && nonmemory_operand (operands[2], QImode)
          && 
#line 1021 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT))
        {
          *pnum_clobbers = 1;
          return 523; /* *ashldi3_doubleword */
        }
      if (nonimmediate_operand (operands[1], DImode)
          && register_operand (operands[2], DImode)
          && (
#line 9854 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
        return 530; /* *bmi2_ashldi3_1 */
      break;

    default:
      break;
    }
  if (pnum_clobbers == NULL)
    return -1;
  if (GET_CODE (x5) == SUBREG)
    {
      switch (pattern220 (x3))
        {
        case 0:
          if (
#line 9841 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ASHIFT, SImode, operands)
   && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
      == GET_MODE_BITSIZE (SImode)-1))
            {
              *pnum_clobbers = 1;
              return 527; /* *ashlsi3_mask */
            }
          break;

        case 1:
          if ((
#line 9841 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ASHIFT, DImode, operands)
   && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
      == GET_MODE_BITSIZE (DImode)-1) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            {
              *pnum_clobbers = 1;
              return 528; /* *ashldi3_mask */
            }
          break;

        default:
          break;
        }
    }
  operands[2] = x5;
  if (!nonmemory_operand (operands[2], QImode))
    return -1;
  switch (pattern143 (x3))
    {
    case 0:
      if (!
#line 9864 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ASHIFT, SImode, operands)))
        return -1;
      *pnum_clobbers = 1;
      return 531; /* *ashlsi3_1 */

    case 1:
      if (!(
#line 9864 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ASHIFT, DImode, operands)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
        return -1;
      *pnum_clobbers = 1;
      return 532; /* *ashldi3_1 */

    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;
  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 V16SImode:
      if (!register_operand (operands[0], V16SImode)
          || GET_MODE (x3) != V16SImode
          || !nonimmediate_operand (operands[1], V16SImode)
          || !
#line 19191 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512CD))
        return -1;
      return 4909; /* clzv16si2 */

    case V8SImode:
      if (!register_operand (operands[0], V8SImode)
          || GET_MODE (x3) != V8SImode
          || !nonimmediate_operand (operands[1], V8SImode)
          || !(
#line 19191 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512CD) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4911; /* clzv8si2 */

    case V4SImode:
      if (!register_operand (operands[0], V4SImode)
          || GET_MODE (x3) != V4SImode
          || !nonimmediate_operand (operands[1], V4SImode)
          || !(
#line 19191 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512CD) && 
#line 262 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4913; /* clzv4si2 */

    case V8DImode:
      if (!register_operand (operands[0], V8DImode)
          || GET_MODE (x3) != V8DImode
          || !nonimmediate_operand (operands[1], V8DImode)
          || !
#line 19191 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512CD))
        return -1;
      return 4915; /* clzv8di2 */

    case V4DImode:
      if (!register_operand (operands[0], V4DImode)
          || GET_MODE (x3) != V4DImode
          || !nonimmediate_operand (operands[1], V4DImode)
          || !(
#line 19191 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512CD) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4917; /* clzv4di2 */

    case V2DImode:
      if (!register_operand (operands[0], V2DImode)
          || GET_MODE (x3) != V2DImode
          || !nonimmediate_operand (operands[1], V2DImode)
          || !(
#line 19191 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512CD) && 
#line 263 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))
        return -1;
      return 4919; /* clzv2di2 */

    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;
  int res ATTRIBUTE_UNUSED;
  switch (pattern2 (x1))
    {
    case 0:
      switch (GET_MODE (operands[0]))
        {
        case TImode:
          x2 = XEXP (x1, 1);
          if (pattern180 (x2, pnum_clobbers, TImode) != 0
              || !(
#line 9191 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_unary_operator_ok (NEG, TImode, operands)) && 
#line 1044 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          *pnum_clobbers = 1;
          return 466; /* *negti2_doubleword */

        case QImode:
          x2 = XEXP (x1, 1);
          if (pattern180 (x2, pnum_clobbers, QImode) != 0
              || !
#line 9214 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_unary_operator_ok (NEG, QImode, operands)))
            return -1;
          *pnum_clobbers = 1;
          return 467; /* *negqi2_1 */

        case HImode:
          x2 = XEXP (x1, 1);
          if (pattern180 (x2, pnum_clobbers, HImode) != 0
              || !
#line 9214 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_unary_operator_ok (NEG, HImode, operands)))
            return -1;
          *pnum_clobbers = 1;
          return 468; /* *neghi2_1 */

        case SFmode:
          if (!register_operand (operands[0], SFmode))
            return -1;
          x2 = XEXP (x1, 1);
          if (GET_MODE (x2) != SFmode
              || !register_operand (operands[1], SFmode)
              || !
#line 9470 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387
   && (reload_completed
       || !(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH))))
            return -1;
          return 488; /* *negsf2_1 */

        case DFmode:
          if (!register_operand (operands[0], DFmode))
            return -1;
          x2 = XEXP (x1, 1);
          if (GET_MODE (x2) != DFmode
              || !register_operand (operands[1], DFmode)
              || !
#line 9470 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387
   && (reload_completed
       || !(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH))))
            return -1;
          return 490; /* *negdf2_1 */

        case XFmode:
          if (!register_operand (operands[0], XFmode))
            return -1;
          x2 = XEXP (x1, 1);
          if (GET_MODE (x2) != XFmode
              || !register_operand (operands[1], XFmode)
              || !
#line 9470 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387
   && (reload_completed
       || !(SSE_FLOAT_MODE_P (XFmode) && TARGET_SSE_MATH))))
            return -1;
          return 492; /* *negxf2_1 */

        default:
          return -1;
        }

    case 1:
      if (!
#line 9481 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && (!TARGET_SSE_MATH || TARGET_MIX_SSE_I387)))
        return -1;
      return 494; /* *negextendsfdf2 */

    case 2:
      if (!
#line 9490 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
        return -1;
      return 496; /* *negextendsfxf2 */

    case 3:
      if (!
#line 9499 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
        return -1;
      return 498; /* *negextenddfxf2 */

    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;
  int res ATTRIBUTE_UNUSED;
  if (pnum_clobbers == NULL)
    return -1;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XEXP (x3, 0);
  operands[1] = x4;
  x5 = XEXP (x3, 1);
  switch (GET_CODE (x5))
    {
    case UMIN:
      x6 = XEXP (x3, 2);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x7 = XEXP (x5, 1);
      operands[3] = x7;
      x8 = XEXP (x5, 0);
      switch (GET_CODE (x8))
        {
        case AND:
          x9 = XEXP (x8, 1);
          if (GET_CODE (x9) != CONST_INT
              || XWINT (x9, 0) != 255LL)
            return -1;
          x10 = XEXP (x8, 0);
          operands[2] = x10;
          switch (GET_MODE (operands[0]))
            {
            case SImode:
              if (pattern577 (x3, SImode) != 0
                  || !
#line 13243 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2 && INTVAL (operands[3]) == 4 * BITS_PER_UNIT))
                return -1;
              *pnum_clobbers = 1;
              return 760; /* *bmi2_bzhi_si3 */

            case DImode:
              if (pattern577 (x3, DImode) != 0
                  || !(
#line 13243 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2 && INTVAL (operands[3]) == 8 * BITS_PER_UNIT) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              *pnum_clobbers = 1;
              return 761; /* *bmi2_bzhi_di3 */

            default:
              return -1;
            }

        case ZERO_EXTEND:
          x10 = XEXP (x8, 0);
          operands[2] = x10;
          if (!register_operand (operands[2], QImode))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case SImode:
              if (pattern538 (x3, SImode) != 0
                  || !
#line 13260 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2 && INTVAL (operands[3]) == 4 * BITS_PER_UNIT))
                return -1;
              *pnum_clobbers = 1;
              return 762; /* *bmi2_bzhi_si3_1 */

            case DImode:
              if (pattern538 (x3, DImode) != 0
                  || !(
#line 13260 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2 && INTVAL (operands[3]) == 8 * BITS_PER_UNIT) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              *pnum_clobbers = 1;
              return 763; /* *bmi2_bzhi_di3_1 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case CONST_INT:
      operands[2] = x5;
      if (!const_0_to_255_operand (operands[2], VOIDmode))
        return -1;
      x6 = XEXP (x3, 2);
      operands[3] = x6;
      if (!const_0_to_255_operand (operands[3], VOIDmode))
        return -1;
      switch (pattern12 (x3))
        {
        case 0:
          if (!
#line 13313 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM))
            return -1;
          *pnum_clobbers = 1;
          return 770; /* tbm_bextri_si */

        case 1:
          if (!(
#line 13313 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          *pnum_clobbers = 1;
          return 771; /* tbm_bextri_di */

        default:
          return -1;
        }

    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, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != MEM
      || GET_MODE (x3) != QImode)
    return -1;
  x4 = XEXP (x1, 0);
  operands[0] = x4;
  x5 = XEXP (x3, 0);
  operands[1] = x5;
  x6 = XEXP (x2, 1);
  operands[2] = x6;
  if (call_insn_operand (operands[1], SImode)
      && (
#line 12189 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!SIBLING_CALL_P (insn)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)))
    return 685; /* *call_value */
  if (call_insn_operand (operands[1], DImode)
      && (
#line 12189 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!SIBLING_CALL_P (insn)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)))
    return 686; /* *call_value */
  switch (GET_CODE (x5))
    {
    case ZERO_EXTEND:
      if (GET_MODE (x5) == DImode)
        {
          x7 = XEXP (x5, 0);
          operands[1] = x7;
          if (GOT_memory_operand (operands[1], SImode))
            {
              operands[2] = x6;
              if (
#line 12200 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_X32))
                return 687; /* *call_value_got_x32 */
            }
        }
      break;

    case MEM:
      if (GET_MODE (x5) == SImode)
        {
          x7 = XEXP (x5, 0);
          if (GET_CODE (x7) == PLUS
              && GET_MODE (x7) == SImode)
            {
              x8 = XEXP (x7, 0);
              operands[1] = x8;
              if (register_no_elim_operand (operands[1], SImode))
                {
                  x9 = XEXP (x7, 1);
                  operands[2] = x9;
                  if (GOT32_symbol_operand (operands[2], SImode))
                    {
                      operands[3] = x6;
                      if (
#line 12213 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_MACHO && !TARGET_64BIT && SIBLING_CALL_P (insn)))
                        return 688; /* *sibcall_value_GOT_32 */
                    }
                }
            }
        }
      break;

    default:
      break;
    }
  operands[1] = x5;
  operands[2] = x6;
  if (sibcall_insn_operand (operands[1], SImode)
      && (
#line 12225 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SIBLING_CALL_P (insn)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)))
    return 689; /* *sibcall_value */
  if (!sibcall_insn_operand (operands[1], DImode)
      || !(
#line 12225 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SIBLING_CALL_P (insn)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)))
    return -1;
  return 690; /* *sibcall_value */
}

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);
  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:
      if (pnum_clobbers != NULL)
        {
          switch (pattern27 (x1, -1))
            {
            case 0:
              *pnum_clobbers = 1;
              return 977; /* *x86_movsicc_0_m1 */

            case 1:
              if (
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                {
                  *pnum_clobbers = 1;
                  return 978; /* *x86_movdicc_0_m1 */
                }
              break;

            default:
              break;
            }
        }
      operands[1] = x3;
      if (!ix86_comparison_operator (operands[1], VOIDmode))
        return -1;
      x4 = XEXP (x3, 0);
      if (GET_CODE (x4) != REG
          || REGNO (x4) != 17)
        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;
      x7 = XEXP (x2, 1);
      switch (GET_CODE (x7))
        {
        case REG:
        case SUBREG:
        case MEM:
          switch (pattern353 (x2))
            {
            case 0:
              if (!
#line 17254 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_CMOVE && !(MEM_P (operands[2]) && MEM_P (operands[3]))))
                return -1;
              return 984; /* *movsicc_noc */

            case 1:
              if (!(
#line 17254 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_CMOVE && !(MEM_P (operands[2]) && MEM_P (operands[3]))) && 
#line 991 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 985; /* *movdicc_noc */

            default:
              return -1;
            }

        case ZERO_EXTEND:
          if (GET_MODE (x7) != DImode)
            return -1;
          x8 = XEXP (x2, 2);
          if (GET_CODE (x8) != ZERO_EXTEND
              || GET_MODE (x8) != DImode
              || !register_operand (operands[0], DImode)
              || GET_MODE (x2) != DImode)
            return -1;
          x9 = XEXP (x7, 0);
          operands[2] = x9;
          if (!nonimmediate_operand (operands[2], SImode))
            return -1;
          x10 = XEXP (x8, 0);
          operands[3] = x10;
          if (!nonimmediate_operand (operands[3], SImode)
              || !
#line 17269 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT
   && TARGET_CMOVE && !(MEM_P (operands[2]) && MEM_P (operands[3]))))
            return -1;
          return 986; /* *movsicc_noc_zext */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_196 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x2) != CLOBBER)
    return -1;
  x3 = XEXP (x2, 0);
  operands[0] = x3;
  if (register_operand (operands[0], HImode))
    {
      x4 = XVECEXP (x1, 0, 0);
      switch (pattern603 (x4))
        {
        case 0:
          if (
#line 1486 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_SAHF && !TARGET_CMOVE))
            return 20; /* *cmpsf_0_cc_i387 */
          break;

        case 1:
          if (
#line 1486 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_SAHF && !TARGET_CMOVE))
            return 21; /* *cmpdf_0_cc_i387 */
          break;

        case 2:
          if (
#line 1486 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_SAHF && !TARGET_CMOVE))
            return 22; /* *cmpxf_0_cc_i387 */
          break;

        default:
          break;
        }
    }
  switch (GET_MODE (operands[1]))
    {
    case DImode:
      if (!nonimmediate_operand (operands[1], DImode)
          || !x86_64_immediate_operand (operands[2], DImode)
          || !scratch_operand (operands[0], DImode)
          || !
#line 5998 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT
   && ix86_match_ccmode (insn, CCGCmode)))
        return -1;
      return 236; /* *adddi_4 */

    case QImode:
      if (!nonimmediate_operand (operands[1], QImode)
          || !const_int_operand (operands[2], QImode)
          || !scratch_operand (operands[0], QImode)
          || !
#line 6043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCGCmode)))
        return -1;
      return 237; /* *addqi_4 */

    case HImode:
      if (!nonimmediate_operand (operands[1], HImode)
          || !const_int_operand (operands[2], HImode)
          || !scratch_operand (operands[0], HImode)
          || !
#line 6043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCGCmode)))
        return -1;
      return 238; /* *addhi_4 */

    case SImode:
      if (!nonimmediate_operand (operands[1], SImode)
          || !const_int_operand (operands[2], SImode)
          || !scratch_operand (operands[0], SImode)
          || !
#line 6043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCGCmode)))
        return -1;
      return 239; /* *addsi_4 */

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 1);
  operands[2] = x4;
  res = recog_196 (x1, insn, pnum_clobbers);
  if (res >= 0)
    return res;
  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) != CTZ)
    return -1;
  x7 = XEXP (x5, 0);
  operands[0] = x7;
  x8 = XEXP (x6, 0);
  if (!rtx_equal_p (x8, operands[1]))
    return -1;
  x9 = XEXP (x2, 0);
  switch (GET_MODE (x9))
    {
    case CCCmode:
      switch (pattern699 (x1, CCCmode))
        {
        case 0:
          if (!
#line 12828 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI && !TARGET_AVOID_FALSE_DEP_FOR_BMI))
            return -1;
          return 716; /* *tzcntsi_1 */

        case 1:
          if (!(
#line 12828 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI && !TARGET_AVOID_FALSE_DEP_FOR_BMI) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          return 717; /* *tzcntdi_1 */

        default:
          return -1;
        }

    case CCZmode:
      switch (pattern699 (x1, CCZmode))
        {
        case 0:
          return 718; /* *bsfsi_1 */

        case 1:
          if (!
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
            return -1;
          return 719; /* *bsfdi_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;
  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) != CLOBBER)
    return -1;
  x6 = XEXP (x5, 0);
  operands[0] = x6;
  if (!register_operand (operands[0], HImode))
    return -1;
  switch (pattern604 (x2))
    {
    case 0:
      if (!
#line 1519 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_SAHF && !TARGET_CMOVE))
        return -1;
      return 24; /* *cmpxf_cc_i387 */

    case 1:
      if (!
#line 1552 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_SAHF && !TARGET_CMOVE))
        return -1;
      return 27; /* *cmpsf_cc_i387 */

    case 2:
      if (!
#line 1552 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_SAHF && !TARGET_CMOVE))
        return -1;
      return 28; /* *cmpdf_cc_i387 */

    case 3:
      if (!
#line 1585 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_SAHF && !TARGET_CMOVE))
        return -1;
      return 32; /* *cmpusf_cc_i387 */

    case 4:
      if (!
#line 1585 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_SAHF && !TARGET_CMOVE))
        return -1;
      return 33; /* *cmpudf_cc_i387 */

    case 5:
      if (!
#line 1585 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_SAHF && !TARGET_CMOVE))
        return -1;
      return 34; /* *cmpuxf_cc_i387 */

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 1);
  if (!rtx_equal_p (x4, operands[1]))
    return -1;
  x5 = XEXP (x2, 0);
  if (GET_MODE (x5) != CCCmode
      || GET_MODE (x3) != CCCmode)
    return -1;
  x6 = XVECEXP (x1, 0, 1);
  switch (GET_CODE (x6))
    {
    case CLOBBER:
      switch (pattern346 (x1))
        {
        case 0:
          if (!
#line 6741 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))))
            return -1;
          return 299; /* *addqi3_cconly_overflow_1 */

        case 1:
          if (!
#line 6741 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))))
            return -1;
          return 300; /* *addhi3_cconly_overflow_1 */

        case 2:
          if (!
#line 6741 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))))
            return -1;
          return 301; /* *addsi3_cconly_overflow_1 */

        case 3:
          if (!(
#line 6741 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          return 302; /* *adddi3_cconly_overflow_1 */

        default:
          return -1;
        }

    case SET:
      switch (pattern579 (x1))
        {
        case 0:
          if (!
#line 6768 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, QImode, operands)))
            return -1;
          return 307; /* *addqi3_cc_overflow_1 */

        case 1:
          if (!
#line 6768 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, HImode, operands)))
            return -1;
          return 308; /* *addhi3_cc_overflow_1 */

        case 2:
          if (!
#line 6768 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, SImode, operands)))
            return -1;
          return 309; /* *addsi3_cc_overflow_1 */

        case 3:
          if (!(
#line 6768 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, DImode, operands)) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          return 310; /* *adddi3_cc_overflow_1 */

        case 4:
          if (!
#line 6796 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_binary_operator_ok (PLUS, SImode, operands)))
            return -1;
          return 315; /* *addsi3_zext_cc_overflow_1 */

        default:
          return -1;
        }

    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, 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);
  operands[1] = x4;
  x5 = XEXP (x3, 1);
  switch (GET_CODE (x5))
    {
    case FLOAT:
      operands[3] = x5;
      x6 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x6) != CLOBBER)
        return -1;
      x7 = XEXP (x2, 0);
      if (GET_MODE (x7) != CCFPmode
          || GET_MODE (x3) != CCFPmode)
        return -1;
      x8 = XEXP (x5, 0);
      operands[2] = x8;
      x9 = XEXP (x6, 0);
      operands[0] = x9;
      if (!register_operand (operands[0], HImode))
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case SFmode:
          switch (pattern730 (SFmode))
            {
            case 0:
              if (!
#line 1623 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_SAHF && !TARGET_CMOVE
   && (TARGET_USE_HIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                return -1;
              return 41; /* *cmpsf_hi_cc_i387 */

            case 1:
              if (!
#line 1623 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_SAHF && !TARGET_CMOVE
   && (TARGET_USE_SIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                return -1;
              return 44; /* *cmpsf_si_cc_i387 */

            default:
              return -1;
            }

        case DFmode:
          switch (pattern730 (DFmode))
            {
            case 0:
              if (!
#line 1623 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_SAHF && !TARGET_CMOVE
   && (TARGET_USE_HIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                return -1;
              return 42; /* *cmpdf_hi_cc_i387 */

            case 1:
              if (!
#line 1623 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_SAHF && !TARGET_CMOVE
   && (TARGET_USE_SIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                return -1;
              return 45; /* *cmpdf_si_cc_i387 */

            default:
              return -1;
            }

        case XFmode:
          switch (pattern730 (XFmode))
            {
            case 0:
              if (!
#line 1623 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_SAHF && !TARGET_CMOVE
   && (TARGET_USE_HIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                return -1;
              return 43; /* *cmpxf_hi_cc_i387 */

            case 1:
              if (!
#line 1623 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_SAHF && !TARGET_CMOVE
   && (TARGET_USE_SIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                return -1;
              return 46; /* *cmpxf_si_cc_i387 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case CONST_INT:
    case CONST_WIDE_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:
      switch (GET_CODE (x5))
        {
        case CONST_INT:
        case CONST_WIDE_INT:
        case CONST_DOUBLE:
        case CONST_VECTOR:
        case CONST:
        case LABEL_REF:
        case SYMBOL_REF:
          res = recog_197 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

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

        default:
          break;
        }
      operands[2] = x5;
      x6 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x6) != SET)
        return -1;
      x9 = XEXP (x6, 0);
      operands[0] = x9;
      x10 = XEXP (x6, 1);
      switch (GET_CODE (x10))
        {
        case MINUS:
          x11 = XEXP (x10, 0);
          if (!rtx_equal_p (x11, operands[1]))
            return -1;
          x12 = XEXP (x10, 1);
          if (!rtx_equal_p (x12, operands[2]))
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case QImode:
              if (pattern700 (x10, QImode) != 0
                  || !
#line 6589 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCmode)
   && ix86_binary_operator_ok (MINUS, QImode, operands)))
                return -1;
              return 280; /* *subqi_3 */

            case HImode:
              if (pattern700 (x10, HImode) != 0
                  || !
#line 6589 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCmode)
   && ix86_binary_operator_ok (MINUS, HImode, operands)))
                return -1;
              return 281; /* *subhi_3 */

            case SImode:
              if (pattern701 (x10, SImode) != 0
                  || !
#line 6589 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCmode)
   && ix86_binary_operator_ok (MINUS, SImode, operands)))
                return -1;
              return 282; /* *subsi_3 */

            case DImode:
              if (pattern701 (x10, DImode) != 0
                  || !(
#line 6589 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCmode)
   && ix86_binary_operator_ok (MINUS, DImode, operands)) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 283; /* *subdi_3 */

            default:
              return -1;
            }

        case ZERO_EXTEND:
          if (GET_MODE (x10) != DImode)
            return -1;
          x11 = XEXP (x10, 0);
          if (GET_CODE (x11) != MINUS
              || GET_MODE (x11) != SImode
              || !register_operand (operands[1], SImode)
              || !x86_64_general_operand (operands[2], SImode)
              || !register_operand (operands[0], DImode))
            return -1;
          x13 = XEXP (x11, 0);
          if (!rtx_equal_p (x13, operands[1]))
            return -1;
          x14 = XEXP (x11, 1);
          if (!rtx_equal_p (x14, operands[2])
              || !
#line 6603 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_match_ccmode (insn, CCmode)
   && ix86_binary_operator_ok (MINUS, SImode, operands)))
            return -1;
          return 284; /* *subsi_3_zext */

        default:
          return -1;
        }

    case PLUS:
      x8 = XEXP (x5, 0);
      switch (GET_CODE (x8))
        {
        case GE:
        case GT:
        case LE:
        case LT:
        case GTU:
        case LTU:
        case UNEQ:
        case UNGE:
        case UNGT:
        case UNLE:
        case UNLT:
        case LTGT:
          operands[4] = x8;
          x15 = XEXP (x8, 1);
          if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x6 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x6) != SET)
            return -1;
          x10 = XEXP (x6, 1);
          if (GET_CODE (x10) != MINUS)
            return -1;
          x11 = XEXP (x10, 0);
          if (GET_CODE (x11) != MINUS)
            return -1;
          x14 = XEXP (x11, 1);
          switch (GET_CODE (x14))
            {
            case GE:
            case GT:
            case LE:
            case LT:
            case GTU:
            case LTU:
            case UNEQ:
            case UNGE:
            case UNGT:
            case UNLE:
            case UNLT:
            case LTGT:
              if (!rtx_equal_p (x14, operands[4]))
                return -1;
              x7 = XEXP (x2, 0);
              if (GET_MODE (x7) != CCCmode
                  || GET_MODE (x3) != CCCmode)
                return -1;
              x16 = XEXP (x8, 0);
              operands[3] = x16;
              if (!flags_reg_operand (operands[3], VOIDmode))
                return -1;
              x17 = XEXP (x5, 1);
              operands[2] = x17;
              x9 = XEXP (x6, 0);
              operands[0] = x9;
              x13 = XEXP (x11, 0);
              if (!rtx_equal_p (x13, operands[1]))
                return -1;
              x12 = XEXP (x10, 1);
              if (!rtx_equal_p (x12, operands[2]))
                return -1;
              switch (GET_MODE (operands[1]))
                {
                case SImode:
                  if (pattern907 (x1, SImode) != 0
                      || !
#line 6713 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (MINUS, SImode, operands)))
                    return -1;
                  return 297; /* subborrowsi */

                case DImode:
                  if (pattern907 (x1, DImode) != 0
                      || !(
#line 6713 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (MINUS, DImode, operands)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                    return -1;
                  return 298; /* subborrowdi */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        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, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 1);
  operands[2] = x5;
  x6 = XEXP (x4, 0);
  switch (GET_CODE (x6))
    {
    case REG:
    case SUBREG:
    case MEM:
      operands[1] = x6;
      x7 = XEXP (x3, 1);
      switch (GET_CODE (x7))
        {
        case CONST_INT:
          if (XWINT (x7, 0) == 0LL)
            {
              x8 = XVECEXP (x1, 0, 1);
              switch (GET_CODE (x8))
                {
                case SET:
                  switch (pattern579 (x1))
                    {
                    case 0:
                      if (
#line 5820 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCGOCmode)
   && ix86_binary_operator_ok (PLUS, QImode, operands)))
                        return 226; /* *addqi_2 */
                      break;

                    case 1:
                      if (
#line 5820 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCGOCmode)
   && ix86_binary_operator_ok (PLUS, HImode, operands)))
                        return 227; /* *addhi_2 */
                      break;

                    case 2:
                      if (
#line 5820 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCGOCmode)
   && ix86_binary_operator_ok (PLUS, SImode, operands)))
                        return 228; /* *addsi_2 */
                      break;

                    case 3:
                      if ((
#line 5820 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCGOCmode)
   && ix86_binary_operator_ok (PLUS, DImode, operands)) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                        return 229; /* *adddi_2 */
                      break;

                    case 4:
                      if (
#line 5865 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)
   && ix86_binary_operator_ok (PLUS, SImode, operands)))
                        return 230; /* *addsi_2_zext */
                      break;

                    default:
                      break;
                    }
                  break;

                case CLOBBER:
                  switch (pattern346 (x1))
                    {
                    case 0:
                      if (
#line 6082 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCGOCmode)
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                        return 240; /* *addqi_5 */
                      break;

                    case 1:
                      if (
#line 6082 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCGOCmode)
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                        return 241; /* *addhi_5 */
                      break;

                    case 2:
                      if (
#line 6082 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCGOCmode)
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                        return 242; /* *addsi_5 */
                      break;

                    case 3:
                      if ((
#line 6082 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCGOCmode)
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                        return 243; /* *adddi_5 */
                      break;

                    default:
                      break;
                    }
                  break;

                default:
                  break;
                }
            }
          break;

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

        default:
          break;
        }
      x9 = XEXP (x2, 0);
      if (GET_MODE (x9) != CCCmode
          || GET_MODE (x3) != CCCmode
          || !rtx_equal_p (x7, operands[2]))
        return -1;
      x8 = XVECEXP (x1, 0, 1);
      switch (GET_CODE (x8))
        {
        case CLOBBER:
          switch (pattern346 (x1))
            {
            case 0:
              if (!
#line 6754 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))))
                return -1;
              return 303; /* *addqi3_cconly_overflow_2 */

            case 1:
              if (!
#line 6754 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))))
                return -1;
              return 304; /* *addhi3_cconly_overflow_2 */

            case 2:
              if (!
#line 6754 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))))
                return -1;
              return 305; /* *addsi3_cconly_overflow_2 */

            case 3:
              if (!(
#line 6754 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 306; /* *adddi3_cconly_overflow_2 */

            default:
              return -1;
            }

        case SET:
          switch (pattern579 (x1))
            {
            case 0:
              if (!
#line 6782 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, QImode, operands)))
                return -1;
              return 311; /* *addqi3_cc_overflow_2 */

            case 1:
              if (!
#line 6782 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, HImode, operands)))
                return -1;
              return 312; /* *addhi3_cc_overflow_2 */

            case 2:
              if (!
#line 6782 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, SImode, operands)))
                return -1;
              return 313; /* *addsi3_cc_overflow_2 */

            case 3:
              if (!(
#line 6782 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, DImode, operands)) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 314; /* *adddi3_cc_overflow_2 */

            case 4:
              if (!
#line 6810 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_binary_operator_ok (PLUS, SImode, operands)))
                return -1;
              return 316; /* *addsi3_zext_cc_overflow_2 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case PLUS:
      x10 = XEXP (x6, 0);
      switch (GET_CODE (x10))
        {
        case GE:
        case GT:
        case LE:
        case LT:
        case GTU:
        case LTU:
        case UNEQ:
        case UNGE:
        case UNGT:
        case UNLE:
        case UNLT:
        case LTGT:
          operands[4] = x10;
          x11 = XEXP (x10, 1);
          if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x8 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x8) != SET)
            return -1;
          x12 = XEXP (x8, 1);
          if (GET_CODE (x12) != PLUS)
            return -1;
          x13 = XEXP (x12, 0);
          if (GET_CODE (x13) != PLUS)
            return -1;
          x14 = XEXP (x13, 0);
          switch (GET_CODE (x14))
            {
            case GE:
            case GT:
            case LE:
            case LT:
            case GTU:
            case LTU:
            case UNEQ:
            case UNGE:
            case UNGT:
            case UNLE:
            case UNLT:
            case LTGT:
              if (!rtx_equal_p (x14, operands[4]))
                return -1;
              x9 = XEXP (x2, 0);
              if (GET_MODE (x9) != CCCmode
                  || GET_MODE (x3) != CCCmode)
                return -1;
              x15 = XEXP (x10, 0);
              operands[3] = x15;
              if (!flags_reg_operand (operands[3], VOIDmode))
                return -1;
              x16 = XEXP (x6, 1);
              operands[1] = x16;
              x17 = XEXP (x8, 0);
              operands[0] = x17;
              x7 = XEXP (x3, 1);
              if (!rtx_equal_p (x7, operands[1]))
                return -1;
              x18 = XEXP (x13, 1);
              if (!rtx_equal_p (x18, operands[1]))
                return -1;
              x19 = XEXP (x12, 1);
              if (!rtx_equal_p (x19, operands[2]))
                return -1;
              switch (GET_MODE (x4))
                {
                case SImode:
                  if (pattern915 (x1, SImode) != 0
                      || !
#line 6660 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, SImode, operands)))
                    return -1;
                  return 290; /* addcarrysi */

                case DImode:
                  if (pattern915 (x1, DImode) != 0
                      || !(
#line 6660 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, DImode, operands)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                    return -1;
                  return 291; /* addcarrydi */

                default:
                  return -1;
                }

            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 = 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 = XEXP (x3, 0);
  x6 = XEXP (x5, 0);
  switch (GET_CODE (x6))
    {
    case REG:
    case SUBREG:
    case MEM:
      x7 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x7) != SET)
        return -1;
      x8 = XEXP (x7, 1);
      switch (GET_CODE (x8))
        {
        case AND:
          x9 = XEXP (x7, 0);
          switch (GET_CODE (x9))
            {
            case REG:
            case SUBREG:
            case MEM:
              operands[0] = x9;
              operands[1] = x6;
              x10 = XEXP (x5, 1);
              operands[2] = x10;
              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;
              switch (GET_MODE (x5))
                {
                case DImode:
                  if (!nonimmediate_operand (operands[1], DImode)
                      || !x86_64_szext_general_operand (operands[2], DImode)
                      || !nonimmediate_operand (operands[0], DImode)
                      || GET_MODE (x8) != DImode
                      || !
#line 8481 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT
   && ix86_match_ccmode
	(insn,
	 /* If we are going to emit andl instead of andq, and the operands[2]
	    constant might have the SImode sign bit set, make sure the sign
	    flag isn't tested, because the instruction will set the sign flag
	    based on bit 31 rather than bit 63.  If it isn't CONST_INT,
	    conservatively assume it might have bit 31 set.  */
	 (satisfies_constraint_Z (operands[2])
	  && (!CONST_INT_P (operands[2])
	      || val_signbit_known_set_p (SImode, INTVAL (operands[2]))))
	 ? CCZmode : CCNOmode)
   && ix86_binary_operator_ok (AND, DImode, operands)))
                    return -1;
                  return 399; /* *anddi_2 */

                case QImode:
                  if (pattern463 (x8, QImode) != 0)
                    return -1;
                  if (
#line 8509 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (AND, QImode, operands)
   && ix86_match_ccmode (insn,
			 CONST_INT_P (operands[2])
			 && INTVAL (operands[2]) >= 0 ? CCNOmode : CCZmode)))
                    return 400; /* *andqi_2_maybe_si */
                  if (!
#line 8533 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && ix86_binary_operator_ok (AND, QImode, operands)))
                    return -1;
                  return 401; /* *andqi_2 */

                case HImode:
                  if (pattern463 (x8, HImode) != 0
                      || !
#line 8533 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && ix86_binary_operator_ok (AND, HImode, operands)))
                    return -1;
                  return 402; /* *andhi_2 */

                case SImode:
                  if (pattern464 (x8, SImode) != 0
                      || !
#line 8533 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && ix86_binary_operator_ok (AND, SImode, operands)))
                    return -1;
                  return 403; /* *andsi_2 */

                default:
                  return -1;
                }

            case STRICT_LOW_PART:
              if (GET_MODE (x5) != QImode)
                return -1;
              operands[0] = x6;
              if (!nonimmediate_operand (operands[0], QImode))
                return -1;
              x10 = XEXP (x5, 1);
              operands[1] = x10;
              if (!nonimmediate_operand (operands[1], QImode)
                  || pattern466 (x7) != 0
                  || !
#line 8562 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
   && ix86_match_ccmode (insn, CCNOmode)
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
                return -1;
              return 405; /* *andqi_2_slp */

            default:
              return -1;
            }

        case ZERO_EXTEND:
          if (pattern468 (x1, AND) != 0
              || !
#line 8548 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_match_ccmode (insn, CCNOmode)
   && ix86_binary_operator_ok (AND, SImode, operands)))
            return -1;
          return 404; /* *andsi_2_zext */

        default:
          return -1;
        }

    case ZERO_EXTRACT:
      if (pattern395 (x1, AND) != 0
          || !const_int_operand (operands[2], VOIDmode))
        return -1;
      x7 = XVECEXP (x1, 0, 1);
      x9 = XEXP (x7, 0);
      x13 = XEXP (x9, 0);
      operands[0] = x13;
      if (!ext_register_operand (operands[0], VOIDmode))
        return -1;
      x8 = XEXP (x7, 1);
      x11 = XEXP (x8, 0);
      x14 = XEXP (x11, 0);
      if (!rtx_equal_p (x14, operands[1]))
        return -1;
      x12 = XEXP (x8, 1);
      if (!rtx_equal_p (x12, operands[2])
          || !
#line 8611 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)))
        return -1;
      return 407; /* *andqi_ext_0_cc */

    case NOT:
      x7 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x7) != CLOBBER)
        return -1;
      x15 = XEXP (x6, 0);
      operands[1] = x15;
      x10 = XEXP (x5, 1);
      operands[2] = x10;
      x9 = XEXP (x7, 0);
      operands[0] = x9;
      switch (GET_MODE (x5))
        {
        case SImode:
          if (pattern643 (x6, SImode) != 0
              || !
#line 13145 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI && ix86_match_ccmode (insn, CCNOmode)))
            return -1;
          return 748; /* *bmi_andn_si_ccno */

        case DImode:
          if (pattern643 (x6, DImode) != 0
              || !(
#line 13145 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI && ix86_match_ccmode (insn, CCNOmode)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          return 749; /* *bmi_andn_di_ccno */

        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, x11, x12, x13;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 1);
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
    case MEM:
      operands[1] = x4;
      x5 = XEXP (x3, 0);
      x6 = XEXP (x5, 0);
      operands[2] = x6;
      x7 = XVECEXP (x1, 0, 1);
      switch (GET_CODE (x7))
        {
        case CLOBBER:
          x8 = XEXP (x7, 0);
          operands[0] = x8;
          switch (GET_MODE (x5))
            {
            case QImode:
              if (!general_operand (operands[2], QImode)
                  || !nonimmediate_operand (operands[1], QImode)
                  || !scratch_operand (operands[0], QImode)
                  || !
#line 5906 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCZmode)
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                return -1;
              return 231; /* *addqi_3 */

            case HImode:
              if (!general_operand (operands[2], HImode)
                  || !nonimmediate_operand (operands[1], HImode)
                  || !scratch_operand (operands[0], HImode)
                  || !
#line 5906 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCZmode)
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                return -1;
              return 232; /* *addhi_3 */

            case SImode:
              if (!x86_64_general_operand (operands[2], SImode)
                  || !nonimmediate_operand (operands[1], SImode)
                  || !scratch_operand (operands[0], SImode)
                  || !
#line 5906 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCZmode)
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                return -1;
              return 233; /* *addsi_3 */

            case DImode:
              if (!x86_64_general_operand (operands[2], DImode)
                  || !nonimmediate_operand (operands[1], DImode)
                  || !scratch_operand (operands[0], DImode)
                  || !(
#line 5906 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCZmode)
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 234; /* *adddi_3 */

            default:
              return -1;
            }

        case SET:
          x9 = XEXP (x7, 1);
          if (GET_CODE (x9) != ZERO_EXTEND
              || pattern539 (x1, PLUS) != 0
              || !x86_64_general_operand (operands[2], SImode)
              || !nonimmediate_operand (operands[1], SImode))
            return -1;
          x8 = XEXP (x7, 0);
          operands[0] = x8;
          if (!register_operand (operands[0], DImode))
            return -1;
          x10 = XEXP (x9, 0);
          x11 = XEXP (x10, 0);
          if (!rtx_equal_p (x11, operands[1]))
            return -1;
          x12 = XEXP (x10, 1);
          if (!rtx_equal_p (x12, operands[2])
              || !
#line 5950 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_match_ccmode (insn, CCZmode)
   && ix86_binary_operator_ok (PLUS, SImode, operands)))
            return -1;
          return 235; /* *addsi_3_zext */

        default:
          return -1;
        }

    case CONST_INT:
      if (XWINT (x4, 0) != 0LL)
        return -1;
      x7 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x7) != SET)
        return -1;
      x9 = XEXP (x7, 1);
      if (GET_CODE (x9) != NEG)
        return -1;
      x13 = XEXP (x2, 0);
      if (GET_MODE (x13) != CCZmode
          || GET_MODE (x3) != CCZmode)
        return -1;
      x5 = XEXP (x3, 0);
      x6 = XEXP (x5, 0);
      operands[1] = x6;
      x8 = XEXP (x7, 0);
      operands[0] = x8;
      switch (pattern540 (x1))
        {
        case 0:
          if (!
#line 9243 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_unary_operator_ok (NEG, QImode, operands)))
            return -1;
          return 472; /* *negqi2_cmpz */

        case 1:
          if (!
#line 9243 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_unary_operator_ok (NEG, HImode, operands)))
            return -1;
          return 473; /* *neghi2_cmpz */

        case 2:
          if (!
#line 9243 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_unary_operator_ok (NEG, SImode, operands)))
            return -1;
          return 474; /* *negsi2_cmpz */

        case 3:
          if (!(
#line 9243 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_unary_operator_ok (NEG, DImode, operands)) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          return 475; /* *negdi2_cmpz */

        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, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 0);
  operands[0] = x3;
  x4 = XVECEXP (x1, 0, 1);
  switch (GET_CODE (x4))
    {
    case CLOBBER:
      x5 = XEXP (x2, 1);
      operands[1] = x5;
      x6 = XEXP (x4, 0);
      switch (GET_CODE (x6))
        {
        case MEM:
          if (GET_MODE (x6) != BLKmode)
            return -1;
          x7 = XEXP (x6, 0);
          if (GET_CODE (x7) != SCRATCH)
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case SImode:
              if (push_operand (operands[0], SImode)
                  && general_no_elim_operand (operands[1], SImode)
                  && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode))
                return 68; /* *pushsi2_prologue */
              if (!nonimmediate_operand (operands[0], SImode)
                  || !pop_operand (operands[1], SImode)
                  || !
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode))
                return -1;
              return 72; /* *popsi1_epilogue */

            case DImode:
              if (push_operand (operands[0], DImode)
                  && general_no_elim_operand (operands[1], DImode)
                  && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode))
                return 69; /* *pushdi2_prologue */
              if (!nonimmediate_operand (operands[0], DImode)
                  || !pop_operand (operands[1], DImode)
                  || !
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode))
                return -1;
              return 73; /* *popdi1_epilogue */

            default:
              return -1;
            }

        case REG:
          if (REGNO (x6) != 17
              || GET_MODE (x6) != CCmode)
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case SImode:
              if (!register_operand (operands[0], SImode))
                return -1;
              if (const0_operand (operands[1], SImode)
                  && 
#line 1970 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
                return 78; /* *movsi_xor */
              if (!const_int_operand (operands[1], SImode)
                  || !
#line 1981 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed
   && operands[1] == constm1_rtx))
                return -1;
              return 80; /* *movsi_or */

            case DImode:
              if (!register_operand (operands[0], DImode))
                return -1;
              if (const0_operand (operands[1], DImode)
                  && (
#line 1970 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return 79; /* *movdi_xor */
              if (!const_int_operand (operands[1], DImode)
                  || !(
#line 1981 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed
   && operands[1] == constm1_rtx) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 81; /* *movdi_or */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case SET:
      x8 = XEXP (x4, 1);
      switch (GET_CODE (x8))
        {
        case REG:
        case SUBREG:
          if (!rtx_equal_p (x8, operands[0]))
            return -1;
          x5 = XEXP (x2, 1);
          operands[1] = x5;
          x6 = XEXP (x4, 0);
          if (!rtx_equal_p (x6, operands[1]))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case SImode:
              if (!register_operand (operands[0], SImode)
                  || !register_operand (operands[1], SImode))
                return -1;
              return 98; /* *swapsi */

            case DImode:
              if (!register_operand (operands[0], DImode)
                  || !register_operand (operands[1], DImode)
                  || !
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                return -1;
              return 99; /* *swapdi */

            case QImode:
              if (!register_operand (operands[0], QImode)
                  || !register_operand (operands[1], QImode))
                return -1;
              if (
#line 2691 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
                return 100; /* *swapqi_1 */
              if (!
#line 2707 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_PARTIAL_REG_STALL))
                return -1;
              return 102; /* *swapqi_2 */

            case HImode:
              if (!register_operand (operands[0], HImode)
                  || !register_operand (operands[1], HImode))
                return -1;
              if (
#line 2691 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
                return 101; /* *swaphi_1 */
              if (!
#line 2707 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_PARTIAL_REG_STALL))
                return -1;
              return 103; /* *swaphi_2 */

            case XFmode:
              if (!register_operand (operands[0], XFmode)
                  || !register_operand (operands[1], XFmode)
                  || !
#line 3675 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
                return -1;
              return 130; /* swapxf */

            case SFmode:
              if (!fp_register_operand (operands[0], SFmode)
                  || !fp_register_operand (operands[1], SFmode)
                  || !
#line 3690 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 || reload_completed))
                return -1;
              return 131; /* *swapsf */

            case DFmode:
              if (!fp_register_operand (operands[0], DFmode)
                  || !fp_register_operand (operands[1], DFmode)
                  || !
#line 3690 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 || reload_completed))
                return -1;
              return 132; /* *swapdf */

            default:
              return -1;
            }

        case UNSPEC:
          if (XVECLEN (x8, 0) != 1
              || XINT (x8, 1) != 57
              || GET_MODE (x8) != XFmode)
            return -1;
          x5 = XEXP (x2, 1);
          operands[3] = x5;
          x6 = XEXP (x4, 0);
          operands[1] = x6;
          if (!register_operand (operands[1], XFmode))
            return -1;
          x9 = XVECEXP (x8, 0, 0);
          switch (GET_CODE (x9))
            {
            case REG:
            case SUBREG:
              operands[2] = x9;
              if (!register_operand (operands[2], XFmode)
                  || !register_operand (operands[0], XFmode)
                  || !const_double_operand (operands[3], XFmode)
                  || !
#line 14900 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations
   && standard_80387_constant_p (operands[3]) == 2))
                return -1;
              return 881; /* fptanxf4_i387 */

            case FLOAT_EXTEND:
              if (GET_MODE (x9) != XFmode)
                return -1;
              x10 = XEXP (x9, 0);
              operands[2] = x10;
              switch (GET_MODE (operands[0]))
                {
                case SFmode:
                  if (!register_operand (operands[0], SFmode)
                      || !const_double_operand (operands[3], SFmode)
                      || !register_operand (operands[2], SFmode)
                      || !
#line 14915 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && (!(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)
       || TARGET_MIX_SSE_I387)
   && flag_unsafe_math_optimizations
   && standard_80387_constant_p (operands[3]) == 2))
                    return -1;
                  return 882; /* fptan_extendsfxf4_i387 */

                case DFmode:
                  if (!register_operand (operands[0], DFmode)
                      || !const_double_operand (operands[3], DFmode)
                      || !register_operand (operands[2], DFmode)
                      || !
#line 14915 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && (!(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)
       || TARGET_MIX_SSE_I387)
   && flag_unsafe_math_optimizations
   && standard_80387_constant_p (operands[3]) == 2))
                    return -1;
                  return 883; /* fptan_extenddfxf4_i387 */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_205 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x2) != USE)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != LABEL_REF)
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 1);
  operands[0] = x5;
  x6 = XEXP (x3, 0);
  operands[1] = x6;
  switch (GET_MODE (operands[0]))
    {
    case SImode:
      if (!indirect_branch_operand (operands[0], SImode)
          || !
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode))
        return -1;
      return 672; /* *tablejump_1 */

    case DImode:
      if (!indirect_branch_operand (operands[0], DImode)
          || !
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode))
        return -1;
      return 673; /* *tablejump_1 */

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (pattern95 (x2, CCmode, 17) != 0)
    return -1;
  switch (GET_CODE (operands[1]))
    {
    case REG:
    case SUBREG:
    case MEM:
      switch (GET_MODE (operands[0]))
        {
        case DImode:
          if (!nonimmediate_operand (operands[0], DImode))
            return -1;
          x3 = XVECEXP (x1, 0, 0);
          x4 = XEXP (x3, 1);
          if (GET_MODE (x4) != DImode
              || !nonimmediate_operand (operands[1], DImode))
            return -1;
          if ((
#line 9191 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_unary_operator_ok (NEG, DImode, operands)) && 
#line 1043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT)))
            return 465; /* *negdi2_doubleword */
          if (!(
#line 9214 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_unary_operator_ok (NEG, DImode, operands)) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          return 470; /* *negdi2_1 */

        case TImode:
          if (!nonimmediate_operand (operands[0], TImode))
            return -1;
          x3 = XVECEXP (x1, 0, 0);
          x4 = XEXP (x3, 1);
          if (GET_MODE (x4) != TImode
              || !nonimmediate_operand (operands[1], TImode)
              || !(
#line 9191 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_unary_operator_ok (NEG, TImode, operands)) && 
#line 1044 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          return 466; /* *negti2_doubleword */

        case QImode:
          if (!nonimmediate_operand (operands[0], QImode))
            return -1;
          x3 = XVECEXP (x1, 0, 0);
          x4 = XEXP (x3, 1);
          if (GET_MODE (x4) != QImode
              || !nonimmediate_operand (operands[1], QImode)
              || !
#line 9214 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_unary_operator_ok (NEG, QImode, operands)))
            return -1;
          return 467; /* *negqi2_1 */

        case HImode:
          if (!nonimmediate_operand (operands[0], HImode))
            return -1;
          x3 = XVECEXP (x1, 0, 0);
          x4 = XEXP (x3, 1);
          if (GET_MODE (x4) != HImode
              || !nonimmediate_operand (operands[1], HImode)
              || !
#line 9214 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_unary_operator_ok (NEG, HImode, operands)))
            return -1;
          return 468; /* *neghi2_1 */

        case SImode:
          if (!nonimmediate_operand (operands[0], SImode))
            return -1;
          x3 = XVECEXP (x1, 0, 0);
          x4 = XEXP (x3, 1);
          if (GET_MODE (x4) != SImode
              || !nonimmediate_operand (operands[1], SImode)
              || !
#line 9214 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_unary_operator_ok (NEG, SImode, operands)))
            return -1;
          return 469; /* *negsi2_1 */

        default:
          return -1;
        }

    case GE:
    case GT:
    case LE:
    case LT:
    case GTU:
    case LTU:
    case UNEQ:
    case UNGE:
    case UNGT:
    case UNLE:
    case UNLT:
    case LTGT:
      if (!ix86_carry_flag_operator (operands[1], VOIDmode))
        return -1;
      x3 = XVECEXP (x1, 0, 0);
      x4 = XEXP (x3, 1);
      x5 = XEXP (x4, 0);
      x6 = XEXP (x5, 0);
      if (GET_CODE (x6) != REG
          || REGNO (x6) != 17)
        return -1;
      x7 = XEXP (x5, 1);
      if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      switch (pattern245 (x4))
        {
        case 0:
          return 981; /* *x86_movsicc_0_m1_neg */

        case 1:
          if (!
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
            return -1;
          return 982; /* *x86_movdicc_0_m1_neg */

        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, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) != SUBREG
      || XINT (x4, 1) != 0
      || GET_MODE (x4) != QImode)
    return -1;
  x5 = XEXP (x4, 0);
  if (GET_CODE (x5) != AND
      || GET_MODE (x5) != SImode)
    return -1;
  x6 = XEXP (x2, 0);
  operands[0] = x6;
  switch (pattern411 (x3))
    {
    case 0:
      if (!
#line 10343 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (LSHIFTRT, SImode, operands)
   && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
      == GET_MODE_BITSIZE (SImode)-1))
        return -1;
      return 547; /* *lshrsi3_mask */

    case 1:
      if (!(
#line 10343 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (LSHIFTRT, DImode, operands)
   && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
      == GET_MODE_BITSIZE (DImode)-1) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
        return -1;
      return 549; /* *lshrdi3_mask */

    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, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x2) != UNSPEC
      || XVECLEN (x2, 0) != 1
      || XINT (x2, 1) != 170)
    return -1;
  x3 = XVECEXP (x1, 0, 0);
  x4 = XEXP (x3, 0);
  operands[0] = x4;
  x5 = XEXP (x3, 1);
  x6 = XVECEXP (x5, 0, 0);
  operands[1] = x6;
  x7 = XVECEXP (x2, 0, 0);
  operands[2] = x7;
  if (!const48_operand (operands[2], SImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case V16SFmode:
      if (!register_operand (operands[0], V16SFmode)
          || GET_MODE (x5) != V16SFmode
          || !register_operand (operands[1], V16SFmode)
          || !
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
        return -1;
      return 2618; /* avx512f_getexpv16sf_round */

    case V8SFmode:
      if (!register_operand (operands[0], V8SFmode)
          || GET_MODE (x5) != V8SFmode
          || !register_operand (operands[1], V8SFmode)
          || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8170 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 2622; /* avx512vl_getexpv8sf_round */

    case V4SFmode:
      if (!register_operand (operands[0], V4SFmode)
          || GET_MODE (x5) != V4SFmode
          || !register_operand (operands[1], V4SFmode)
          || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8170 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 2626; /* avx512vl_getexpv4sf_round */

    case V8DFmode:
      if (!register_operand (operands[0], V8DFmode)
          || GET_MODE (x5) != V8DFmode
          || !register_operand (operands[1], V8DFmode)
          || !
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
        return -1;
      return 2630; /* avx512f_getexpv8df_round */

    case V4DFmode:
      if (!register_operand (operands[0], V4DFmode)
          || GET_MODE (x5) != V4DFmode
          || !register_operand (operands[1], V4DFmode)
          || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8170 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 2634; /* avx512vl_getexpv4df_round */

    case V2DFmode:
      if (!register_operand (operands[0], V2DFmode)
          || GET_MODE (x5) != V2DFmode
          || !register_operand (operands[1], V2DFmode)
          || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8170 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 2638; /* avx512vl_getexpv2df_round */

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XVECEXP (x3, 0, 2);
  if (GET_CODE (x4) != MEM)
    return -1;
  x5 = XEXP (x4, 0);
  if (GET_CODE (x5) != UNSPEC
      || XVECLEN (x5, 0) != 3
      || XINT (x5, 1) != 147)
    return -1;
  x6 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x6) != CLOBBER)
    return -1;
  x7 = XVECEXP (x5, 0, 2);
  if (!const1248_operand (x7, SImode))
    return -1;
  x8 = XVECEXP (x3, 0, 0);
  switch (GET_CODE (x8))
    {
    case REG:
    case SUBREG:
      operands[1] = x8;
      x9 = XVECEXP (x3, 0, 1);
      operands[7] = x9;
      operands[6] = x4;
      x10 = XVECEXP (x5, 0, 0);
      operands[4] = x10;
      x11 = XVECEXP (x5, 0, 1);
      operands[3] = x11;
      operands[5] = x7;
      x12 = XEXP (x6, 0);
      operands[2] = x12;
      switch (GET_MODE (operands[0]))
        {
        case V16SImode:
          if (!register_operand (operands[0], V16SImode)
              || GET_MODE (x3) != V16SImode
              || !vsib_mem_operator (operands[6], SImode))
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V16SImode:
              if (!register_operand (operands[1], V16SImode))
                return -1;
              switch (pattern916 (x5, HImode, V16SImode))
                {
                case 0:
                  if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 4661; /* *avx512f_gathersiv16si */

                case 1:
                  if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 4662; /* *avx512f_gathersiv16si */

                default:
                  return -1;
                }

            case V8SImode:
              if (!register_operand (operands[1], V8SImode))
                return -1;
              switch (pattern916 (x5, QImode, V8DImode))
                {
                case 0:
                  if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 4709; /* *avx512f_gatherdiv16si */

                case 1:
                  if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 4710; /* *avx512f_gatherdiv16si */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case V16SFmode:
          if (!register_operand (operands[0], V16SFmode)
              || GET_MODE (x3) != V16SFmode
              || !vsib_mem_operator (operands[6], SFmode))
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V16SFmode:
              if (!register_operand (operands[1], V16SFmode))
                return -1;
              switch (pattern916 (x5, HImode, V16SImode))
                {
                case 0:
                  if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 4663; /* *avx512f_gathersiv16sf */

                case 1:
                  if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 4664; /* *avx512f_gathersiv16sf */

                default:
                  return -1;
                }

            case V8SFmode:
              if (!register_operand (operands[1], V8SFmode))
                return -1;
              switch (pattern916 (x5, QImode, V8DImode))
                {
                case 0:
                  if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 4711; /* *avx512f_gatherdiv16sf */

                case 1:
                  if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 4712; /* *avx512f_gatherdiv16sf */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case V8DImode:
          switch (pattern859 (x3, DImode, V8DImode))
            {
            case 0:
              if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              return 4665; /* *avx512f_gathersiv8di */

            case 1:
              if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              return 4713; /* *avx512f_gatherdiv8di */

            case 2:
              if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              return 4666; /* *avx512f_gathersiv8di */

            case 3:
              if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              return 4714; /* *avx512f_gatherdiv8di */

            default:
              return -1;
            }

        case V8DFmode:
          switch (pattern859 (x3, DFmode, V8DFmode))
            {
            case 0:
              if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              return 4667; /* *avx512f_gathersiv8df */

            case 1:
              if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              return 4715; /* *avx512f_gatherdiv8df */

            case 2:
              if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              return 4668; /* *avx512f_gathersiv8df */

            case 3:
              if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              return 4716; /* *avx512f_gatherdiv8df */

            default:
              return -1;
            }

        case V8SImode:
          if (pattern860 (x3, SImode, V8SImode) != 0)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V8SImode:
              if (!register_operand (operands[1], V8SImode))
                return -1;
              switch (pattern925 (x5, V8SImode))
                {
                case 0:
                  if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                    return -1;
                  return 4669; /* *avx512f_gathersiv8si */

                case 1:
                  if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                    return -1;
                  return 4670; /* *avx512f_gathersiv8si */

                default:
                  return -1;
                }

            case V4SImode:
              if (!register_operand (operands[1], V4SImode))
                return -1;
              switch (pattern925 (x5, V4DImode))
                {
                case 0:
                  if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                    return -1;
                  return 4717; /* *avx512f_gatherdiv8si */

                case 1:
                  if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                    return -1;
                  return 4718; /* *avx512f_gatherdiv8si */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case V8SFmode:
          if (pattern860 (x3, SFmode, V8SFmode) != 0)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V8SFmode:
              if (!register_operand (operands[1], V8SFmode))
                return -1;
              switch (pattern925 (x5, V8SImode))
                {
                case 0:
                  if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                    return -1;
                  return 4671; /* *avx512f_gathersiv8sf */

                case 1:
                  if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                    return -1;
                  return 4672; /* *avx512f_gathersiv8sf */

                default:
                  return -1;
                }

            case V4SFmode:
              if (!register_operand (operands[1], V4SFmode))
                return -1;
              switch (pattern925 (x5, V4DImode))
                {
                case 0:
                  if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                    return -1;
                  return 4719; /* *avx512f_gatherdiv8sf */

                case 1:
                  if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                    return -1;
                  return 4720; /* *avx512f_gatherdiv8sf */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case V4DImode:
          switch (pattern862 (x3, DImode, V4DImode))
            {
            case 0:
              if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              return 4673; /* *avx512f_gathersiv4di */

            case 1:
              if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              return 4721; /* *avx512f_gatherdiv4di */

            case 2:
              if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              return 4674; /* *avx512f_gathersiv4di */

            case 3:
              if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              return 4722; /* *avx512f_gatherdiv4di */

            default:
              return -1;
            }

        case V4DFmode:
          switch (pattern862 (x3, DFmode, V4DFmode))
            {
            case 0:
              if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              return 4675; /* *avx512f_gathersiv4df */

            case 1:
              if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              return 4723; /* *avx512f_gatherdiv4df */

            case 2:
              if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              return 4676; /* *avx512f_gathersiv4df */

            case 3:
              if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              return 4724; /* *avx512f_gatherdiv4df */

            default:
              return -1;
            }

        case V4SImode:
          switch (pattern864 (x3, SImode, V4SImode))
            {
            case 0:
              if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              return 4677; /* *avx512f_gathersiv4si */

            case 1:
              if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              return 4725; /* *avx512f_gatherdiv4si */

            case 2:
              if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              return 4678; /* *avx512f_gathersiv4si */

            case 3:
              if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              return 4726; /* *avx512f_gatherdiv4si */

            default:
              return -1;
            }

        case V4SFmode:
          switch (pattern864 (x3, SFmode, V4SFmode))
            {
            case 0:
              if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              return 4679; /* *avx512f_gathersiv4sf */

            case 1:
              if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              return 4727; /* *avx512f_gatherdiv4sf */

            case 2:
              if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              return 4680; /* *avx512f_gathersiv4sf */

            case 3:
              if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              return 4728; /* *avx512f_gatherdiv4sf */

            default:
              return -1;
            }

        case V2DImode:
          switch (pattern864 (x3, DImode, V2DImode))
            {
            case 0:
              if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              return 4681; /* *avx512f_gathersiv2di */

            case 1:
              if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              return 4729; /* *avx512f_gatherdiv2di */

            case 2:
              if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              return 4682; /* *avx512f_gathersiv2di */

            case 3:
              if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              return 4730; /* *avx512f_gatherdiv2di */

            default:
              return -1;
            }

        case V2DFmode:
          switch (pattern864 (x3, DFmode, V2DFmode))
            {
            case 0:
              if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              return 4683; /* *avx512f_gathersiv2df */

            case 1:
              if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              return 4731; /* *avx512f_gatherdiv2df */

            case 2:
              if (!(
#line 18872 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              return 4684; /* *avx512f_gathersiv2df */

            case 3:
              if (!(
#line 18930 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              return 4732; /* *avx512f_gatherdiv2df */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case PC:
      x9 = XVECEXP (x3, 0, 1);
      operands[6] = x9;
      operands[5] = x4;
      x10 = XVECEXP (x5, 0, 0);
      operands[3] = x10;
      x11 = XVECEXP (x5, 0, 1);
      operands[2] = x11;
      operands[4] = x7;
      x12 = XEXP (x6, 0);
      operands[1] = x12;
      switch (GET_MODE (operands[0]))
        {
        case V16SImode:
          switch (pattern831 (x3, SImode, V16SImode))
            {
            case 0:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              return 4685; /* *avx512f_gathersiv16si_2 */

            case 1:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              return 4686; /* *avx512f_gathersiv16si_2 */

            case 2:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              return 4733; /* *avx512f_gatherdiv16si_2 */

            case 3:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              return 4734; /* *avx512f_gatherdiv16si_2 */

            default:
              return -1;
            }

        case V16SFmode:
          switch (pattern831 (x3, SFmode, V16SFmode))
            {
            case 0:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              return 4687; /* *avx512f_gathersiv16sf_2 */

            case 1:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              return 4688; /* *avx512f_gathersiv16sf_2 */

            case 2:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              return 4735; /* *avx512f_gatherdiv16sf_2 */

            case 3:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              return 4736; /* *avx512f_gatherdiv16sf_2 */

            default:
              return -1;
            }

        case V8DImode:
          switch (pattern833 (x3, DImode, V8DImode))
            {
            case 0:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              return 4689; /* *avx512f_gathersiv8di_2 */

            case 1:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              return 4737; /* *avx512f_gatherdiv8di_2 */

            case 2:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              return 4690; /* *avx512f_gathersiv8di_2 */

            case 3:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              return 4738; /* *avx512f_gatherdiv8di_2 */

            default:
              return -1;
            }

        case V8DFmode:
          switch (pattern833 (x3, DFmode, V8DFmode))
            {
            case 0:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              return 4691; /* *avx512f_gathersiv8df_2 */

            case 1:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              return 4739; /* *avx512f_gatherdiv8df_2 */

            case 2:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              return 4692; /* *avx512f_gathersiv8df_2 */

            case 3:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              return 4740; /* *avx512f_gatherdiv8df_2 */

            default:
              return -1;
            }

        case V8SImode:
          switch (pattern835 (x3, SImode, V8SImode))
            {
            case 0:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              return 4693; /* *avx512f_gathersiv8si_2 */

            case 1:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              return 4741; /* *avx512f_gatherdiv8si_2 */

            case 2:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              return 4694; /* *avx512f_gathersiv8si_2 */

            case 3:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              return 4742; /* *avx512f_gatherdiv8si_2 */

            default:
              return -1;
            }

        case V8SFmode:
          switch (pattern835 (x3, SFmode, V8SFmode))
            {
            case 0:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              return 4695; /* *avx512f_gathersiv8sf_2 */

            case 1:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              return 4743; /* *avx512f_gatherdiv8sf_2 */

            case 2:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              return 4696; /* *avx512f_gathersiv8sf_2 */

            case 3:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              return 4744; /* *avx512f_gatherdiv8sf_2 */

            default:
              return -1;
            }

        case V4DImode:
          switch (pattern837 (x3, DImode, V4DImode))
            {
            case 0:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              return 4697; /* *avx512f_gathersiv4di_2 */

            case 1:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              return 4745; /* *avx512f_gatherdiv4di_2 */

            case 2:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              return 4698; /* *avx512f_gathersiv4di_2 */

            case 3:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              return 4746; /* *avx512f_gatherdiv4di_2 */

            default:
              return -1;
            }

        case V4DFmode:
          switch (pattern837 (x3, DFmode, V4DFmode))
            {
            case 0:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              return 4699; /* *avx512f_gathersiv4df_2 */

            case 1:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              return 4747; /* *avx512f_gatherdiv4df_2 */

            case 2:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              return 4700; /* *avx512f_gathersiv4df_2 */

            case 3:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              return 4748; /* *avx512f_gatherdiv4df_2 */

            default:
              return -1;
            }

        case V4SImode:
          switch (pattern839 (x3, SImode, V4SImode))
            {
            case 0:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              return 4701; /* *avx512f_gathersiv4si_2 */

            case 1:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              return 4749; /* *avx512f_gatherdiv4si_2 */

            case 2:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              return 4702; /* *avx512f_gathersiv4si_2 */

            case 3:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              return 4750; /* *avx512f_gatherdiv4si_2 */

            default:
              return -1;
            }

        case V4SFmode:
          switch (pattern839 (x3, SFmode, V4SFmode))
            {
            case 0:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              return 4703; /* *avx512f_gathersiv4sf_2 */

            case 1:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              return 4751; /* *avx512f_gatherdiv4sf_2 */

            case 2:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              return 4704; /* *avx512f_gathersiv4sf_2 */

            case 3:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              return 4752; /* *avx512f_gatherdiv4sf_2 */

            default:
              return -1;
            }

        case V2DImode:
          switch (pattern839 (x3, DImode, V2DImode))
            {
            case 0:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              return 4705; /* *avx512f_gathersiv2di_2 */

            case 1:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              return 4753; /* *avx512f_gatherdiv2di_2 */

            case 2:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              return 4706; /* *avx512f_gathersiv2di_2 */

            case 3:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              return 4754; /* *avx512f_gatherdiv2di_2 */

            default:
              return -1;
            }

        case V2DFmode:
          switch (pattern839 (x3, DFmode, V2DFmode))
            {
            case 0:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              return 4707; /* *avx512f_gathersiv2df_2 */

            case 1:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return -1;
              return 4755; /* *avx512f_gatherdiv2df_2 */

            case 2:
              if (!(
#line 18891 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              return 4708; /* *avx512f_gathersiv2df_2 */

            case 3:
              if (!(
#line 18949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return -1;
              return 4756; /* *avx512f_gatherdiv2df_2 */

            default:
              return -1;
            }

        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, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  switch (XINT (x3, 1))
    {
    case 85:
      if (pattern150 (x1) != 0)
        return -1;
      x4 = XVECEXP (x3, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x3, 0, 1);
      operands[2] = x5;
      switch (GET_MODE (operands[0]))
        {
        case SImode:
          if (pattern646 (x3, SImode) != 0
              || !
#line 13157 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI))
            return -1;
          return 750; /* bmi_bextr_si */

        case DImode:
          if (pattern646 (x3, DImode) != 0
              || !(
#line 13157 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          return 751; /* bmi_bextr_di */

        default:
          return -1;
        }

    case 51:
      if (GET_MODE (x3) != XFmode)
        return -1;
      x6 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x6) != CLOBBER)
        return -1;
      x7 = XEXP (x2, 0);
      operands[0] = x7;
      if (!register_operand (operands[0], XFmode))
        return -1;
      x8 = XEXP (x6, 0);
      operands[3] = x8;
      if (!scratch_operand (operands[3], XFmode))
        return -1;
      x4 = XVECEXP (x3, 0, 0);
      switch (GET_CODE (x4))
        {
        case REG:
        case SUBREG:
          operands[1] = x4;
          if (!register_operand (operands[1], XFmode))
            return -1;
          x5 = XVECEXP (x3, 0, 1);
          operands[2] = x5;
          if (!register_operand (operands[2], XFmode)
              || !
#line 14963 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations))
            return -1;
          return 884; /* *fpatanxf3_i387 */

        case FLOAT_EXTEND:
          if (GET_MODE (x4) != XFmode)
            return -1;
          x5 = XVECEXP (x3, 0, 1);
          if (GET_CODE (x5) != FLOAT_EXTEND
              || GET_MODE (x5) != XFmode)
            return -1;
          x9 = XEXP (x4, 0);
          operands[1] = x9;
          x10 = XEXP (x5, 0);
          operands[2] = x10;
          switch (GET_MODE (operands[1]))
            {
            case SFmode:
              if (!register_operand (operands[1], SFmode)
                  || !register_operand (operands[2], SFmode)
                  || !
#line 14978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && (!(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)
       || TARGET_MIX_SSE_I387)
   && flag_unsafe_math_optimizations))
                return -1;
              return 885; /* fpatan_extendsfxf3_i387 */

            case DFmode:
              if (!register_operand (operands[1], DFmode)
                  || !register_operand (operands[2], DFmode)
                  || !
#line 14978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && (!(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)
       || TARGET_MIX_SSE_I387)
   && flag_unsafe_math_optimizations))
                return -1;
              return 886; /* fpatan_extenddfxf3_i387 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 52:
      switch (pattern239 (x1))
        {
        case 0:
          if (!
#line 15125 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations))
            return -1;
          return 887; /* fyl2xxf3_i387 */

        case 1:
          if (!
#line 15139 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && (!(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)
       || TARGET_MIX_SSE_I387)
   && flag_unsafe_math_optimizations))
            return -1;
          return 888; /* fyl2x_extendsfxf3_i387 */

        case 2:
          if (!
#line 15139 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && (!(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)
       || TARGET_MIX_SSE_I387)
   && flag_unsafe_math_optimizations))
            return -1;
          return 889; /* fyl2x_extenddfxf3_i387 */

        default:
          return -1;
        }

    case 53:
      switch (pattern239 (x1))
        {
        case 0:
          if (!
#line 15244 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations))
            return -1;
          return 890; /* fyl2xp1xf3_i387 */

        case 1:
          if (!
#line 15258 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && (!(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)
       || TARGET_MIX_SSE_I387)
   && flag_unsafe_math_optimizations))
            return -1;
          return 891; /* fyl2xp1_extendsfxf3_i387 */

        case 2:
          if (!
#line 15258 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && (!(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)
       || TARGET_MIX_SSE_I387)
   && flag_unsafe_math_optimizations))
            return -1;
          return 892; /* fyl2xp1_extenddfxf3_i387 */

        default:
          return -1;
        }

    case 69:
      if (pattern240 (x1, 70, XFmode, UNSPEC, 2) != 0)
        return -1;
      x7 = XEXP (x2, 0);
      operands[0] = x7;
      if (!register_operand (operands[0], XFmode)
          || pattern647 (x1) != 0
          || !
#line 15410 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations))
        return -1;
      return 897; /* fscalexf4_i387 */

    case 78:
      switch (pattern241 (x1))
        {
        case 0:
          if (!memory_operand (operands[1], SImode)
              || !memory_operand (operands[2], SImode)
              || !scratch_operand (operands[3], SImode)
              || !(
#line 18859 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_SSP_TLS_GUARD) && 
#line 1189 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ptr_mode == SImode)))
            return -1;
          return 1019; /* stack_protect_test_si */

        case 1:
          if (!memory_operand (operands[1], DImode)
              || !memory_operand (operands[2], DImode)
              || !scratch_operand (operands[3], DImode)
              || !(
#line 18859 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_SSP_TLS_GUARD) && 
#line 1189 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ptr_mode == DImode)))
            return -1;
          return 1020; /* stack_protect_test_di */

        default:
          return -1;
        }

    case 80:
      switch (pattern241 (x1))
        {
        case 0:
          if (!memory_operand (operands[1], SImode)
              || !const_int_operand (operands[2], SImode)
              || !scratch_operand (operands[3], SImode)
              || !
#line 1189 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ptr_mode == SImode))
            return -1;
          return 1021; /* stack_tls_protect_test_si */

        case 1:
          if (!memory_operand (operands[1], DImode)
              || !const_int_operand (operands[2], DImode)
              || !scratch_operand (operands[3], DImode)
              || !
#line 1189 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ptr_mode == DImode))
            return -1;
          return 1022; /* stack_tls_protect_test_di */

        default:
          return -1;
        }

    case 48:
      switch (pattern243 (x1))
        {
        case 0:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2001 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && 1 && (V16SFmode == V16SFmode
									      || V16SFmode == V8DFmode
									      || V16SFmode == V8DImode
									      || V16SFmode == V16SImode)) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 1598; /* ieee_maxv16sf3_round */

        case 1:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2001 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && 1 && (V8DFmode == V16SFmode
									      || V8DFmode == V8DFmode
									      || V8DFmode == V8DImode
									      || V8DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 1614; /* ieee_maxv8df3_round */

        default:
          return -1;
        }

    case 47:
      switch (pattern243 (x1))
        {
        case 0:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2001 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && 1 && (V16SFmode == V16SFmode
									      || V16SFmode == V8DFmode
									      || V16SFmode == V8DImode
									      || V16SFmode == V16SImode)) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 1602; /* ieee_minv16sf3_round */

        case 1:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2001 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && 1 && (V8DFmode == V16SFmode
									      || V8DFmode == V8DFmode
									      || V8DFmode == V8DImode
									      || V8DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 1618; /* ieee_minv8df3_round */

        default:
          return -1;
        }

    case 159:
      x6 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x6) != UNSPEC
          || XVECLEN (x6, 0) != 1
          || XINT (x6, 1) != 170)
        return -1;
      x7 = XEXP (x2, 0);
      operands[0] = x7;
      x4 = XVECEXP (x3, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x3, 0, 1);
      operands[2] = x5;
      x11 = XVECEXP (x6, 0, 0);
      operands[3] = x11;
      if (!const_4_or_8_to_11_operand (operands[3], SImode))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V16SFmode:
          if (pattern680 (x3, V16SFmode) != 0
              || !
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 2576; /* avx512f_scalefv16sf_round */

        case V8SFmode:
          if (pattern680 (x3, V8SFmode) != 0
              || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8115 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 2580; /* avx512vl_scalefv8sf_round */

        case V4SFmode:
          if (pattern680 (x3, V4SFmode) != 0
              || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8115 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 2584; /* avx512vl_scalefv4sf_round */

        case V8DFmode:
          if (pattern680 (x3, V8DFmode) != 0
              || !
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 2588; /* avx512f_scalefv8df_round */

        case V4DFmode:
          if (pattern680 (x3, V4DFmode) != 0
              || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8115 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 2592; /* avx512vl_scalefv4df_round */

        case V2DFmode:
          if (pattern680 (x3, V2DFmode) != 0
              || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8115 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 2596; /* avx512vl_scalefv2df_round */

        default:
          return -1;
        }

    case 81:
      x6 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x6) != UNSPEC
          || XVECLEN (x6, 0) != 1
          || XINT (x6, 1) != 170)
        return -1;
      x7 = XEXP (x2, 0);
      operands[0] = x7;
      x4 = XVECEXP (x3, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x3, 0, 1);
      operands[2] = x5;
      if (!const_0_to_255_operand (operands[2], SImode))
        return -1;
      switch (pattern593 (x1))
        {
        case 0:
          if (!
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 2706; /* avx512f_rndscalev16sf_round */

        case 1:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8334 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 2710; /* avx512vl_rndscalev8sf_round */

        case 2:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8334 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 2714; /* avx512vl_rndscalev4sf_round */

        case 3:
          if (!
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 2718; /* avx512f_rndscalev8df_round */

        case 4:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8334 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 2722; /* avx512vl_rndscalev4df_round */

        case 5:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8334 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 2726; /* avx512vl_rndscalev2df_round */

        default:
          return -1;
        }

    case 155:
      x7 = XEXP (x2, 0);
      if (GET_CODE (x7) != MEM)
        return -1;
      operands[5] = x7;
      x12 = XEXP (x7, 0);
      if (GET_CODE (x12) != UNSPEC
          || XVECLEN (x12, 0) != 3
          || XINT (x12, 1) != 147)
        return -1;
      x6 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x6) != CLOBBER)
        return -1;
      x13 = XVECEXP (x12, 0, 0);
      operands[0] = x13;
      x14 = XVECEXP (x12, 0, 1);
      operands[2] = x14;
      x15 = XVECEXP (x12, 0, 2);
      operands[4] = x15;
      if (!const1248_operand (operands[4], SImode))
        return -1;
      x4 = XVECEXP (x3, 0, 0);
      operands[6] = x4;
      x5 = XVECEXP (x3, 0, 1);
      operands[3] = x5;
      x8 = XEXP (x6, 0);
      operands[1] = x8;
      switch (GET_MODE (operands[5]))
        {
        case V16SImode:
          if (!vsib_mem_operator (operands[5], V16SImode)
              || GET_MODE (x3) != V16SImode)
            return -1;
          switch (GET_MODE (x12))
            {
            case SImode:
              switch (pattern870 (SImode))
                {
                case 0:
                  if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 4757; /* *avx512f_scattersiv16si */

                case 1:
                  if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 4781; /* *avx512f_scatterdiv16si */

                default:
                  return -1;
                }

            case DImode:
              switch (pattern870 (DImode))
                {
                case 0:
                  if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 4758; /* *avx512f_scattersiv16si */

                case 1:
                  if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 4782; /* *avx512f_scatterdiv16si */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case V16SFmode:
          if (!vsib_mem_operator (operands[5], V16SFmode)
              || GET_MODE (x3) != V16SFmode)
            return -1;
          switch (GET_MODE (x12))
            {
            case SImode:
              switch (pattern871 (SImode))
                {
                case 0:
                  if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 4759; /* *avx512f_scattersiv16sf */

                case 1:
                  if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 4783; /* *avx512f_scatterdiv16sf */

                default:
                  return -1;
                }

            case DImode:
              switch (pattern871 (DImode))
                {
                case 0:
                  if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 4760; /* *avx512f_scattersiv16sf */

                case 1:
                  if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 4784; /* *avx512f_scatterdiv16sf */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case V8DImode:
          switch (pattern797 (x2, V8DImode))
            {
            case 0:
              if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              return 4761; /* *avx512f_scattersiv8di */

            case 1:
              if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              return 4785; /* *avx512f_scatterdiv8di */

            case 2:
              if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              return 4762; /* *avx512f_scattersiv8di */

            case 3:
              if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              return 4786; /* *avx512f_scatterdiv8di */

            default:
              return -1;
            }

        case V8DFmode:
          switch (pattern797 (x2, V8DFmode))
            {
            case 0:
              if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              return 4763; /* *avx512f_scattersiv8df */

            case 1:
              if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              return 4787; /* *avx512f_scatterdiv8df */

            case 2:
              if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              return 4764; /* *avx512f_scattersiv8df */

            case 3:
              if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              return 4788; /* *avx512f_scatterdiv8df */

            default:
              return -1;
            }

        case V8SImode:
          switch (pattern798 (x2, V8SImode))
            {
            case 0:
              switch (pattern900 (SImode))
                {
                case 0:
                  if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 4765; /* *avx512f_scattersiv8si */

                case 1:
                  if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && (((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 4789; /* *avx512f_scatterdiv8si */

                default:
                  return -1;
                }

            case 1:
              switch (pattern900 (DImode))
                {
                case 0:
                  if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 4766; /* *avx512f_scattersiv8si */

                case 1:
                  if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && (((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 4790; /* *avx512f_scatterdiv8si */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case V8SFmode:
          switch (pattern798 (x2, V8SFmode))
            {
            case 0:
              switch (pattern901 (SImode))
                {
                case 0:
                  if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 4767; /* *avx512f_scattersiv8sf */

                case 1:
                  if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && (((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 4791; /* *avx512f_scatterdiv8sf */

                default:
                  return -1;
                }

            case 1:
              switch (pattern901 (DImode))
                {
                case 0:
                  if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 4768; /* *avx512f_scattersiv8sf */

                case 1:
                  if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && (((
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 568 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 4792; /* *avx512f_scatterdiv8sf */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case V4DImode:
          switch (pattern800 (x2, V4DImode))
            {
            case 0:
              if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4769; /* *avx512f_scattersiv4di */

            case 1:
              if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && (((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4793; /* *avx512f_scatterdiv4di */

            case 2:
              if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4770; /* *avx512f_scattersiv4di */

            case 3:
              if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && (((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4794; /* *avx512f_scatterdiv4di */

            default:
              return -1;
            }

        case V4DFmode:
          switch (pattern800 (x2, V4DFmode))
            {
            case 0:
              if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4771; /* *avx512f_scattersiv4df */

            case 1:
              if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && (((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4795; /* *avx512f_scatterdiv4df */

            case 2:
              if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4772; /* *avx512f_scattersiv4df */

            case 3:
              if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && (((
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 569 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4796; /* *avx512f_scatterdiv4df */

            default:
              return -1;
            }

        case V4SImode:
          switch (pattern802 (x2, V4SImode))
            {
            case 0:
              if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4773; /* *avx512f_scattersiv4si */

            case 1:
              if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && (((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4797; /* *avx512f_scatterdiv4si */

            case 2:
              if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4774; /* *avx512f_scattersiv4si */

            case 3:
              if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && (((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4798; /* *avx512f_scatterdiv4si */

            default:
              return -1;
            }

        case V4SFmode:
          switch (pattern802 (x2, V4SFmode))
            {
            case 0:
              if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4775; /* *avx512f_scattersiv4sf */

            case 1:
              if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && (((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4799; /* *avx512f_scatterdiv4sf */

            case 2:
              if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4776; /* *avx512f_scattersiv4sf */

            case 3:
              if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && (((
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4800; /* *avx512f_scatterdiv4sf */

            default:
              return -1;
            }

        case V2DImode:
          switch (pattern802 (x2, V2DImode))
            {
            case 0:
              if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4777; /* *avx512f_scattersiv2di */

            case 1:
              if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && (((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4801; /* *avx512f_scatterdiv2di */

            case 2:
              if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4778; /* *avx512f_scattersiv2di */

            case 3:
              if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && (((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4802; /* *avx512f_scatterdiv2di */

            default:
              return -1;
            }

        case V2DFmode:
          switch (pattern802 (x2, V2DFmode))
            {
            case 0:
              if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4779; /* *avx512f_scattersiv2df */

            case 1:
              if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && (((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4803; /* *avx512f_scatterdiv2df */

            case 2:
              if (!(
#line 18994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && ((((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4780; /* *avx512f_scattersiv2df */

            case 3:
              if (!(
#line 19030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && (((
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 571 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 4804; /* *avx512f_scatterdiv2df */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 162:
      x6 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x6) != UNSPEC
          || XVECLEN (x6, 0) != 1
          || XINT (x6, 1) != 170)
        return -1;
      x7 = XEXP (x2, 0);
      operands[0] = x7;
      x4 = XVECEXP (x3, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x3, 0, 1);
      operands[2] = x5;
      if (!const_0_to_15_operand (operands[2], SImode))
        return -1;
      switch (pattern593 (x1))
        {
        case 0:
          if (!
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 4876; /* avx512f_getmantv16sf_round */

        case 1:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 19150 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 4880; /* avx512vl_getmantv8sf_round */

        case 2:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 19150 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 4884; /* avx512vl_getmantv4sf_round */

        case 3:
          if (!
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 4888; /* avx512f_getmantv8df_round */

        case 4:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 19150 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 4892; /* avx512vl_getmantv4df_round */

        case 5:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 19150 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 4896; /* avx512vl_getmantv2df_round */

        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];
  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);
  switch (XINT (x3, 1))
    {
    case 14:
      if (GET_MODE (x3) != SImode
          || pattern152 (x1) != 0)
        return -1;
      x4 = XVECEXP (x3, 0, 0);
      switch (GET_CODE (x4))
        {
        case CONST_INT:
          if (XWINT (x4, 0) != 0LL
              || !
#line 12592 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT))
            return -1;
          return 706; /* *set_got */

        case LABEL_REF:
          x5 = XEXP (x4, 0);
          operands[1] = x5;
          if (!
#line 12614 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT))
            return -1;
          return 707; /* *set_got_labelled */

        default:
          return -1;
        }

    case 84:
      switch (pattern229 (x1, pnum_clobbers))
        {
        case 0:
          if (
#line 12949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI
   && TARGET_AVOID_FALSE_DEP_FOR_BMI && optimize_function_for_speed_p (cfun)))
            return 726; /* *bmi_tzcnt_si_falsedep_1 */
          if (!
#line 12984 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI))
            return -1;
          return 731; /* *bmi_tzcnt_si */

        case 1:
          if ((
#line 12949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI
   && TARGET_AVOID_FALSE_DEP_FOR_BMI && optimize_function_for_speed_p (cfun)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return 727; /* *bmi_tzcnt_di_falsedep_1 */
          if (!(
#line 12984 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI) && 
#line 991 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          return 732; /* *bmi_tzcnt_di */

        case 2:
          if (!
#line 12984 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI))
            return -1;
          return 730; /* *bmi_tzcnt_hi */

        case 3:
          if (!
#line 12971 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI))
            return -1;
          *pnum_clobbers = 1;
          return 728; /* *bmi_tzcnt_si_falsedep */

        case 4:
          if (!(
#line 12971 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          *pnum_clobbers = 1;
          return 729; /* *bmi_tzcnt_di_falsedep */

        default:
          return -1;
        }

    case 83:
      switch (pattern229 (x1, pnum_clobbers))
        {
        case 0:
          if (
#line 13082 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LZCNT
   && TARGET_AVOID_FALSE_DEP_FOR_BMI && optimize_function_for_speed_p (cfun)))
            return 739; /* *lzcnt_si_falsedep_1 */
          if (!
#line 13117 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LZCNT))
            return -1;
          return 744; /* *lzcnt_si */

        case 1:
          if ((
#line 13082 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LZCNT
   && TARGET_AVOID_FALSE_DEP_FOR_BMI && optimize_function_for_speed_p (cfun)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return 740; /* *lzcnt_di_falsedep_1 */
          if (!(
#line 13117 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LZCNT) && 
#line 991 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          return 745; /* *lzcnt_di */

        case 2:
          if (!
#line 13117 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LZCNT))
            return -1;
          return 743; /* *lzcnt_hi */

        case 3:
          if (!
#line 13104 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LZCNT))
            return -1;
          *pnum_clobbers = 1;
          return 741; /* *lzcnt_si_falsedep */

        case 4:
          if (!(
#line 13104 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LZCNT) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          *pnum_clobbers = 1;
          return 742; /* *lzcnt_di_falsedep */

        default:
          return -1;
        }

    case 27:
      if (pattern230 (x2) != 0)
        return -1;
      x6 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x6) != CLOBBER)
        return -1;
      x4 = XVECEXP (x3, 0, 0);
      operands[1] = x4;
      if (!register_operand (operands[1], HImode))
        return -1;
      x7 = XEXP (x6, 0);
      operands[0] = x7;
      if (!scratch_operand (operands[0], HImode)
          || !
#line 13723 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(! TARGET_POPCNT))
        return -1;
      return 808; /* *parityhi2_cmp */

    case 65:
      switch (pattern232 (x1, 66))
        {
        case 0:
          if (!
#line 14809 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations))
            return -1;
          return 878; /* sincosxf3 */

        case 1:
          if (!
#line 14843 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && (!(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)
       || TARGET_MIX_SSE_I387)
   && flag_unsafe_math_optimizations))
            return -1;
          return 879; /* sincos_extendsfxf3_i387 */

        case 2:
          if (!
#line 14843 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && (!(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)
       || TARGET_MIX_SSE_I387)
   && flag_unsafe_math_optimizations))
            return -1;
          return 880; /* sincos_extenddfxf3_i387 */

        default:
          return -1;
        }

    case 67:
      switch (pattern232 (x1, 68))
        {
        case 0:
          if (!
#line 15302 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations))
            return -1;
          return 893; /* fxtractxf3_i387 */

        case 1:
          if (!
#line 15316 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && (!(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)
       || TARGET_MIX_SSE_I387)
   && flag_unsafe_math_optimizations))
            return -1;
          return 894; /* fxtract_extendsfxf3_i387 */

        case 2:
          if (!
#line 15316 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && (!(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)
       || TARGET_MIX_SSE_I387)
   && flag_unsafe_math_optimizations))
            return -1;
          return 895; /* fxtract_extenddfxf3_i387 */

        default:
          return -1;
        }

    case 55:
      x6 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x6) != CLOBBER)
        return -1;
      x8 = XEXP (x2, 0);
      operands[0] = x8;
      x4 = XVECEXP (x3, 0, 0);
      operands[1] = x4;
      if (!register_operand (operands[1], XFmode))
        return -1;
      x7 = XEXP (x6, 0);
      operands[2] = x7;
      switch (GET_CODE (operands[2]))
        {
        case REG:
        case SCRATCH:
          if (!scratch_operand (operands[2], XFmode)
              || !memory_operand (operands[0], DImode)
              || GET_MODE (x3) != DImode
              || !
#line 15814 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387))
            return -1;
          return 902; /* fistdi2 */

        case SUBREG:
        case MEM:
          switch (GET_MODE (operands[0]))
            {
            case DImode:
              if (pnum_clobbers == NULL
                  || !nonimmediate_operand (operands[0], DImode)
                  || GET_MODE (x3) != DImode
                  || !memory_operand (operands[2], DImode)
                  || !
#line 15825 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387))
                return -1;
              *pnum_clobbers = 1;
              return 903; /* fistdi2_with_temp */

            case HImode:
              if (!register_operand (operands[0], HImode)
                  || GET_MODE (x3) != HImode
                  || !memory_operand (operands[2], HImode)
                  || !
#line 15883 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387))
                return -1;
              return 908; /* fisthi2_with_temp */

            case SImode:
              if (!register_operand (operands[0], SImode)
                  || GET_MODE (x3) != SImode
                  || !memory_operand (operands[2], SImode)
                  || !
#line 15883 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387))
                return -1;
              return 909; /* fistsi2_with_temp */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 59:
      if (pattern233 (x1) != 0
          || !
#line 15979 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations
   && can_create_pseudo_p ()))
        return -1;
      return 910; /* frndintxf2_floor */

    case 60:
      if (pattern233 (x1) != 0
          || !
#line 15979 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations
   && can_create_pseudo_p ()))
        return -1;
      return 911; /* frndintxf2_ceil */

    case 61:
      if (pattern233 (x1) != 0
          || !
#line 15979 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations
   && can_create_pseudo_p ()))
        return -1;
      return 912; /* frndintxf2_trunc */

    case 62:
      if (pattern233 (x1) != 0
          || !
#line 16081 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations
   && can_create_pseudo_p ()))
        return -1;
      return 916; /* frndintxf2_mask_pm */

    case 63:
      switch (pattern236 (x1))
        {
        case 0:
          if (!
#line 16146 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations
   && can_create_pseudo_p ()))
            return -1;
          return 918; /* *fisthi2_floor_1 */

        case 1:
          if (!
#line 16146 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations
   && can_create_pseudo_p ()))
            return -1;
          return 920; /* *fistsi2_floor_1 */

        case 2:
          if (!
#line 16146 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations
   && can_create_pseudo_p ()))
            return -1;
          return 922; /* *fistdi2_floor_1 */

        default:
          return -1;
        }

    case 64:
      switch (pattern236 (x1))
        {
        case 0:
          if (!
#line 16146 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations
   && can_create_pseudo_p ()))
            return -1;
          return 919; /* *fisthi2_ceil_1 */

        case 1:
          if (!
#line 16146 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations
   && can_create_pseudo_p ()))
            return -1;
          return 921; /* *fistsi2_ceil_1 */

        case 2:
          if (!
#line 16146 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations
   && can_create_pseudo_p ()))
            return -1;
          return 923; /* *fistdi2_ceil_1 */

        default:
          return -1;
        }

    case 77:
      if (pnum_clobbers == NULL)
        return -1;
      x6 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x6) != SET)
        return -1;
      x9 = XEXP (x6, 1);
      if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      switch (pattern407 (x1))
        {
        case 0:
          if (!(
#line 18811 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_SSP_TLS_GUARD) && 
#line 1189 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ptr_mode == SImode)))
            return -1;
          *pnum_clobbers = 1;
          return 1015; /* stack_protect_set_si */

        case 1:
          if (!(
#line 18811 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_SSP_TLS_GUARD) && 
#line 1189 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ptr_mode == DImode)))
            return -1;
          *pnum_clobbers = 1;
          return 1016; /* stack_protect_set_di */

        default:
          return -1;
        }

    case 79:
      if (pnum_clobbers == NULL)
        return -1;
      x6 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x6) != SET)
        return -1;
      x9 = XEXP (x6, 1);
      if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      switch (pattern409 (x1))
        {
        case 0:
          if (!
#line 1189 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ptr_mode == SImode))
            return -1;
          *pnum_clobbers = 1;
          return 1017; /* stack_tls_protect_set_si */

        case 1:
          if (!
#line 1189 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ptr_mode == DImode))
            return -1;
          *pnum_clobbers = 1;
          return 1018; /* stack_tls_protect_set_di */

        default:
          return -1;
        }

    case 92:
      x4 = XVECEXP (x3, 0, 0);
      if (GET_CODE (x4) != MEM)
        return -1;
      operands[3] = x4;
      x5 = XEXP (x4, 0);
      if (GET_CODE (x5) != UNSPEC
          || XVECLEN (x5, 0) != 2
          || XINT (x5, 1) != 93)
        return -1;
      x6 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x6) != USE)
        return -1;
      x7 = XEXP (x6, 0);
      if (GET_CODE (x7) != MEM
          || GET_MODE (x7) != BLKmode)
        return -1;
      x8 = XEXP (x2, 0);
      operands[0] = x8;
      x10 = XVECEXP (x5, 0, 0);
      operands[1] = x10;
      x11 = XVECEXP (x5, 0, 1);
      operands[2] = x11;
      x12 = XEXP (x7, 0);
      if (!rtx_equal_p (x12, operands[1]))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case BND32mode:
          if (pattern783 (x3, SImode, BND32mode) != 0
              || !(
#line 19567 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_MPX) && 
#line 1047 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_LP64)))
            return -1;
          return 1103; /* *bnd32_ldx */

        case BND64mode:
          if (pattern783 (x3, DImode, BND64mode) != 0
              || !(
#line 19567 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_MPX) && 
#line 1048 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LP64)))
            return -1;
          return 1104; /* *bnd64_ldx */

        default:
          return -1;
        }

    case 40:
      if (pattern237 (x1) != 0)
        return -1;
      x4 = XVECEXP (x3, 0, 0);
      switch (GET_CODE (x4))
        {
        case VEC_SELECT:
          switch (pattern592 (x3))
            {
            case 0:
              if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4292 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE)))
                return -1;
              return 2141; /* sse_cvtss2si_round */

            case 1:
              if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4787 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
                return -1;
              return 2248; /* sse2_cvtsd2si_round */

            case 2:
              if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4322 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && TARGET_64BIT)))
                return -1;
              return 2144; /* sse_cvtss2siq_round */

            case 3:
              if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4818 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && TARGET_64BIT)))
                return -1;
              return 2251; /* sse2_cvtsd2siq_round */

            default:
              return -1;
            }

        case REG:
        case SUBREG:
        case MEM:
          operands[1] = x4;
          switch (GET_MODE (operands[0]))
            {
            case V16SImode:
              if (!register_operand (operands[0], V16SImode)
                  || GET_MODE (x3) != V16SImode
                  || !register_operand (operands[1], V16SFmode)
                  || !
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 2182; /* avx512f_fix_notruncv16sfv16si_round */

            case V8DImode:
              if (!register_operand (operands[0], V8DImode)
                  || GET_MODE (x3) != V8DImode)
                return -1;
              switch (GET_MODE (operands[1]))
                {
                case V8SFmode:
                  if (!nonimmediate_operand (operands[1], V8SFmode)
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4496 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && (V8DImode == V16SFmode
							      || V8DImode == V8DFmode
							      || V8DImode == V8DImode
							      || V8DImode == V16SImode))))
                    return -1;
                  return 2198; /* *avx512dq_cvtps2qqv8di_round */

                case V8DFmode:
                  if (!register_operand (operands[1], V8DFmode)
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 5175 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && (V8DFmode == V16SFmode
							      || V8DFmode == V8DFmode
							      || V8DFmode == V8DImode
							      || V8DFmode == V16SImode))))
                    return -1;
                  return 2363; /* fix_notruncv8dfv8di2_round */

                default:
                  return -1;
                }

            case V8SImode:
              if (!register_operand (operands[0], V8SImode)
                  || GET_MODE (x3) != V8SImode
                  || !register_operand (operands[1], V8DFmode)
                  || !
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 2314; /* avx512f_cvtpd2dq512_round */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 151:
      if (pattern237 (x1) != 0)
        return -1;
      x4 = XVECEXP (x3, 0, 0);
      switch (GET_CODE (x4))
        {
        case REG:
        case SUBREG:
        case MEM:
          operands[1] = x4;
          switch (GET_MODE (operands[0]))
            {
            case V16SImode:
              if (!register_operand (operands[0], V16SImode)
                  || GET_MODE (x3) != V16SImode
                  || !nonimmediate_operand (operands[1], V16SFmode)
                  || !
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 2186; /* *avx512f_ufix_notruncv16sfv16si_round */

            case V8SImode:
              switch (pattern679 (x3, V8SImode))
                {
                case 0:
                  if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4486 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 343 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 2190; /* *avx512vl_ufix_notruncv8sfv8si_round */

                case 1:
                  if (!
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                    return -1;
                  return 2323; /* ufix_notruncv8dfv8si2_round */

                default:
                  return -1;
                }

            case V4SImode:
              if (!register_operand (operands[0], V4SImode)
                  || GET_MODE (x3) != V4SImode)
                return -1;
              switch (GET_MODE (operands[1]))
                {
                case V4SFmode:
                  if (!nonimmediate_operand (operands[1], V4SFmode)
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4486 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 343 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 2194; /* *avx512vl_ufix_notruncv4sfv4si_round */

                case V4DFmode:
                  if (!nonimmediate_operand (operands[1], V4DFmode)
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 5102 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 247 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 2327; /* ufix_notruncv4dfv4si2_round */

                default:
                  return -1;
                }

            case V8DImode:
              switch (pattern679 (x3, V8DImode))
                {
                case 0:
                  if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4519 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && (V8DImode == V16SFmode
							      || V8DImode == V8DFmode
							      || V8DImode == V8DImode
							      || V8DImode == V16SImode))))
                    return -1;
                  return 2206; /* *avx512dq_cvtps2uqqv8di_round */

                case 1:
                  if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 5186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && (V8DFmode == V16SFmode
							      || V8DFmode == V8DFmode
							      || V8DFmode == V8DImode
							      || V8DFmode == V16SImode))))
                    return -1;
                  return 2371; /* ufix_notruncv8dfv8di2_round */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case VEC_SELECT:
          switch (pattern592 (x3))
            {
            case 0:
              if (!
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 2232; /* avx512f_vcvtss2usi_round */

            case 1:
              if (!
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 2240; /* avx512f_vcvtsd2usi_round */

            case 2:
              if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4700 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && TARGET_64BIT)))
                return -1;
              return 2234; /* avx512f_vcvtss2usiq_round */

            case 3:
              if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4750 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && TARGET_64BIT)))
                return -1;
              return 2242; /* avx512f_vcvtsd2usiq_round */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 161:
      return recog_208 (x1, insn, pnum_clobbers);

    case 173:
      switch (pattern238 (x1))
        {
        case 0:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 15997 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512ER)))
            return -1;
          return 3992; /* avx512er_exp2v16sf_round */

        case 1:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 15997 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512ER)))
            return -1;
          return 3996; /* avx512er_exp2v8df_round */

        default:
          return -1;
        }

    case 174:
      switch (pattern238 (x1))
        {
        case 0:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 16008 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512ER)))
            return -1;
          return 4000; /* *avx512er_rcp28v16sf_round */

        case 1:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 16008 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512ER)))
            return -1;
          return 4004; /* *avx512er_rcp28v8df_round */

        default:
          return -1;
        }

    case 175:
      switch (pattern238 (x1))
        {
        case 0:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 16034 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512ER)))
            return -1;
          return 4012; /* *avx512er_rsqrt28v16sf_round */

        case 1:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 16034 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512ER)))
            return -1;
          return 4016; /* *avx512er_rsqrt28v8df_round */

        default:
          return -1;
        }

    case 142:
      if (pattern105 (x1, V16SFmode) != 0)
        return -1;
      x4 = XVECEXP (x3, 0, 0);
      operands[1] = x4;
      if (!register_operand (operands[1], V16HImode))
        return -1;
      x6 = XVECEXP (x1, 0, 1);
      x13 = XVECEXP (x6, 0, 0);
      operands[2] = x13;
      if (!const48_operand (operands[2], SImode)
          || !
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
        return -1;
      return 4579; /* *avx512f_vcvtph2ps512_round */

    case 197:
      if (GET_MODE (x3) != BLKmode
          || pattern94 (x1) != 0)
        return -1;
      x4 = XVECEXP (x3, 0, 0);
      if (!rtx_equal_p (x4, operands[0])
          || !
#line 100 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
(!(TARGET_64BIT || TARGET_SSE2)))
        return -1;
      return 4973; /* mfence_nosse */

    case 200:
      if (pnum_clobbers == NULL
          || GET_MODE (x3) != DImode)
        return -1;
      x6 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x6) != CLOBBER)
        return -1;
      x8 = XEXP (x2, 0);
      operands[0] = x8;
      if (!nonimmediate_operand (operands[0], DImode))
        return -1;
      x4 = XVECEXP (x3, 0, 0);
      operands[1] = x4;
      if (!memory_operand (operands[1], DImode))
        return -1;
      x7 = XEXP (x6, 0);
      operands[2] = x7;
      if (!memory_operand (operands[2], DImode)
          || !
#line 180 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
(!TARGET_64BIT && (TARGET_80387 || TARGET_SSE)))
        return -1;
      *pnum_clobbers = 1;
      return 4974; /* atomic_loaddi_fpu */

    case 201:
      if (pnum_clobbers == NULL
          || GET_MODE (x3) != DImode)
        return -1;
      x6 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x6) != CLOBBER)
        return -1;
      x8 = XEXP (x2, 0);
      operands[0] = x8;
      if (!memory_operand (operands[0], DImode))
        return -1;
      x4 = XVECEXP (x3, 0, 0);
      operands[1] = x4;
      if (!nonimmediate_operand (operands[1], DImode))
        return -1;
      x7 = XEXP (x6, 0);
      operands[2] = x7;
      if (!memory_operand (operands[2], DImode)
          || !
#line 268 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
(!TARGET_64BIT && (TARGET_80387 || TARGET_SSE)))
        return -1;
      *pnum_clobbers = 1;
      return 4979; /* atomic_storedi_fpu */

    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];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 0);
  operands[0] = x3;
  x4 = XEXP (x2, 1);
  switch (XINT (x4, 1))
    {
    case 46:
      x5 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x5) != CLOBBER)
        return -1;
      x6 = XVECEXP (x4, 0, 0);
      operands[2] = x6;
      x7 = XVECEXP (x4, 0, 1);
      operands[3] = x7;
      x8 = XVECEXP (x4, 0, 2);
      operands[4] = x8;
      x9 = XVECEXP (x4, 0, 3);
      operands[5] = x9;
      x10 = XEXP (x5, 0);
      operands[1] = x10;
      switch (GET_MODE (operands[0]))
        {
        case SFmode:
          if (pattern644 (x4, V4SFmode, SFmode) != 0
              || !
#line 9540 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)
   || (TARGET_SSE && (SFmode == TFmode))))
            return -1;
          return 502; /* copysignsf3_var */

        case DFmode:
          if (pattern644 (x4, V2DFmode, DFmode) != 0
              || !
#line 9540 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)
   || (TARGET_SSE && (DFmode == TFmode))))
            return -1;
          return 503; /* copysigndf3_var */

        case TFmode:
          if (pattern645 (x4) != 0
              || !nonimmediate_operand (operands[4], TFmode)
              || !nonimmediate_operand (operands[5], TFmode)
              || !scratch_operand (operands[1], TFmode)
              || !
#line 9540 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((SSE_FLOAT_MODE_P (TFmode) && TARGET_SSE_MATH)
   || (TARGET_SSE && (TFmode == TFmode))))
            return -1;
          return 504; /* copysigntf3_var */

        default:
          return -1;
        }

    case 22:
      if (pattern286 (x4) != 0
          || pattern512 (x1, SImode) != 0)
        return -1;
      x7 = XVECEXP (x4, 0, 1);
      operands[2] = x7;
      if (!register_operand (operands[2], SImode))
        return -1;
      x8 = XVECEXP (x4, 0, 2);
      operands[3] = x8;
      if (!register_operand (operands[3], SImode)
          || !
#line 14084 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_GNU2_TLS))
        return -1;
      return 825; /* *tls_dynamic_gnu2_call_32 */

    case 24:
      if (pnum_clobbers == NULL)
        return -1;
      x6 = XVECEXP (x4, 0, 0);
      if (GET_CODE (x6) != MEM
          || GET_MODE (x6) != BLKmode)
        return -1;
      x5 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x5) != CLOBBER)
        return -1;
      switch (pattern514 (x1))
        {
        case 0:
          if (!(
#line 17080 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(fixed_regs[AX_REG] || fixed_regs[CX_REG] || fixed_regs[DI_REG])
   && ix86_check_no_addr_space (insn)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
            return -1;
          *pnum_clobbers = 1;
          return 975; /* *strlenqi_1 */

        case 1:
          if (!(
#line 17080 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(fixed_regs[AX_REG] || fixed_regs[CX_REG] || fixed_regs[DI_REG])
   && ix86_check_no_addr_space (insn)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
            return -1;
          *pnum_clobbers = 1;
          return 976; /* *strlenqi_1 */

        default:
          return -1;
        }

    case 158:
      x5 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x5) != UNSPEC
          || XVECLEN (x5, 0) != 1
          || XINT (x5, 1) != 170)
        return -1;
      x6 = XVECEXP (x4, 0, 0);
      operands[1] = x6;
      x7 = XVECEXP (x4, 0, 1);
      operands[2] = x7;
      x8 = XVECEXP (x4, 0, 2);
      operands[3] = x8;
      x9 = XVECEXP (x4, 0, 3);
      operands[4] = x9;
      if (!const_0_to_255_operand (operands[4], SImode))
        return -1;
      x11 = XVECEXP (x5, 0, 0);
      operands[5] = x11;
      if (!const48_operand (operands[5], SImode))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V16SFmode:
          if (pattern759 (x4, V16SImode, V16SFmode) != 0
              || !
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 2658; /* avx512f_fixupimmv16sf_round */

        case V8SFmode:
          if (pattern759 (x4, V8SImode, V8SFmode) != 0
              || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8256 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 2662; /* avx512vl_fixupimmv8sf_round */

        case V4SFmode:
          if (pattern759 (x4, V4SImode, V4SFmode) != 0
              || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8256 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 2666; /* avx512vl_fixupimmv4sf_round */

        case V8DFmode:
          if (pattern759 (x4, V8DImode, V8DFmode) != 0
              || !
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 2670; /* avx512f_fixupimmv8df_round */

        case V4DFmode:
          if (pattern759 (x4, V4DImode, V4DFmode) != 0
              || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8256 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 2674; /* avx512vl_fixupimmv4df_round */

        case V2DFmode:
          if (pattern759 (x4, V2DImode, V2DFmode) != 0
              || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8256 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 2678; /* avx512vl_fixupimmv2df_round */

        default:
          return -1;
        }

    case 146:
      x7 = XVECEXP (x4, 0, 1);
      if (GET_CODE (x7) != MEM)
        return -1;
      x12 = XEXP (x7, 0);
      if (GET_CODE (x12) != UNSPEC
          || XVECLEN (x12, 0) != 3
          || XINT (x12, 1) != 147)
        return -1;
      x8 = XVECEXP (x4, 0, 2);
      if (GET_CODE (x8) != MEM
          || GET_MODE (x8) != BLKmode)
        return -1;
      x13 = XEXP (x8, 0);
      if (GET_CODE (x13) != SCRATCH)
        return -1;
      x5 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x5) != CLOBBER)
        return -1;
      x14 = XVECEXP (x12, 0, 2);
      if (!const1248_operand (x14, SImode))
        return -1;
      x10 = XEXP (x5, 0);
      operands[1] = x10;
      x6 = XVECEXP (x4, 0, 0);
      switch (GET_CODE (x6))
        {
        case REG:
        case SUBREG:
          operands[2] = x6;
          operands[7] = x7;
          x15 = XVECEXP (x12, 0, 0);
          operands[3] = x15;
          x16 = XVECEXP (x12, 0, 1);
          operands[4] = x16;
          operands[6] = x14;
          x9 = XVECEXP (x4, 0, 3);
          operands[5] = x9;
          switch (GET_MODE (operands[0]))
            {
            case V2DImode:
              switch (pattern896 (x4, V2DImode, DImode))
                {
                case 0:
                  if (!(
#line 18703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 4589; /* *avx2_gathersiv2di */

                case 1:
                  if (!(
#line 18764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 4621; /* *avx2_gatherdiv2di */

                case 2:
                  if (!(
#line 18703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 4590; /* *avx2_gathersiv2di */

                case 3:
                  if (!(
#line 18764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 4622; /* *avx2_gatherdiv2di */

                default:
                  return -1;
                }

            case V2DFmode:
              switch (pattern896 (x4, V2DFmode, DFmode))
                {
                case 0:
                  if (!(
#line 18703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 4591; /* *avx2_gathersiv2df */

                case 1:
                  if (!(
#line 18764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 4623; /* *avx2_gatherdiv2df */

                case 2:
                  if (!(
#line 18703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 4592; /* *avx2_gathersiv2df */

                case 3:
                  if (!(
#line 18764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 4624; /* *avx2_gatherdiv2df */

                default:
                  return -1;
                }

            case V4DImode:
              switch (pattern898 (x4, V4DImode, DImode))
                {
                case 0:
                  if (!(
#line 18703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 4593; /* *avx2_gathersiv4di */

                case 1:
                  if (!(
#line 18764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 4625; /* *avx2_gatherdiv4di */

                case 2:
                  if (!(
#line 18703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 4594; /* *avx2_gathersiv4di */

                case 3:
                  if (!(
#line 18764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 4626; /* *avx2_gatherdiv4di */

                default:
                  return -1;
                }

            case V4DFmode:
              switch (pattern898 (x4, V4DFmode, DFmode))
                {
                case 0:
                  if (!(
#line 18703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 4595; /* *avx2_gathersiv4df */

                case 1:
                  if (!(
#line 18764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 4627; /* *avx2_gatherdiv4df */

                case 2:
                  if (!(
#line 18703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 4596; /* *avx2_gathersiv4df */

                case 3:
                  if (!(
#line 18764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 4628; /* *avx2_gatherdiv4df */

                default:
                  return -1;
                }

            case V4SImode:
              switch (pattern896 (x4, V4SImode, SImode))
                {
                case 0:
                  if (!(
#line 18703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 4597; /* *avx2_gathersiv4si */

                case 1:
                  if (!(
#line 18764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 4629; /* *avx2_gatherdiv4si */

                case 2:
                  if (!(
#line 18703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 4598; /* *avx2_gathersiv4si */

                case 3:
                  if (!(
#line 18764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 4630; /* *avx2_gatherdiv4si */

                default:
                  return -1;
                }

            case V4SFmode:
              switch (pattern896 (x4, V4SFmode, SFmode))
                {
                case 0:
                  if (!(
#line 18703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 4599; /* *avx2_gathersiv4sf */

                case 1:
                  if (!(
#line 18764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 4631; /* *avx2_gatherdiv4sf */

                case 2:
                  if (!(
#line 18703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 4600; /* *avx2_gathersiv4sf */

                case 3:
                  if (!(
#line 18764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 4632; /* *avx2_gatherdiv4sf */

                default:
                  return -1;
                }

            case V8SImode:
              if (pattern899 (x4, V8SImode, SImode) != 0)
                return -1;
              switch (GET_MODE (operands[2]))
                {
                case V8SImode:
                  if (!register_operand (operands[2], V8SImode)
                      || !register_operand (operands[4], V8SImode))
                    return -1;
                  switch (pattern929 (x12, V8SImode))
                    {
                    case 0:
                      if (!(
#line 18703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                        return -1;
                      return 4601; /* *avx2_gathersiv8si */

                    case 1:
                      if (!(
#line 18703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                        return -1;
                      return 4602; /* *avx2_gathersiv8si */

                    default:
                      return -1;
                    }

                case V4SImode:
                  switch (pattern930 (x12, V4SImode, V4DImode))
                    {
                    case 0:
                      if (!(
#line 18764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                        return -1;
                      return 4633; /* *avx2_gatherdiv8si */

                    case 1:
                      if (!(
#line 18764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                        return -1;
                      return 4634; /* *avx2_gatherdiv8si */

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            case V8SFmode:
              if (pattern899 (x4, V8SFmode, SFmode) != 0)
                return -1;
              switch (GET_MODE (operands[2]))
                {
                case V8SFmode:
                  switch (pattern930 (x12, V8SFmode, V8SImode))
                    {
                    case 0:
                      if (!(
#line 18703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                        return -1;
                      return 4603; /* *avx2_gathersiv8sf */

                    case 1:
                      if (!(
#line 18703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                        return -1;
                      return 4604; /* *avx2_gathersiv8sf */

                    default:
                      return -1;
                    }

                case V4SFmode:
                  switch (pattern930 (x12, V4SFmode, V4DImode))
                    {
                    case 0:
                      if (!(
#line 18764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                        return -1;
                      return 4635; /* *avx2_gatherdiv8sf */

                    case 1:
                      if (!(
#line 18764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                        return -1;
                      return 4636; /* *avx2_gatherdiv8sf */

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case PC:
          operands[6] = x7;
          x15 = XVECEXP (x12, 0, 0);
          operands[2] = x15;
          x16 = XVECEXP (x12, 0, 1);
          operands[3] = x16;
          operands[5] = x14;
          x9 = XVECEXP (x4, 0, 3);
          operands[4] = x9;
          switch (GET_MODE (operands[0]))
            {
            case V2DImode:
              switch (pattern879 (x4, V2DImode, DImode))
                {
                case 0:
                  if (!(
#line 18723 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 4605; /* *avx2_gathersiv2di_2 */

                case 1:
                  if (!(
#line 18784 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 4637; /* *avx2_gatherdiv2di_2 */

                case 2:
                  if (!(
#line 18723 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 4606; /* *avx2_gathersiv2di_2 */

                case 3:
                  if (!(
#line 18784 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 4638; /* *avx2_gatherdiv2di_2 */

                default:
                  return -1;
                }

            case V2DFmode:
              switch (pattern879 (x4, V2DFmode, DFmode))
                {
                case 0:
                  if (!(
#line 18723 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 4607; /* *avx2_gathersiv2df_2 */

                case 1:
                  if (!(
#line 18784 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 4639; /* *avx2_gatherdiv2df_2 */

                case 2:
                  if (!(
#line 18723 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 4608; /* *avx2_gathersiv2df_2 */

                case 3:
                  if (!(
#line 18784 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 4640; /* *avx2_gatherdiv2df_2 */

                default:
                  return -1;
                }

            case V4DImode:
              switch (pattern881 (x4, V4DImode, DImode))
                {
                case 0:
                  if (!(
#line 18723 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 4609; /* *avx2_gathersiv4di_2 */

                case 1:
                  if (!(
#line 18784 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 4641; /* *avx2_gatherdiv4di_2 */

                case 2:
                  if (!(
#line 18723 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 4610; /* *avx2_gathersiv4di_2 */

                case 3:
                  if (!(
#line 18784 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 4642; /* *avx2_gatherdiv4di_2 */

                default:
                  return -1;
                }

            case V4DFmode:
              switch (pattern881 (x4, V4DFmode, DFmode))
                {
                case 0:
                  if (!(
#line 18723 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 4611; /* *avx2_gathersiv4df_2 */

                case 1:
                  if (!(
#line 18784 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 4643; /* *avx2_gatherdiv4df_2 */

                case 2:
                  if (!(
#line 18723 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 4612; /* *avx2_gathersiv4df_2 */

                case 3:
                  if (!(
#line 18784 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 4644; /* *avx2_gatherdiv4df_2 */

                default:
                  return -1;
                }

            case V4SImode:
              switch (pattern879 (x4, V4SImode, SImode))
                {
                case 0:
                  if (!(
#line 18723 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 4613; /* *avx2_gathersiv4si_2 */

                case 1:
                  if (!(
#line 18784 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 4645; /* *avx2_gatherdiv4si_2 */

                case 2:
                  if (!(
#line 18723 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 4614; /* *avx2_gathersiv4si_2 */

                case 3:
                  if (!(
#line 18784 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 4646; /* *avx2_gatherdiv4si_2 */

                default:
                  return -1;
                }

            case V4SFmode:
              switch (pattern879 (x4, V4SFmode, SFmode))
                {
                case 0:
                  if (!(
#line 18723 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 4615; /* *avx2_gathersiv4sf_2 */

                case 1:
                  if (!(
#line 18784 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 4647; /* *avx2_gatherdiv4sf_2 */

                case 2:
                  if (!(
#line 18723 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 4616; /* *avx2_gathersiv4sf_2 */

                case 3:
                  if (!(
#line 18784 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 4648; /* *avx2_gatherdiv4sf_2 */

                default:
                  return -1;
                }

            case V8SImode:
              switch (pattern882 (x4, V8SImode, SImode))
                {
                case 0:
                  switch (pattern923 (SImode))
                    {
                    case 0:
                      if (!(
#line 18723 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                        return -1;
                      return 4617; /* *avx2_gathersiv8si_2 */

                    case 1:
                      if (!(
#line 18784 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                        return -1;
                      return 4649; /* *avx2_gatherdiv8si_2 */

                    default:
                      return -1;
                    }

                case 1:
                  switch (pattern923 (DImode))
                    {
                    case 0:
                      if (!(
#line 18723 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                        return -1;
                      return 4618; /* *avx2_gathersiv8si_2 */

                    case 1:
                      if (!(
#line 18784 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                        return -1;
                      return 4650; /* *avx2_gatherdiv8si_2 */

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            case V8SFmode:
              switch (pattern882 (x4, V8SFmode, SFmode))
                {
                case 0:
                  switch (pattern924 (SImode))
                    {
                    case 0:
                      if (!(
#line 18723 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                        return -1;
                      return 4619; /* *avx2_gathersiv8sf_2 */

                    case 1:
                      if (!(
#line 18784 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                        return -1;
                      return 4651; /* *avx2_gatherdiv8sf_2 */

                    default:
                      return -1;
                    }

                case 1:
                  switch (pattern924 (DImode))
                    {
                    case 0:
                      if (!(
#line 18723 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                        return -1;
                      return 4620; /* *avx2_gathersiv8sf_2 */

                    case 1:
                      if (!(
#line 18784 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                        return -1;
                      return 4652; /* *avx2_gatherdiv8sf_2 */

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    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];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 0);
  switch (GET_CODE (x3))
    {
    case REG:
    case SUBREG:
    case MEM:
      operands[0] = x3;
      x4 = XEXP (x2, 1);
      x5 = XEXP (x4, 0);
      operands[1] = x5;
      x6 = XEXP (x4, 1);
      operands[2] = x6;
      switch (GET_MODE (operands[0]))
        {
        case DImode:
          if (!register_operand (operands[0], DImode)
              || GET_MODE (x4) != DImode
              || !reg_or_pm1_operand (operands[1], DImode)
              || !
#line 1021 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT))
            return -1;
          return 523; /* *ashldi3_doubleword */

        case TImode:
          if (!register_operand (operands[0], TImode)
              || GET_MODE (x4) != TImode
              || !reg_or_pm1_operand (operands[1], TImode)
              || !
#line 1022 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
            return -1;
          return 524; /* *ashlti3_doubleword */

        case HImode:
          if (!nonimmediate_operand (operands[0], HImode)
              || GET_MODE (x4) != HImode
              || !nonimmediate_operand (operands[1], HImode)
              || !
#line 9994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ASHIFT, HImode, operands)))
            return -1;
          return 535; /* *ashlhi3_1 */

        case QImode:
          if (!nonimmediate_operand (operands[0], QImode)
              || GET_MODE (x4) != QImode
              || !nonimmediate_operand (operands[1], QImode)
              || !
#line 10039 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ASHIFT, QImode, operands)))
            return -1;
          return 536; /* *ashlqi3_1 */

        default:
          return -1;
        }

    case STRICT_LOW_PART:
      x7 = XEXP (x3, 0);
      operands[0] = x7;
      if (!nonimmediate_operand (operands[0], QImode))
        return -1;
      x4 = XEXP (x2, 1);
      if (GET_MODE (x4) != QImode)
        return -1;
      x6 = XEXP (x4, 1);
      operands[1] = x6;
      x5 = XEXP (x4, 0);
      if (!rtx_equal_p (x5, operands[0])
          || !
#line 10096 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[1] == const1_rtx
	&& (TARGET_SHIFT1
	    || (TARGET_DOUBLE_WITH_ADD && REG_P (operands[0])))))))
        return -1;
      return 537; /* *ashlqi3_1_slp */

    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];
  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, 1);
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XVECEXP (x1, 0, 0);
  x4 = XEXP (x3, 1);
  if (GET_MODE (x4) != CCOmode)
    return -1;
  x5 = XEXP (x2, 0);
  operands[0] = x5;
  switch (GET_CODE (x4))
    {
    case EQ:
      x6 = XEXP (x4, 0);
      switch (GET_CODE (x6))
        {
        case PLUS:
          switch (pattern549 (x1, PLUS))
            {
            case 0:
              if (!
#line 6211 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, QImode, operands)))
                return -1;
              return 246; /* *addvqi4 */

            case 1:
              if (!
#line 6211 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, HImode, operands)))
                return -1;
              return 247; /* *addvhi4 */

            case 2:
              if (!
#line 6211 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, SImode, operands)))
                return -1;
              return 248; /* *addvsi4 */

            case 3:
              if (!(
#line 6211 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, DImode, operands)) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 249; /* *addvdi4 */

            case 4:
              if (!
#line 6228 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, QImode, operands)
   && CONST_INT_P (operands[2])
   && INTVAL (operands[2]) == INTVAL (operands[3])))
                return -1;
              return 250; /* *addvqi4_1 */

            case 5:
              if (!
#line 6228 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, HImode, operands)
   && CONST_INT_P (operands[2])
   && INTVAL (operands[2]) == INTVAL (operands[3])))
                return -1;
              return 251; /* *addvhi4_1 */

            case 6:
              if (!
#line 6228 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, SImode, operands)
   && CONST_INT_P (operands[2])
   && INTVAL (operands[2]) == INTVAL (operands[3])))
                return -1;
              return 252; /* *addvsi4_1 */

            case 7:
              if (!(
#line 6228 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, DImode, operands)
   && CONST_INT_P (operands[2])
   && INTVAL (operands[2]) == INTVAL (operands[3])) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 253; /* *addvdi4_1 */

            default:
              return -1;
            }

        case MINUS:
          switch (pattern549 (x1, MINUS))
            {
            case 0:
              if (!
#line 6539 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (MINUS, QImode, operands)))
                return -1;
              return 272; /* *subvqi4 */

            case 1:
              if (!
#line 6539 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (MINUS, HImode, operands)))
                return -1;
              return 273; /* *subvhi4 */

            case 2:
              if (!
#line 6539 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (MINUS, SImode, operands)))
                return -1;
              return 274; /* *subvsi4 */

            case 3:
              if (!(
#line 6539 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (MINUS, DImode, operands)) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 275; /* *subvdi4 */

            case 4:
              if (!
#line 6556 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (MINUS, QImode, operands)
   && CONST_INT_P (operands[2])
   && INTVAL (operands[2]) == INTVAL (operands[3])))
                return -1;
              return 276; /* *subvqi4_1 */

            case 5:
              if (!
#line 6556 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (MINUS, HImode, operands)
   && CONST_INT_P (operands[2])
   && INTVAL (operands[2]) == INTVAL (operands[3])))
                return -1;
              return 277; /* *subvhi4_1 */

            case 6:
              if (!
#line 6556 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (MINUS, SImode, operands)
   && CONST_INT_P (operands[2])
   && INTVAL (operands[2]) == INTVAL (operands[3])))
                return -1;
              return 278; /* *subvsi4_1 */

            case 7:
              if (!(
#line 6556 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (MINUS, DImode, operands)
   && CONST_INT_P (operands[2])
   && INTVAL (operands[2]) == INTVAL (operands[3])) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 279; /* *subvdi4_1 */

            default:
              return -1;
            }

        case MULT:
          x7 = XEXP (x2, 1);
          if (GET_CODE (x7) != MULT)
            return -1;
          x8 = XEXP (x6, 0);
          switch (GET_CODE (x8))
            {
            case SIGN_EXTEND:
              x9 = XEXP (x4, 1);
              if (GET_CODE (x9) != SIGN_EXTEND)
                return -1;
              x10 = XEXP (x9, 0);
              if (GET_CODE (x10) != MULT)
                return -1;
              x11 = XEXP (x8, 0);
              operands[1] = x11;
              x12 = XEXP (x10, 0);
              if (!rtx_equal_p (x12, operands[1]))
                return -1;
              x13 = XEXP (x7, 0);
              if (!rtx_equal_p (x13, operands[1]))
                return -1;
              x14 = XEXP (x6, 1);
              switch (GET_CODE (x14))
                {
                case SIGN_EXTEND:
                  x15 = XEXP (x14, 0);
                  operands[2] = x15;
                  x16 = XEXP (x10, 1);
                  if (!rtx_equal_p (x16, operands[2]))
                    return -1;
                  x17 = XEXP (x7, 1);
                  if (!rtx_equal_p (x17, operands[2]))
                    return -1;
                  switch (GET_MODE (x6))
                    {
                    case DImode:
                      if (pattern885 (x1, SImode, DImode) != 0
                          || !
#line 6994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))))
                        return -1;
                      return 322; /* *mulvsi4 */

                    case TImode:
                      if (pattern885 (x1, DImode, TImode) != 0
                          || !(
#line 6994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                        return -1;
                      return 323; /* *mulvdi4 */

                    case SImode:
                      if (pattern886 (x1, HImode, SImode) != 0
                          || !
#line 7028 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))))
                        return -1;
                      return 324; /* *mulvhi4 */

                    case HImode:
                      if (pattern886 (x1, QImode, HImode) != 0
                          || !
#line 7163 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_QIMODE_MATH
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                        return -1;
                      return 331; /* *mulvqi4 */

                    default:
                      return -1;
                    }

                case CONST_INT:
                  operands[3] = x14;
                  x16 = XEXP (x10, 1);
                  operands[2] = x16;
                  x17 = XEXP (x7, 1);
                  if (!rtx_equal_p (x17, operands[2]))
                    return -1;
                  switch (GET_MODE (x6))
                    {
                    case SImode:
                      if (GET_MODE (x8) != SImode
                          || !nonimmediate_operand (operands[1], HImode)
                          || !const_int_operand (operands[3], SImode)
                          || GET_MODE (x9) != SImode
                          || GET_MODE (x10) != HImode
                          || !immediate_operand (operands[2], HImode)
                          || !register_operand (operands[0], HImode)
                          || GET_MODE (x7) != HImode
                          || !
#line 7049 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))
   && CONST_INT_P (operands[2])
   && INTVAL (operands[2]) == INTVAL (operands[3])))
                        return -1;
                      return 325; /* *mulvhi4_1 */

                    case DImode:
                      if (pattern887 (x1, SImode, DImode) != 0
                          || !
#line 7049 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))
   && CONST_INT_P (operands[2])
   && INTVAL (operands[2]) == INTVAL (operands[3])))
                        return -1;
                      return 326; /* *mulvsi4_1 */

                    case TImode:
                      if (pattern887 (x1, DImode, TImode) != 0
                          || !(
#line 7049 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))
   && CONST_INT_P (operands[2])
   && INTVAL (operands[2]) == INTVAL (operands[3])) && 
#line 991 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                        return -1;
                      return 327; /* *mulvdi4_1 */

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            case ZERO_EXTEND:
              x14 = XEXP (x6, 1);
              if (GET_CODE (x14) != ZERO_EXTEND)
                return -1;
              x9 = XEXP (x4, 1);
              if (GET_CODE (x9) != ZERO_EXTEND)
                return -1;
              x10 = XEXP (x9, 0);
              if (GET_CODE (x10) != MULT)
                return -1;
              x11 = XEXP (x8, 0);
              operands[1] = x11;
              x15 = XEXP (x14, 0);
              operands[2] = x15;
              x12 = XEXP (x10, 0);
              if (!rtx_equal_p (x12, operands[1]))
                return -1;
              x16 = XEXP (x10, 1);
              if (!rtx_equal_p (x16, operands[2]))
                return -1;
              x13 = XEXP (x7, 0);
              if (!rtx_equal_p (x13, operands[1]))
                return -1;
              x17 = XEXP (x7, 1);
              if (!rtx_equal_p (x17, operands[2]))
                return -1;
              switch (GET_MODE (x6))
                {
                case SImode:
                  if (pnum_clobbers == NULL
                      || pattern886 (x1, HImode, SImode) != 0
                      || !
#line 7119 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))))
                    return -1;
                  *pnum_clobbers = 1;
                  return 328; /* *umulvhi4 */

                case DImode:
                  if (pnum_clobbers == NULL
                      || pattern886 (x1, SImode, DImode) != 0
                      || !
#line 7119 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))))
                    return -1;
                  *pnum_clobbers = 1;
                  return 329; /* *umulvsi4 */

                case TImode:
                  if (pnum_clobbers == NULL
                      || pattern886 (x1, DImode, TImode) != 0
                      || !(
#line 7119 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))) && 
#line 991 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                    return -1;
                  *pnum_clobbers = 1;
                  return 330; /* *umulvdi4 */

                case HImode:
                  if (pattern886 (x1, QImode, HImode) != 0
                      || !
#line 7163 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_QIMODE_MATH
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                    return -1;
                  return 332; /* *umulvqi4 */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    case NE:
      x7 = XEXP (x2, 1);
      if (GET_CODE (x7) != NEG)
        return -1;
      x6 = XEXP (x4, 0);
      operands[1] = x6;
      x9 = XEXP (x4, 1);
      operands[2] = x9;
      x13 = XEXP (x7, 0);
      if (!rtx_equal_p (x13, operands[1]))
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case QImode:
          if (pattern703 (x7, QImode) != 0
              || !
#line 9290 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_unary_operator_ok (NEG, QImode, operands)
   && mode_signbit_p (QImode, operands[2])))
            return -1;
          return 477; /* *negvqi3 */

        case HImode:
          if (pattern703 (x7, HImode) != 0
              || !
#line 9290 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_unary_operator_ok (NEG, HImode, operands)
   && mode_signbit_p (HImode, operands[2])))
            return -1;
          return 478; /* *negvhi3 */

        case SImode:
          if (pattern703 (x7, SImode) != 0
              || !
#line 9290 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_unary_operator_ok (NEG, SImode, operands)
   && mode_signbit_p (SImode, operands[2])))
            return -1;
          return 479; /* *negvsi3 */

        case DImode:
          if (pattern703 (x7, DImode) != 0
              || !(
#line 9290 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_unary_operator_ok (NEG, DImode, operands)
   && mode_signbit_p (DImode, operands[2])) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          return 480; /* *negvdi3 */

        default:
          return -1;
        }

    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, x8, x9;
  rtx x10, x11, x12;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  x5 = XVECEXP (x4, 0, 0);
  operands[1] = x5;
  x6 = XVECEXP (x4, 0, 1);
  operands[2] = x6;
  switch (XINT (x4, 1))
    {
    case 124:
      x7 = XVECEXP (x1, 0, 1);
      x8 = XVECEXP (x7, 0, 0);
      if (!const_4_or_8_to_11_operand (x8, SImode))
        return -1;
      x9 = XVECEXP (x4, 0, 2);
      switch (GET_CODE (x9))
        {
        case REG:
        case SUBREG:
        case MEM:
          operands[3] = x9;
          x10 = XEXP (x3, 1);
          switch (GET_CODE (x10))
            {
            case CONST_INT:
            case CONST_WIDE_INT:
            case CONST_DOUBLE:
            case CONST_VECTOR:
              operands[4] = x10;
              x11 = XEXP (x3, 2);
              operands[5] = x11;
              operands[6] = x8;
              switch (GET_MODE (operands[0]))
                {
                case V16SFmode:
                  if (pattern840 (x3, HImode, V16SFmode) != 0
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3928 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V16SFmode == V16SFmode
							      || V16SFmode == V8DFmode
							      || V16SFmode == V8DImode
							      || V16SFmode == V16SImode))))
                    return -1;
                  return 2025; /* fma_fmaddsub_v16sf_maskz_1_round */

                case V8DFmode:
                  if (pattern840 (x3, QImode, V8DFmode) != 0
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3928 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V8DFmode == V16SFmode
							      || V8DFmode == V8DFmode
							      || V8DFmode == V8DImode
							      || V8DFmode == V16SImode))))
                    return -1;
                  return 2034; /* fma_fmaddsub_v8df_maskz_1_round */

                default:
                  return -1;
                }

            case REG:
            case SUBREG:
              x11 = XEXP (x3, 2);
              operands[4] = x11;
              operands[5] = x8;
              switch (GET_MODE (operands[0]))
                {
                case V16SFmode:
                  if (pattern803 (x3, V16SFmode, HImode) != 0)
                    return -1;
                  if (nonimmediate_operand (operands[3], V16SFmode)
                      && rtx_equal_p (x10, operands[1])
                      && 
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                    return 2040; /* avx512f_fmaddsub_v16sf_mask_round */
                  if (!register_operand (operands[3], V16SFmode)
                      || !rtx_equal_p (x10, operands[3])
                      || !
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                    return -1;
                  return 2052; /* avx512f_fmaddsub_v16sf_mask3_round */

                case V8SFmode:
                  if (pattern803 (x3, V8SFmode, QImode) != 0)
                    return -1;
                  if (nonimmediate_operand (operands[3], V8SFmode)
                      && rtx_equal_p (x10, operands[1])
                      && (
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 3946 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return 2042; /* avx512vl_fmaddsub_v8sf_mask_round */
                  if (!register_operand (operands[3], V8SFmode)
                      || !rtx_equal_p (x10, operands[3])
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 3964 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 2054; /* avx512vl_fmaddsub_v8sf_mask3_round */

                case V4SFmode:
                  if (pattern803 (x3, V4SFmode, QImode) != 0)
                    return -1;
                  if (nonimmediate_operand (operands[3], V4SFmode)
                      && rtx_equal_p (x10, operands[1])
                      && (
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 3946 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return 2044; /* avx512vl_fmaddsub_v4sf_mask_round */
                  if (!register_operand (operands[3], V4SFmode)
                      || !rtx_equal_p (x10, operands[3])
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 3964 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 2056; /* avx512vl_fmaddsub_v4sf_mask3_round */

                case V8DFmode:
                  if (pattern803 (x3, V8DFmode, QImode) != 0)
                    return -1;
                  if (nonimmediate_operand (operands[3], V8DFmode)
                      && rtx_equal_p (x10, operands[1])
                      && 
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                    return 2046; /* avx512f_fmaddsub_v8df_mask_round */
                  if (!register_operand (operands[3], V8DFmode)
                      || !rtx_equal_p (x10, operands[3])
                      || !
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                    return -1;
                  return 2058; /* avx512f_fmaddsub_v8df_mask3_round */

                case V4DFmode:
                  if (pattern803 (x3, V4DFmode, QImode) != 0)
                    return -1;
                  if (nonimmediate_operand (operands[3], V4DFmode)
                      && rtx_equal_p (x10, operands[1])
                      && (
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 3946 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return 2048; /* avx512vl_fmaddsub_v4df_mask_round */
                  if (!register_operand (operands[3], V4DFmode)
                      || !rtx_equal_p (x10, operands[3])
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 3964 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 2060; /* avx512vl_fmaddsub_v4df_mask3_round */

                case V2DFmode:
                  if (pattern803 (x3, V2DFmode, QImode) != 0)
                    return -1;
                  if (nonimmediate_operand (operands[3], V2DFmode)
                      && rtx_equal_p (x10, operands[1])
                      && (
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 3946 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return 2050; /* avx512vl_fmaddsub_v2df_mask_round */
                  if (!register_operand (operands[3], V2DFmode)
                      || !rtx_equal_p (x10, operands[3])
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 3964 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 2062; /* avx512vl_fmaddsub_v2df_mask3_round */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case NEG:
          x12 = XEXP (x9, 0);
          operands[3] = x12;
          x10 = XEXP (x3, 1);
          switch (GET_CODE (x10))
            {
            case CONST_INT:
            case CONST_WIDE_INT:
            case CONST_DOUBLE:
            case CONST_VECTOR:
              operands[4] = x10;
              x11 = XEXP (x3, 2);
              operands[5] = x11;
              operands[6] = x8;
              switch (GET_MODE (operands[0]))
                {
                case V16SFmode:
                  if (pattern841 (x3, HImode, V16SFmode) != 0
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3997 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V16SFmode == V16SFmode
							      || V16SFmode == V8DFmode
							      || V16SFmode == V8DImode
							      || V16SFmode == V16SImode))))
                    return -1;
                  return 2071; /* fma_fmsubadd_v16sf_maskz_1_round */

                case V8DFmode:
                  if (pattern841 (x3, QImode, V8DFmode) != 0
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3997 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V8DFmode == V16SFmode
							      || V8DFmode == V8DFmode
							      || V8DFmode == V8DImode
							      || V8DFmode == V16SImode))))
                    return -1;
                  return 2080; /* fma_fmsubadd_v8df_maskz_1_round */

                default:
                  return -1;
                }

            case REG:
            case SUBREG:
              x11 = XEXP (x3, 2);
              operands[4] = x11;
              operands[5] = x8;
              switch (GET_MODE (operands[0]))
                {
                case V16SFmode:
                  if (pattern804 (x3, V16SFmode, HImode) != 0)
                    return -1;
                  if (nonimmediate_operand (operands[3], V16SFmode)
                      && rtx_equal_p (x10, operands[1])
                      && 
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                    return 2086; /* avx512f_fmsubadd_v16sf_mask_round */
                  if (!register_operand (operands[3], V16SFmode)
                      || !rtx_equal_p (x10, operands[3])
                      || !
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                    return -1;
                  return 2098; /* avx512f_fmsubadd_v16sf_mask3_round */

                case V8SFmode:
                  if (pattern804 (x3, V8SFmode, QImode) != 0)
                    return -1;
                  if (nonimmediate_operand (operands[3], V8SFmode)
                      && rtx_equal_p (x10, operands[1])
                      && (
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4016 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return 2088; /* avx512vl_fmsubadd_v8sf_mask_round */
                  if (!register_operand (operands[3], V8SFmode)
                      || !rtx_equal_p (x10, operands[3])
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4035 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 2100; /* avx512vl_fmsubadd_v8sf_mask3_round */

                case V4SFmode:
                  if (pattern804 (x3, V4SFmode, QImode) != 0)
                    return -1;
                  if (nonimmediate_operand (operands[3], V4SFmode)
                      && rtx_equal_p (x10, operands[1])
                      && (
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4016 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return 2090; /* avx512vl_fmsubadd_v4sf_mask_round */
                  if (!register_operand (operands[3], V4SFmode)
                      || !rtx_equal_p (x10, operands[3])
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4035 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 2102; /* avx512vl_fmsubadd_v4sf_mask3_round */

                case V8DFmode:
                  if (pattern804 (x3, V8DFmode, QImode) != 0)
                    return -1;
                  if (nonimmediate_operand (operands[3], V8DFmode)
                      && rtx_equal_p (x10, operands[1])
                      && 
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                    return 2092; /* avx512f_fmsubadd_v8df_mask_round */
                  if (!register_operand (operands[3], V8DFmode)
                      || !rtx_equal_p (x10, operands[3])
                      || !
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                    return -1;
                  return 2104; /* avx512f_fmsubadd_v8df_mask3_round */

                case V4DFmode:
                  if (pattern804 (x3, V4DFmode, QImode) != 0)
                    return -1;
                  if (nonimmediate_operand (operands[3], V4DFmode)
                      && rtx_equal_p (x10, operands[1])
                      && (
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4016 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return 2094; /* avx512vl_fmsubadd_v4df_mask_round */
                  if (!register_operand (operands[3], V4DFmode)
                      || !rtx_equal_p (x10, operands[3])
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4035 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 2106; /* avx512vl_fmsubadd_v4df_mask3_round */

                case V2DFmode:
                  if (pattern804 (x3, V2DFmode, QImode) != 0)
                    return -1;
                  if (nonimmediate_operand (operands[3], V2DFmode)
                      && rtx_equal_p (x10, operands[1])
                      && (
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4016 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return 2096; /* avx512vl_fmsubadd_v2df_mask_round */
                  if (!register_operand (operands[3], V2DFmode)
                      || !rtx_equal_p (x10, operands[3])
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4035 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 2108; /* avx512vl_fmsubadd_v2df_mask3_round */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 81:
      x11 = XEXP (x3, 2);
      if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x9 = XVECEXP (x4, 0, 2);
      operands[3] = x9;
      if (!const_0_to_255_operand (operands[3], SImode))
        return -1;
      switch (pattern709 (x1))
        {
        case 0:
          if (!
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 2730; /* avx512f_rndscalev4sf_round */

        case 1:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8350 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
            return -1;
          return 2732; /* avx512f_rndscalev2df_round */

        default:
          return -1;
        }

    case 191:
      x9 = XVECEXP (x4, 0, 2);
      operands[3] = x9;
      if (!const_0_to_15_operand (operands[3], SImode))
        return -1;
      x7 = XVECEXP (x1, 0, 1);
      x8 = XVECEXP (x7, 0, 0);
      if (!const48_operand (x8, SImode))
        return -1;
      x11 = XEXP (x3, 2);
      switch (GET_CODE (x11))
        {
        case REG:
        case SUBREG:
          operands[5] = x11;
          x10 = XEXP (x3, 1);
          operands[4] = x10;
          operands[6] = x8;
          switch (GET_MODE (operands[0]))
            {
            case V16SFmode:
              if (pattern842 (x3, HImode, V16SFmode) != 0
                  || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 19094 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && (V16SFmode == V16SFmode
									      || V16SFmode == V8DFmode
									      || V16SFmode == V8DImode
									      || V16SFmode == V16SImode)))))
                return -1;
              return 4844; /* avx512dq_rangepv16sf_mask_round */

            case V8DFmode:
              if (pattern842 (x3, QImode, V8DFmode) != 0
                  || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 19094 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && (V8DFmode == V16SFmode
									      || V8DFmode == V8DFmode
									      || V8DFmode == V8DImode
									      || V8DFmode == V16SImode)))))
                return -1;
              return 4852; /* avx512dq_rangepv8df_mask_round */

            default:
              return -1;
            }

        case CONST_INT:
          if (XWINT (x11, 0) != 1LL)
            return -1;
          operands[4] = x8;
          switch (pattern708 (x3))
            {
            case 0:
              if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 19110 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ)))
                return -1;
              return 4858; /* avx512dq_rangesv4sf_round */

            case 1:
              if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 19110 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
                return -1;
              return 4860; /* avx512dq_rangesv2df_round */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 162:
      x11 = XEXP (x3, 2);
      if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x9 = XVECEXP (x4, 0, 2);
      operands[3] = x9;
      if (!const_0_to_15_operand (operands[3], SImode))
        return -1;
      switch (pattern709 (x1))
        {
        case 0:
          if (!
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 4900; /* avx512f_vgetmantv4sf_round */

        case 1:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 19165 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
            return -1;
          return 4902; /* avx512f_vgetmantv2df_round */

        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, x7, x8, x9;
  rtx x10, x11, x12;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  switch (XVECLEN (x4, 0))
    {
    case 2:
      x5 = XVECEXP (x4, 0, 0);
      operands[1] = x5;
      x6 = XVECEXP (x4, 0, 1);
      operands[2] = x6;
      switch (XINT (x4, 1))
        {
        case 48:
          switch (pattern596 (x1))
            {
            case 0:
              if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2001 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (64 == 64 || TARGET_AVX512VL) && (V16SFmode == V16SFmode
									      || V16SFmode == V8DFmode
									      || V16SFmode == V8DImode
									      || V16SFmode == V16SImode)) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))))
                return -1;
              return 1600; /* ieee_maxv16sf3_mask_round */

            case 1:
              if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2001 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (64 == 64 || TARGET_AVX512VL) && (V8DFmode == V16SFmode
									      || V8DFmode == V8DFmode
									      || V8DFmode == V8DImode
									      || V8DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))))
                return -1;
              return 1616; /* ieee_maxv8df3_mask_round */

            default:
              return -1;
            }

        case 47:
          switch (pattern596 (x1))
            {
            case 0:
              if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2001 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (64 == 64 || TARGET_AVX512VL) && (V16SFmode == V16SFmode
									      || V16SFmode == V8DFmode
									      || V16SFmode == V8DImode
									      || V16SFmode == V16SImode)) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))))
                return -1;
              return 1604; /* ieee_minv16sf3_mask_round */

            case 1:
              if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2001 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE
   && (64 == 64 || TARGET_AVX512VL) && (V8DFmode == V16SFmode
									      || V8DFmode == V8DFmode
									      || V8DFmode == V8DImode
									      || V8DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))))
                return -1;
              return 1620; /* ieee_minv8df3_mask_round */

            default:
              return -1;
            }

        case 159:
          x7 = XVECEXP (x1, 0, 1);
          x8 = XVECEXP (x7, 0, 0);
          if (!const_4_or_8_to_11_operand (x8, SImode))
            return -1;
          x9 = XEXP (x3, 2);
          switch (GET_CODE (x9))
            {
            case CONST_INT:
              if (XWINT (x9, 0) != 1LL)
                return -1;
              operands[3] = x8;
              switch (pattern708 (x3))
                {
                case 0:
                  if (!
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                    return -1;
                  return 2572; /* avx512f_vmscalefv4sf_round */

                case 1:
                  if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8104 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
                    return -1;
                  return 2574; /* avx512f_vmscalefv2df_round */

                default:
                  return -1;
                }

            case REG:
            case SUBREG:
              operands[4] = x9;
              x10 = XEXP (x3, 1);
              operands[3] = x10;
              operands[5] = x8;
              switch (GET_MODE (operands[0]))
                {
                case V16SFmode:
                  if (pattern784 (x3, V16SFmode, HImode) != 0
                      || !
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                    return -1;
                  return 2578; /* avx512f_scalefv16sf_mask_round */

                case V8SFmode:
                  if (pattern784 (x3, V8SFmode, QImode) != 0
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8115 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))))
                    return -1;
                  return 2582; /* avx512vl_scalefv8sf_mask_round */

                case V4SFmode:
                  if (pattern784 (x3, V4SFmode, QImode) != 0
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8115 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))))
                    return -1;
                  return 2586; /* avx512vl_scalefv4sf_mask_round */

                case V8DFmode:
                  if (pattern784 (x3, V8DFmode, QImode) != 0
                      || !
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                    return -1;
                  return 2590; /* avx512f_scalefv8df_mask_round */

                case V4DFmode:
                  if (pattern784 (x3, V4DFmode, QImode) != 0
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8115 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))))
                    return -1;
                  return 2594; /* avx512vl_scalefv4df_mask_round */

                case V2DFmode:
                  if (pattern784 (x3, V2DFmode, QImode) != 0
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8115 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))))
                    return -1;
                  return 2598; /* avx512vl_scalefv2df_mask_round */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case 161:
          x9 = XEXP (x3, 2);
          if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
            return -1;
          x7 = XVECEXP (x1, 0, 1);
          x8 = XVECEXP (x7, 0, 0);
          operands[3] = x8;
          if (!const48_operand (operands[3], SImode))
            return -1;
          switch (pattern708 (x3))
            {
            case 0:
              if (!
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 2642; /* avx512f_sgetexpv4sf_round */

            case 1:
              if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
                return -1;
              return 2644; /* avx512f_sgetexpv2df_round */

            default:
              return -1;
            }

        case 81:
          if (!const_0_to_255_operand (operands[2], SImode))
            return -1;
          switch (pattern652 (x1))
            {
            case 0:
              if (!
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 2708; /* avx512f_rndscalev16sf_mask_round */

            case 1:
              if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8334 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))))
                return -1;
              return 2712; /* avx512vl_rndscalev8sf_mask_round */

            case 2:
              if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8334 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))))
                return -1;
              return 2716; /* avx512vl_rndscalev4sf_mask_round */

            case 3:
              if (!
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 2720; /* avx512f_rndscalev8df_mask_round */

            case 4:
              if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8334 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))))
                return -1;
              return 2724; /* avx512vl_rndscalev4df_mask_round */

            case 5:
              if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8334 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))))
                return -1;
              return 2728; /* avx512vl_rndscalev2df_mask_round */

            default:
              return -1;
            }

        case 162:
          if (!const_0_to_15_operand (operands[2], SImode))
            return -1;
          switch (pattern652 (x1))
            {
            case 0:
              if (!
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 4878; /* avx512f_getmantv16sf_mask_round */

            case 1:
              if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 19150 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))))
                return -1;
              return 4882; /* avx512vl_getmantv8sf_mask_round */

            case 2:
              if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 19150 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))))
                return -1;
              return 4886; /* avx512vl_getmantv4sf_mask_round */

            case 3:
              if (!
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 4890; /* avx512f_getmantv8df_mask_round */

            case 4:
              if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 19150 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))))
                return -1;
              return 4894; /* avx512vl_getmantv4df_mask_round */

            case 5:
              if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 19150 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))))
                return -1;
              return 4898; /* avx512vl_getmantv2df_mask_round */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 3:
      return recog_215 (x1, insn, pnum_clobbers);

    case 1:
      x5 = XVECEXP (x4, 0, 0);
      operands[1] = x5;
      x10 = XEXP (x3, 1);
      operands[2] = x10;
      switch (XINT (x4, 1))
        {
        case 40:
          x9 = XEXP (x3, 2);
          operands[3] = x9;
          x7 = XVECEXP (x1, 0, 1);
          x8 = XVECEXP (x7, 0, 0);
          operands[4] = x8;
          if (!const_4_or_8_to_11_operand (operands[4], SImode))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case V16SImode:
              if (pattern736 (x3, HImode, V16SImode, V16SFmode) != 0
                  || !
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 2184; /* avx512f_fix_notruncv16sfv16si_mask_round */

            case V8DImode:
              if (pattern683 (x3, V8DImode) != 0)
                return -1;
              switch (GET_MODE (operands[1]))
                {
                case V8SFmode:
                  if (!nonimmediate_operand (operands[1], V8SFmode)
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4496 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && (V8DImode == V16SFmode
							      || V8DImode == V8DFmode
							      || V8DImode == V8DImode
							      || V8DImode == V16SImode)))))
                    return -1;
                  return 2200; /* avx512dq_cvtps2qqv8di_mask_round */

                case V8DFmode:
                  if (!register_operand (operands[1], V8DFmode)
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 5175 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && (V8DFmode == V16SFmode
							      || V8DFmode == V8DFmode
							      || V8DFmode == V8DImode
							      || V8DFmode == V16SImode)))))
                    return -1;
                  return 2365; /* fix_notruncv8dfv8di2_mask_round */

                default:
                  return -1;
                }

            case V8SImode:
              if (pattern736 (x3, QImode, V8SImode, V8DFmode) != 0
                  || !
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 2316; /* avx512f_cvtpd2dq512_mask_round */

            default:
              return -1;
            }

        case 151:
          x9 = XEXP (x3, 2);
          operands[3] = x9;
          x7 = XVECEXP (x1, 0, 1);
          x8 = XVECEXP (x7, 0, 0);
          operands[4] = x8;
          if (!const_4_or_8_to_11_operand (operands[4], SImode))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case V16SImode:
              if (!register_operand (operands[0], V16SImode)
                  || GET_MODE (x3) != V16SImode
                  || GET_MODE (x4) != V16SImode
                  || !nonimmediate_operand (operands[1], V16SFmode)
                  || !vector_move_operand (operands[2], V16SImode)
                  || !register_operand (operands[3], HImode)
                  || !
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 2188; /* avx512f_ufix_notruncv16sfv16si_mask_round */

            case V8SImode:
              switch (pattern737 (x3, V8SImode))
                {
                case 0:
                  if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4486 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 343 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))))
                    return -1;
                  return 2192; /* avx512vl_ufix_notruncv8sfv8si_mask_round */

                case 1:
                  if (!
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                    return -1;
                  return 2325; /* ufix_notruncv8dfv8si2_mask_round */

                default:
                  return -1;
                }

            case V4SImode:
              if (pattern683 (x3, V4SImode) != 0)
                return -1;
              switch (GET_MODE (operands[1]))
                {
                case V4SFmode:
                  if (!nonimmediate_operand (operands[1], V4SFmode)
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4486 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 343 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))))
                    return -1;
                  return 2196; /* avx512vl_ufix_notruncv4sfv4si_mask_round */

                case V4DFmode:
                  if (!nonimmediate_operand (operands[1], V4DFmode)
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 5102 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 247 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))))
                    return -1;
                  return 2329; /* ufix_notruncv4dfv4si2_mask_round */

                default:
                  return -1;
                }

            case V8DImode:
              switch (pattern737 (x3, V8DImode))
                {
                case 0:
                  if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4519 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && (V8DImode == V16SFmode
							      || V8DImode == V8DFmode
							      || V8DImode == V8DImode
							      || V8DImode == V16SImode)))))
                    return -1;
                  return 2208; /* avx512dq_cvtps2uqqv8di_mask_round */

                case 1:
                  if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 5186 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && (V8DFmode == V16SFmode
							      || V8DFmode == V8DFmode
							      || V8DFmode == V8DImode
							      || V8DFmode == V16SImode)))))
                    return -1;
                  return 2373; /* ufix_notruncv8dfv8di2_mask_round */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case 161:
          x9 = XEXP (x3, 2);
          operands[3] = x9;
          x7 = XVECEXP (x1, 0, 1);
          x8 = XVECEXP (x7, 0, 0);
          operands[4] = x8;
          if (!const48_operand (operands[4], SImode))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case V16SFmode:
              if (pattern597 (x3, HImode, V16SFmode) != 0
                  || !
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 2620; /* avx512f_getexpv16sf_mask_round */

            case V8SFmode:
              if (pattern597 (x3, QImode, V8SFmode) != 0
                  || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8170 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))))
                return -1;
              return 2624; /* avx512vl_getexpv8sf_mask_round */

            case V4SFmode:
              if (pattern597 (x3, QImode, V4SFmode) != 0
                  || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8170 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))))
                return -1;
              return 2628; /* avx512vl_getexpv4sf_mask_round */

            case V8DFmode:
              if (pattern597 (x3, QImode, V8DFmode) != 0
                  || !
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 2632; /* avx512f_getexpv8df_mask_round */

            case V4DFmode:
              if (pattern597 (x3, QImode, V4DFmode) != 0
                  || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8170 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))))
                return -1;
              return 2636; /* avx512vl_getexpv4df_mask_round */

            case V2DFmode:
              if (pattern597 (x3, QImode, V2DFmode) != 0
                  || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8170 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))))
                return -1;
              return 2640; /* avx512vl_getexpv2df_mask_round */

            default:
              return -1;
            }

        case 173:
          x9 = XEXP (x3, 2);
          operands[3] = x9;
          x7 = XVECEXP (x1, 0, 1);
          x8 = XVECEXP (x7, 0, 0);
          operands[4] = x8;
          if (!const48_operand (operands[4], SImode))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case V16SFmode:
              if (pattern597 (x3, HImode, V16SFmode) != 0
                  || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 15997 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512ER))))
                return -1;
              return 3994; /* avx512er_exp2v16sf_mask_round */

            case V8DFmode:
              if (pattern597 (x3, QImode, V8DFmode) != 0
                  || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 15997 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512ER))))
                return -1;
              return 3998; /* avx512er_exp2v8df_mask_round */

            default:
              return -1;
            }

        case 174:
          switch (pattern599 (x1))
            {
            case 0:
              if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 16008 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512ER))))
                return -1;
              return 4002; /* avx512er_rcp28v16sf_mask_round */

            case 1:
              if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 16008 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512ER))))
                return -1;
              return 4006; /* avx512er_rcp28v8df_mask_round */

            case 2:
              if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 16022 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512ER)))
                return -1;
              return 4008; /* avx512er_vmrcp28v4sf_round */

            case 3:
              if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 16022 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512ER) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
                return -1;
              return 4010; /* avx512er_vmrcp28v2df_round */

            default:
              return -1;
            }

        case 175:
          switch (pattern599 (x1))
            {
            case 0:
              if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 16034 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512ER))))
                return -1;
              return 4014; /* avx512er_rsqrt28v16sf_mask_round */

            case 1:
              if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 16034 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512ER))))
                return -1;
              return 4018; /* avx512er_rsqrt28v8df_mask_round */

            case 2:
              if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 16048 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512ER)))
                return -1;
              return 4020; /* avx512er_vmrsqrt28v4sf_round */

            case 3:
              if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 16048 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512ER) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
                return -1;
              return 4022; /* avx512er_vmrsqrt28v2df_round */

            default:
              return -1;
            }

        case 142:
          if (GET_MODE (x4) != V16SFmode
              || !register_operand (operands[0], V16SFmode)
              || GET_MODE (x3) != V16SFmode
              || !register_operand (operands[1], V16HImode)
              || !vector_move_operand (operands[2], V16SFmode))
            return -1;
          x9 = XEXP (x3, 2);
          operands[3] = x9;
          if (!register_operand (operands[3], HImode))
            return -1;
          x7 = XVECEXP (x1, 0, 1);
          x8 = XVECEXP (x7, 0, 0);
          operands[4] = x8;
          if (!const48_operand (operands[4], SImode)
              || !
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 4581; /* avx512f_vcvtph2ps512_mask_round */

        default:
          return -1;
        }

    case 4:
      if (XINT (x4, 1) != 158)
        return -1;
      x5 = XVECEXP (x4, 0, 0);
      operands[1] = x5;
      x6 = XVECEXP (x4, 0, 1);
      operands[2] = x6;
      x11 = XVECEXP (x4, 0, 2);
      operands[3] = x11;
      x12 = XVECEXP (x4, 0, 3);
      operands[4] = x12;
      if (!const_0_to_255_operand (operands[4], SImode))
        return -1;
      x7 = XVECEXP (x1, 0, 1);
      x8 = XVECEXP (x7, 0, 0);
      if (!const48_operand (x8, SImode))
        return -1;
      x10 = XEXP (x3, 1);
      switch (GET_CODE (x10))
        {
        case CONST_INT:
        case CONST_WIDE_INT:
        case CONST_DOUBLE:
        case CONST_VECTOR:
          operands[5] = x10;
          x9 = XEXP (x3, 2);
          operands[6] = x9;
          operands[7] = x8;
          switch (GET_MODE (operands[0]))
            {
            case V16SFmode:
              if (pattern865 (x3, V16SFmode, V16SImode, HImode) != 0
                  || !
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 2660; /* avx512f_fixupimmv16sf_maskz_1_round */

            case V8SFmode:
              if (pattern865 (x3, V8SFmode, V8SImode, QImode) != 0
                  || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8256 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 2664; /* avx512vl_fixupimmv8sf_maskz_1_round */

            case V4SFmode:
              if (pattern865 (x3, V4SFmode, V4SImode, QImode) != 0
                  || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8256 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 2668; /* avx512vl_fixupimmv4sf_maskz_1_round */

            case V8DFmode:
              if (pattern865 (x3, V8DFmode, V8DImode, QImode) != 0
                  || !
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 2672; /* avx512f_fixupimmv8df_maskz_1_round */

            case V4DFmode:
              if (pattern865 (x3, V4DFmode, V4DImode, QImode) != 0
                  || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8256 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 2676; /* avx512vl_fixupimmv4df_maskz_1_round */

            case V2DFmode:
              if (pattern865 (x3, V2DFmode, V2DImode, QImode) != 0
                  || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8256 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                return -1;
              return 2680; /* avx512vl_fixupimmv2df_maskz_1_round */

            default:
              return -1;
            }

        case REG:
        case SUBREG:
          if (!rtx_equal_p (x10, operands[1]))
            return -1;
          x9 = XEXP (x3, 2);
          switch (GET_CODE (x9))
            {
            case REG:
            case SUBREG:
              operands[5] = x9;
              operands[6] = x8;
              switch (GET_MODE (operands[0]))
                {
                case V16SFmode:
                  if (pattern872 (x3, V16SImode, V16SFmode, HImode) != 0
                      || !
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                    return -1;
                  return 2682; /* avx512f_fixupimmv16sf_mask_round */

                case V8SFmode:
                  if (pattern872 (x3, V8SImode, V8SFmode, QImode) != 0
                      || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8272 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 2684; /* avx512vl_fixupimmv8sf_mask_round */

                case V4SFmode:
                  if (pattern872 (x3, V4SImode, V4SFmode, QImode) != 0
                      || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8272 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 2686; /* avx512vl_fixupimmv4sf_mask_round */

                case V8DFmode:
                  if (pattern872 (x3, V8DImode, V8DFmode, QImode) != 0
                      || !
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                    return -1;
                  return 2688; /* avx512f_fixupimmv8df_mask_round */

                case V4DFmode:
                  if (pattern872 (x3, V4DImode, V4DFmode, QImode) != 0
                      || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8272 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 2690; /* avx512vl_fixupimmv4df_mask_round */

                case V2DFmode:
                  if (pattern872 (x3, V2DImode, V2DFmode, QImode) != 0
                      || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8272 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 2692; /* avx512vl_fixupimmv2df_mask_round */

                default:
                  return -1;
                }

            case CONST_INT:
              if (XWINT (x9, 0) != 1LL)
                return -1;
              operands[5] = x8;
              switch (GET_MODE (operands[0]))
                {
                case V4SFmode:
                  if (pattern873 (x3, V4SImode, V4SFmode) != 0
                      || !
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                    return -1;
                  return 2694; /* avx512f_sfixupimmv4sf_round */

                case V2DFmode:
                  if (pattern873 (x3, V2DImode, V2DFmode) != 0
                      || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8304 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
                    return -1;
                  return 2698; /* avx512f_sfixupimmv2df_round */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_217 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XVECEXP (x2, 0, 0);
  if (!const_4_or_8_to_11_operand (x3, SImode))
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 1);
  x6 = XEXP (x5, 0);
  x7 = XEXP (x6, 0);
  switch (GET_CODE (x7))
    {
    case REG:
    case SUBREG:
      operands[1] = x7;
      x8 = XEXP (x6, 1);
      operands[2] = x8;
      x9 = XEXP (x6, 2);
      switch (GET_CODE (x9))
        {
        case REG:
        case SUBREG:
        case MEM:
          operands[3] = x9;
          x10 = XEXP (x5, 1);
          switch (GET_CODE (x10))
            {
            case CONST_INT:
            case CONST_WIDE_INT:
            case CONST_DOUBLE:
            case CONST_VECTOR:
              operands[4] = x10;
              x11 = XEXP (x5, 2);
              operands[5] = x11;
              operands[6] = x3;
              switch (GET_MODE (operands[0]))
                {
                case V16SFmode:
                  if (pattern806 (x5, HImode, V16SFmode) != 0
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3624 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V16SFmode == V16SFmode
							      || V16SFmode == V8DFmode
							      || V16SFmode == V8DImode
							      || V16SFmode == V16SImode))))
                    return -1;
                  return 1841; /* fma_fmadd_v16sf_maskz_1_round */

                case V8DFmode:
                  if (pattern806 (x5, QImode, V8DFmode) != 0
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3624 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V8DFmode == V16SFmode
							      || V8DFmode == V8DFmode
							      || V8DFmode == V8DImode
							      || V8DFmode == V16SImode))))
                    return -1;
                  return 1850; /* fma_fmadd_v8df_maskz_1_round */

                default:
                  return -1;
                }

            case REG:
            case SUBREG:
              x11 = XEXP (x5, 2);
              switch (GET_CODE (x11))
                {
                case REG:
                case SUBREG:
                  operands[4] = x11;
                  operands[5] = x3;
                  switch (GET_MODE (operands[0]))
                    {
                    case V16SFmode:
                      if (pattern807 (x5, HImode, V16SFmode) != 0)
                        return -1;
                      if (nonimmediate_operand (operands[3], V16SFmode)
                          && rtx_equal_p (x10, operands[1])
                          && (
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3641 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (V16SFmode == V16SFmode
							      || V16SFmode == V8DFmode
							      || V16SFmode == V8DImode
							      || V16SFmode == V16SImode))))
                        return 1856; /* avx512f_fmadd_v16sf_mask_round */
                      if (!register_operand (operands[3], V16SFmode)
                          || !rtx_equal_p (x10, operands[3])
                          || !
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                        return -1;
                      return 1864; /* avx512f_fmadd_v16sf_mask3_round */

                    case V8DFmode:
                      if (pattern807 (x5, QImode, V8DFmode) != 0)
                        return -1;
                      if (nonimmediate_operand (operands[3], V8DFmode)
                          && rtx_equal_p (x10, operands[1])
                          && (
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3641 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (V8DFmode == V16SFmode
							      || V8DFmode == V8DFmode
							      || V8DFmode == V8DImode
							      || V8DFmode == V16SImode))))
                        return 1860; /* avx512f_fmadd_v8df_mask_round */
                      if (!register_operand (operands[3], V8DFmode)
                          || !rtx_equal_p (x10, operands[3])
                          || !
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                        return -1;
                      return 1870; /* avx512f_fmadd_v8df_mask3_round */

                    case V8SFmode:
                      if (pattern808 (x5, V8SFmode) != 0
                          || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 3658 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                        return -1;
                      return 1866; /* avx512vl_fmadd_v8sf_mask3_round */

                    case V4SFmode:
                      if (pattern808 (x5, V4SFmode) != 0
                          || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 3658 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                        return -1;
                      return 1868; /* avx512vl_fmadd_v4sf_mask3_round */

                    case V4DFmode:
                      if (pattern808 (x5, V4DFmode) != 0
                          || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 3658 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                        return -1;
                      return 1872; /* avx512vl_fmadd_v4df_mask3_round */

                    case V2DFmode:
                      if (pattern808 (x5, V2DFmode) != 0
                          || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 3658 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                        return -1;
                      return 1874; /* avx512vl_fmadd_v2df_mask3_round */

                    default:
                      return -1;
                    }

                case CONST_INT:
                  if (XWINT (x11, 0) != 1LL)
                    return -1;
                  operands[4] = x3;
                  if (!rtx_equal_p (x10, operands[1]))
                    return -1;
                  switch (GET_MODE (operands[0]))
                    {
                    case V4SFmode:
                      if (pattern843 (x5, V4SFmode) != 0
                          || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4064 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_AVX512F)))
                        return -1;
                      return 2110; /* *fmai_fmadd_v4sf */

                    case V2DFmode:
                      if (pattern843 (x5, V2DFmode) != 0
                          || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4064 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_AVX512F) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
                        return -1;
                      return 2112; /* *fmai_fmadd_v2df */

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case NEG:
          x12 = XEXP (x9, 0);
          operands[3] = x12;
          x10 = XEXP (x5, 1);
          switch (GET_CODE (x10))
            {
            case CONST_INT:
            case CONST_WIDE_INT:
            case CONST_DOUBLE:
            case CONST_VECTOR:
              operands[4] = x10;
              x11 = XEXP (x5, 2);
              operands[5] = x11;
              operands[6] = x3;
              switch (GET_MODE (operands[0]))
                {
                case V16SFmode:
                  if (pattern810 (x5, HImode, V16SFmode) != 0
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3689 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V16SFmode == V16SFmode
							      || V16SFmode == V8DFmode
							      || V16SFmode == V8DImode
							      || V16SFmode == V16SImode))))
                    return -1;
                  return 1885; /* fma_fmsub_v16sf_maskz_1_round */

                case V8DFmode:
                  if (pattern810 (x5, QImode, V8DFmode) != 0
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3689 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V8DFmode == V16SFmode
							      || V8DFmode == V8DFmode
							      || V8DFmode == V8DImode
							      || V8DFmode == V16SImode))))
                    return -1;
                  return 1894; /* fma_fmsub_v8df_maskz_1_round */

                default:
                  return -1;
                }

            case REG:
            case SUBREG:
              x11 = XEXP (x5, 2);
              switch (GET_CODE (x11))
                {
                case REG:
                case SUBREG:
                  operands[4] = x11;
                  operands[5] = x3;
                  switch (GET_MODE (operands[0]))
                    {
                    case V16SFmode:
                      if (pattern811 (x5, HImode, V16SFmode) != 0)
                        return -1;
                      if (nonimmediate_operand (operands[3], V16SFmode)
                          && rtx_equal_p (x10, operands[1])
                          && 
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                        return 1900; /* avx512f_fmsub_v16sf_mask_round */
                      if (!register_operand (operands[3], V16SFmode)
                          || !rtx_equal_p (x10, operands[3])
                          || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3725 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (V16SFmode == V16SFmode
							      || V16SFmode == V8DFmode
							      || V16SFmode == V8DImode
							      || V16SFmode == V16SImode))))
                        return -1;
                      return 1912; /* avx512f_fmsub_v16sf_mask3_round */

                    case V8SFmode:
                      if (pattern812 (x5, V8SFmode) != 0
                          || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 3707 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                        return -1;
                      return 1902; /* avx512vl_fmsub_v8sf_mask_round */

                    case V4SFmode:
                      if (pattern812 (x5, V4SFmode) != 0
                          || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 3707 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                        return -1;
                      return 1904; /* avx512vl_fmsub_v4sf_mask_round */

                    case V8DFmode:
                      if (pattern811 (x5, QImode, V8DFmode) != 0)
                        return -1;
                      if (nonimmediate_operand (operands[3], V8DFmode)
                          && rtx_equal_p (x10, operands[1])
                          && 
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                        return 1906; /* avx512f_fmsub_v8df_mask_round */
                      if (!register_operand (operands[3], V8DFmode)
                          || !rtx_equal_p (x10, operands[3])
                          || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3725 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (V8DFmode == V16SFmode
							      || V8DFmode == V8DFmode
							      || V8DFmode == V8DImode
							      || V8DFmode == V16SImode))))
                        return -1;
                      return 1916; /* avx512f_fmsub_v8df_mask3_round */

                    case V4DFmode:
                      if (pattern812 (x5, V4DFmode) != 0
                          || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 3707 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                        return -1;
                      return 1908; /* avx512vl_fmsub_v4df_mask_round */

                    case V2DFmode:
                      if (pattern812 (x5, V2DFmode) != 0
                          || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 3707 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                        return -1;
                      return 1910; /* avx512vl_fmsub_v2df_mask_round */

                    default:
                      return -1;
                    }

                case CONST_INT:
                  if (XWINT (x11, 0) != 1LL)
                    return -1;
                  operands[4] = x3;
                  if (!rtx_equal_p (x10, operands[1]))
                    return -1;
                  switch (GET_MODE (operands[0]))
                    {
                    case V4SFmode:
                      if (pattern844 (x5, V4SFmode) != 0
                          || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4081 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_AVX512F)))
                        return -1;
                      return 2114; /* *fmai_fmsub_v4sf */

                    case V2DFmode:
                      if (pattern844 (x5, V2DFmode) != 0
                          || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4081 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_AVX512F) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
                        return -1;
                      return 2116; /* *fmai_fmsub_v2df */

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    case NEG:
      x9 = XEXP (x6, 2);
      switch (GET_CODE (x9))
        {
        case REG:
        case SUBREG:
        case MEM:
          operands[3] = x9;
          switch (pattern600 (x1))
            {
            case 0:
              x11 = XEXP (x5, 2);
              operands[5] = x11;
              operands[6] = x3;
              switch (GET_MODE (operands[0]))
                {
                case V16SFmode:
                  if (pattern813 (x5, HImode, V16SFmode) != 0
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3756 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V16SFmode == V16SFmode
							      || V16SFmode == V8DFmode
							      || V16SFmode == V8DImode
							      || V16SFmode == V16SImode))))
                    return -1;
                  return 1929; /* fma_fnmadd_v16sf_maskz_1_round */

                case V8DFmode:
                  if (pattern813 (x5, QImode, V8DFmode) != 0
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3756 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V8DFmode == V16SFmode
							      || V8DFmode == V8DFmode
							      || V8DFmode == V8DImode
							      || V8DFmode == V16SImode))))
                    return -1;
                  return 1938; /* fma_fnmadd_v8df_maskz_1_round */

                default:
                  return -1;
                }

            case 1:
              operands[5] = x3;
              switch (GET_MODE (operands[0]))
                {
                case V16SFmode:
                  if (pattern814 (x5, HImode, V16SFmode) != 0)
                    return -1;
                  if (nonimmediate_operand (operands[3], V16SFmode))
                    {
                      x10 = XEXP (x5, 1);
                      if (rtx_equal_p (x10, operands[1])
                          && (
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3774 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (V16SFmode == V16SFmode
							      || V16SFmode == V8DFmode
							      || V16SFmode == V8DImode
							      || V16SFmode == V16SImode))))
                        return 1944; /* avx512f_fnmadd_v16sf_mask_round */
                    }
                  if (!register_operand (operands[3], V16SFmode))
                    return -1;
                  x10 = XEXP (x5, 1);
                  if (!rtx_equal_p (x10, operands[3])
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3792 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (V16SFmode == V16SFmode
							      || V16SFmode == V8DFmode
							      || V16SFmode == V8DImode
							      || V16SFmode == V16SImode))))
                    return -1;
                  return 1952; /* avx512f_fnmadd_v16sf_mask3_round */

                case V8DFmode:
                  if (pattern814 (x5, QImode, V8DFmode) != 0)
                    return -1;
                  if (nonimmediate_operand (operands[3], V8DFmode))
                    {
                      x10 = XEXP (x5, 1);
                      if (rtx_equal_p (x10, operands[1])
                          && (
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3774 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (V8DFmode == V16SFmode
							      || V8DFmode == V8DFmode
							      || V8DFmode == V8DImode
							      || V8DFmode == V16SImode))))
                        return 1948; /* avx512f_fnmadd_v8df_mask_round */
                    }
                  if (!register_operand (operands[3], V8DFmode))
                    return -1;
                  x10 = XEXP (x5, 1);
                  if (!rtx_equal_p (x10, operands[3])
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3792 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (V8DFmode == V16SFmode
							      || V8DFmode == V8DFmode
							      || V8DFmode == V8DImode
							      || V8DFmode == V16SImode))))
                    return -1;
                  return 1956; /* avx512f_fnmadd_v8df_mask3_round */

                default:
                  return -1;
                }

            case 2:
              if (pattern845 (x5, V4SFmode) != 0
                  || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4098 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_AVX512F)))
                return -1;
              return 2118; /* *fmai_fnmadd_v4sf_round */

            case 3:
              if (pattern845 (x5, V2DFmode) != 0
                  || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4098 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_AVX512F) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
                return -1;
              return 2120; /* *fmai_fnmadd_v2df_round */

            default:
              return -1;
            }

        case NEG:
          x12 = XEXP (x9, 0);
          operands[3] = x12;
          switch (pattern600 (x1))
            {
            case 0:
              x11 = XEXP (x5, 2);
              operands[5] = x11;
              operands[6] = x3;
              switch (GET_MODE (operands[0]))
                {
                case V4SFmode:
                  if (pattern815 (x5, V4SFmode) != 0
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3806 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4)))
                    return -1;
                  return 1966; /* *fma_fnmsub_v4sf */

                case V2DFmode:
                  if (pattern815 (x5, V2DFmode) != 0
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3806 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4)))
                    return -1;
                  return 1970; /* *fma_fnmsub_v2df */

                case V8SFmode:
                  if (pattern815 (x5, V8SFmode) != 0
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3806 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4)))
                    return -1;
                  return 1974; /* *fma_fnmsub_v8sf */

                case V4DFmode:
                  if (pattern815 (x5, V4DFmode) != 0
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3806 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4)))
                    return -1;
                  return 1978; /* *fma_fnmsub_v4df */

                case V16SFmode:
                  if (pattern816 (x5, HImode, V16SFmode) != 0
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3825 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V16SFmode == V16SFmode
							      || V16SFmode == V8DFmode
							      || V16SFmode == V8DImode
							      || V16SFmode == V16SImode))))
                    return -1;
                  return 1983; /* fma_fnmsub_v16sf_maskz_1_round */

                case V8DFmode:
                  if (pattern816 (x5, QImode, V8DFmode) != 0
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3825 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V8DFmode == V16SFmode
							      || V8DFmode == V8DFmode
							      || V8DFmode == V8DImode
							      || V8DFmode == V16SImode))))
                    return -1;
                  return 1992; /* fma_fnmsub_v8df_maskz_1_round */

                default:
                  return -1;
                }

            case 1:
              operands[5] = x3;
              switch (GET_MODE (operands[0]))
                {
                case V16SFmode:
                  if (pattern817 (x5, HImode, V16SFmode) != 0)
                    return -1;
                  if (nonimmediate_operand (operands[3], V16SFmode))
                    {
                      x10 = XEXP (x5, 1);
                      if (rtx_equal_p (x10, operands[1])
                          && (
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3844 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (V16SFmode == V16SFmode
							      || V16SFmode == V8DFmode
							      || V16SFmode == V8DImode
							      || V16SFmode == V16SImode))))
                        return 1998; /* avx512f_fnmsub_v16sf_mask_round */
                    }
                  if (!register_operand (operands[3], V16SFmode))
                    return -1;
                  x10 = XEXP (x5, 1);
                  if (!rtx_equal_p (x10, operands[3])
                      || !
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                    return -1;
                  return 2006; /* avx512f_fnmsub_v16sf_mask3_round */

                case V8DFmode:
                  if (pattern817 (x5, QImode, V8DFmode) != 0)
                    return -1;
                  if (nonimmediate_operand (operands[3], V8DFmode))
                    {
                      x10 = XEXP (x5, 1);
                      if (rtx_equal_p (x10, operands[1])
                          && (
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3844 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (V8DFmode == V16SFmode
							      || V8DFmode == V8DFmode
							      || V8DFmode == V8DImode
							      || V8DFmode == V16SImode))))
                        return 2002; /* avx512f_fnmsub_v8df_mask_round */
                    }
                  if (!register_operand (operands[3], V8DFmode))
                    return -1;
                  x10 = XEXP (x5, 1);
                  if (!rtx_equal_p (x10, operands[3])
                      || !
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                    return -1;
                  return 2012; /* avx512f_fnmsub_v8df_mask3_round */

                case V8SFmode:
                  if (pattern818 (x5, V8SFmode) != 0
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 3863 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 2008; /* avx512vl_fnmsub_v8sf_mask3_round */

                case V4SFmode:
                  if (pattern818 (x5, V4SFmode) != 0
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 3863 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 266 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 2010; /* avx512vl_fnmsub_v4sf_mask3_round */

                case V4DFmode:
                  if (pattern818 (x5, V4DFmode) != 0
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 3863 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 2014; /* avx512vl_fnmsub_v4df_mask3_round */

                case V2DFmode:
                  if (pattern818 (x5, V2DFmode) != 0
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 3863 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
                    return -1;
                  return 2016; /* avx512vl_fnmsub_v2df_mask3_round */

                default:
                  return -1;
                }

            case 2:
              if (pattern846 (x5, V4SFmode) != 0
                  || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4116 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_AVX512F)))
                return -1;
              return 2122; /* *fmai_fnmsub_v4sf_round */

            case 3:
              if (pattern846 (x5, V2DFmode) != 0
                  || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4116 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_AVX512F) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
                return -1;
              return 2124; /* *fmai_fnmsub_v2df_round */

            default:
              return -1;
            }

        default:
          return -1;
        }

    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, 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 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != 17)
    return -1;
  x4 = XEXP (x2, 1);
  x5 = XEXP (x4, 0);
  switch (GET_CODE (x5))
    {
    case REG:
    case SUBREG:
    case MEM:
      return recog_200 (x1, insn, pnum_clobbers);

    case PLUS:
      return recog_201 (x1, insn, pnum_clobbers);

    case NEG:
      return recog_203 (x1, insn, pnum_clobbers);

    case MINUS:
      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) != SET)
        return -1;
      x8 = XEXP (x5, 0);
      operands[1] = x8;
      x9 = XEXP (x5, 1);
      operands[2] = x9;
      x10 = XEXP (x7, 0);
      operands[0] = x10;
      x11 = XEXP (x7, 1);
      switch (GET_CODE (x11))
        {
        case MINUS:
          switch (pattern465 (x1))
            {
            case 0:
              if (!
#line 6479 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCGOCmode)
   && ix86_binary_operator_ok (MINUS, QImode, operands)))
                return -1;
              return 267; /* *subqi_2 */

            case 1:
              if (!
#line 6479 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCGOCmode)
   && ix86_binary_operator_ok (MINUS, HImode, operands)))
                return -1;
              return 268; /* *subhi_2 */

            case 2:
              if (!
#line 6479 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCGOCmode)
   && ix86_binary_operator_ok (MINUS, SImode, operands)))
                return -1;
              return 269; /* *subsi_2 */

            case 3:
              if (!(
#line 6479 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCGOCmode)
   && ix86_binary_operator_ok (MINUS, DImode, operands)) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 270; /* *subdi_2 */

            default:
              return -1;
            }

        case ZERO_EXTEND:
          if (pattern541 (x1, MINUS) != 0)
            return -1;
          x12 = XEXP (x11, 0);
          if (pattern578 (x12) != 0
              || !
#line 6495 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)
   && ix86_binary_operator_ok (MINUS, SImode, operands)))
            return -1;
          return 271; /* *subsi_2_zext */

        default:
          return -1;
        }

    case AND:
      return recog_202 (x1, insn, pnum_clobbers);

    case IOR:
      x6 = XEXP (x4, 1);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      switch (pattern347 (x1))
        {
        case 0:
          x7 = XVECEXP (x1, 0, 1);
          x11 = XEXP (x7, 1);
          switch (GET_CODE (x11))
            {
            case IOR:
              switch (pattern467 (x1))
                {
                case 0:
                  if (!
#line 8860 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && ix86_binary_operator_ok (IOR, QImode, operands)))
                    return -1;
                  return 427; /* *iorqi_2 */

                case 1:
                  if (!
#line 8860 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && ix86_binary_operator_ok (IOR, HImode, operands)))
                    return -1;
                  return 429; /* *iorhi_2 */

                case 2:
                  if (!
#line 8860 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && ix86_binary_operator_ok (IOR, SImode, operands)))
                    return -1;
                  return 431; /* *iorsi_2 */

                case 3:
                  if (!(
#line 8860 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && ix86_binary_operator_ok (IOR, DImode, operands)) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                    return -1;
                  return 433; /* *iordi_2 */

                case 4:
                  if (!
#line 9015 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
   && ix86_match_ccmode (insn, CCNOmode)
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
                    return -1;
                  return 448; /* *iorqi_2_slp */

                case 5:
                  if (!
#line 9002 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_match_ccmode (insn, CCNOmode)
   && ix86_binary_operator_ok (IOR, SImode, operands)))
                    return -1;
                  return 446; /* *iorsi_2_zext_imm */

                default:
                  return -1;
                }

            case ZERO_EXTEND:
              if (pattern468 (x1, IOR) != 0
                  || !
#line 8988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_match_ccmode (insn, CCNOmode)
   && ix86_binary_operator_ok (IOR, SImode, operands)))
                return -1;
              return 444; /* *iorsi_2_zext */

            default:
              return -1;
            }

        case 1:
          if (!
#line 9029 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
            return -1;
          return 450; /* *iorqi_3 */

        case 2:
          if (!
#line 9029 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
            return -1;
          return 452; /* *iorhi_3 */

        case 3:
          if (!
#line 9029 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
            return -1;
          return 454; /* *iorsi_3 */

        case 4:
          if (!(
#line 9029 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          return 456; /* *iordi_3 */

        default:
          return -1;
        }

    case XOR:
      x6 = XEXP (x4, 1);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x8 = XEXP (x5, 0);
      switch (GET_CODE (x8))
        {
        case REG:
        case SUBREG:
        case MEM:
          switch (pattern347 (x1))
            {
            case 0:
              x7 = XVECEXP (x1, 0, 1);
              x11 = XEXP (x7, 1);
              switch (GET_CODE (x11))
                {
                case XOR:
                  switch (pattern467 (x1))
                    {
                    case 0:
                      if (!
#line 8860 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && ix86_binary_operator_ok (XOR, QImode, operands)))
                        return -1;
                      return 428; /* *xorqi_2 */

                    case 1:
                      if (!
#line 8860 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && ix86_binary_operator_ok (XOR, HImode, operands)))
                        return -1;
                      return 430; /* *xorhi_2 */

                    case 2:
                      if (!
#line 8860 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && ix86_binary_operator_ok (XOR, SImode, operands)))
                        return -1;
                      return 432; /* *xorsi_2 */

                    case 3:
                      if (!(
#line 8860 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && ix86_binary_operator_ok (XOR, DImode, operands)) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                        return -1;
                      return 434; /* *xordi_2 */

                    case 4:
                      if (!
#line 9015 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
   && ix86_match_ccmode (insn, CCNOmode)
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
                        return -1;
                      return 449; /* *xorqi_2_slp */

                    case 5:
                      if (!
#line 9002 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_match_ccmode (insn, CCNOmode)
   && ix86_binary_operator_ok (XOR, SImode, operands)))
                        return -1;
                      return 447; /* *xorsi_2_zext_imm */

                    default:
                      return -1;
                    }

                case ZERO_EXTEND:
                  if (pattern468 (x1, XOR) != 0
                      || !
#line 8988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_match_ccmode (insn, CCNOmode)
   && ix86_binary_operator_ok (XOR, SImode, operands)))
                    return -1;
                  return 445; /* *xorsi_2_zext */

                default:
                  return -1;
                }

            case 1:
              if (!
#line 9029 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                return -1;
              return 451; /* *xorqi_3 */

            case 2:
              if (!
#line 9029 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                return -1;
              return 453; /* *xorhi_3 */

            case 3:
              if (!
#line 9029 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                return -1;
              return 455; /* *xorsi_3 */

            case 4:
              if (!(
#line 9029 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 457; /* *xordi_3 */

            default:
              return -1;
            }

        case ZERO_EXTRACT:
          if (pattern395 (x1, XOR) != 0
              || !general_x64nomem_operand (operands[2], QImode))
            return -1;
          x7 = XVECEXP (x1, 0, 1);
          x10 = XEXP (x7, 0);
          x13 = XEXP (x10, 0);
          operands[0] = x13;
          if (!ext_register_operand (operands[0], VOIDmode))
            return -1;
          x11 = XEXP (x7, 1);
          x12 = XEXP (x11, 0);
          x14 = XEXP (x12, 0);
          if (!rtx_equal_p (x14, operands[1]))
            return -1;
          x15 = XEXP (x11, 1);
          if (!rtx_equal_p (x15, operands[2])
              || !
#line 9172 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)))
            return -1;
          return 464; /* *xorqi_cc_ext_1 */

        default:
          return -1;
        }

    case LSHIFTRT:
      x6 = XEXP (x4, 1);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x8 = XEXP (x5, 0);
      switch (GET_CODE (x8))
        {
        case NEG:
          if (GET_MODE (x8) != DImode)
            return -1;
          x16 = XEXP (x8, 0);
          if (GET_CODE (x16) != ASHIFT
              || GET_MODE (x16) != DImode)
            return -1;
          x17 = XEXP (x16, 1);
          if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 32])
            return -1;
          x9 = XEXP (x5, 1);
          if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 32])
            return -1;
          x7 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x7) != SET)
            return -1;
          x11 = XEXP (x7, 1);
          if (GET_CODE (x11) != LSHIFTRT
              || GET_MODE (x11) != DImode)
            return -1;
          x12 = XEXP (x11, 0);
          if (GET_CODE (x12) != NEG
              || GET_MODE (x12) != DImode)
            return -1;
          x14 = XEXP (x12, 0);
          if (GET_CODE (x14) != ASHIFT
              || GET_MODE (x14) != DImode)
            return -1;
          x18 = XEXP (x14, 1);
          if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 32])
            return -1;
          x15 = XEXP (x11, 1);
          if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 32]
              || GET_MODE (x3) != CCZmode
              || GET_MODE (x4) != CCZmode
              || GET_MODE (x5) != DImode)
            return -1;
          x19 = XEXP (x16, 0);
          operands[1] = x19;
          if (!register_operand (operands[1], DImode))
            return -1;
          x10 = XEXP (x7, 0);
          operands[0] = x10;
          if (!register_operand (operands[0], DImode))
            return -1;
          x20 = XEXP (x14, 0);
          if (!rtx_equal_p (x20, operands[1])
              || !
#line 9261 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_unary_operator_ok (NEG, SImode, operands)))
            return -1;
          return 476; /* *negsi2_cmpz_zext */

        case REG:
        case SUBREG:
        case MEM:
          switch (pattern348 (x1))
            {
            case 0:
              x7 = XVECEXP (x1, 0, 1);
              x11 = XEXP (x7, 1);
              switch (GET_CODE (x11))
                {
                case LSHIFTRT:
                  switch (pattern581 (x1))
                    {
                    case 0:
                      if (!
#line 10662 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[2] == const1_rtx
	&& TARGET_SHIFT1))
   && ix86_match_ccmode (insn, CCGOCmode)
   && ix86_binary_operator_ok (LSHIFTRT, QImode, operands)))
                        return -1;
                      return 578; /* *lshrqi3_cmp */

                    case 1:
                      if (!
#line 10662 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[2] == const1_rtx
	&& TARGET_SHIFT1))
   && ix86_match_ccmode (insn, CCGOCmode)
   && ix86_binary_operator_ok (LSHIFTRT, HImode, operands)))
                        return -1;
                      return 580; /* *lshrhi3_cmp */

                    case 2:
                      if (!
#line 10662 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[2] == const1_rtx
	&& TARGET_SHIFT1))
   && ix86_match_ccmode (insn, CCGOCmode)
   && ix86_binary_operator_ok (LSHIFTRT, SImode, operands)))
                        return -1;
                      return 582; /* *lshrsi3_cmp */

                    case 3:
                      if (!(
#line 10662 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[2] == const1_rtx
	&& TARGET_SHIFT1))
   && ix86_match_ccmode (insn, CCGOCmode)
   && ix86_binary_operator_ok (LSHIFTRT, DImode, operands)) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                        return -1;
                      return 584; /* *lshrdi3_cmp */

                    default:
                      return -1;
                    }

                case ZERO_EXTEND:
                  if (pattern582 (x1, LSHIFTRT) != 0
                      || !
#line 10693 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT
   && (optimize_function_for_size_p (cfun)
       || !TARGET_PARTIAL_FLAG_REG_STALL
       || (operands[2] == const1_rtx
	   && TARGET_SHIFT1))
   && ix86_match_ccmode (insn, CCGOCmode)
   && ix86_binary_operator_ok (LSHIFTRT, SImode, operands)))
                    return -1;
                  return 586; /* *lshrsi3_cmp_zext */

                default:
                  return -1;
                }

            case 1:
              if (!
#line 10725 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[2] == const1_rtx
	&& TARGET_SHIFT1))
   && ix86_match_ccmode (insn, CCGOCmode)))
                return -1;
              return 588; /* *lshrqi3_cconly */

            case 2:
              if (!
#line 10725 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[2] == const1_rtx
	&& TARGET_SHIFT1))
   && ix86_match_ccmode (insn, CCGOCmode)))
                return -1;
              return 590; /* *lshrhi3_cconly */

            case 3:
              if (!
#line 10725 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[2] == const1_rtx
	&& TARGET_SHIFT1))
   && ix86_match_ccmode (insn, CCGOCmode)))
                return -1;
              return 592; /* *lshrsi3_cconly */

            case 4:
              if (!(
#line 10725 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[2] == const1_rtx
	&& TARGET_SHIFT1))
   && ix86_match_ccmode (insn, CCGOCmode)) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 594; /* *lshrdi3_cconly */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case NOT:
      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) != SET)
        return -1;
      x8 = XEXP (x5, 0);
      operands[1] = x8;
      x10 = XEXP (x7, 0);
      operands[0] = x10;
      x11 = XEXP (x7, 1);
      switch (GET_CODE (x11))
        {
        case NOT:
          switch (pattern540 (x1))
            {
            case 0:
              if (!
#line 9632 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && ix86_unary_operator_ok (NOT, QImode, operands)))
                return -1;
              return 510; /* *one_cmplqi2_2 */

            case 1:
              if (!
#line 9632 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && ix86_unary_operator_ok (NOT, HImode, operands)))
                return -1;
              return 511; /* *one_cmplhi2_2 */

            case 2:
              if (!
#line 9632 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && ix86_unary_operator_ok (NOT, SImode, operands)))
                return -1;
              return 512; /* *one_cmplsi2_2 */

            case 3:
              if (!(
#line 9632 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && ix86_unary_operator_ok (NOT, DImode, operands)) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 513; /* *one_cmpldi2_2 */

            default:
              return -1;
            }

        case ZERO_EXTEND:
          if (pattern541 (x1, NOT) != 0
              || !register_operand (operands[0], DImode))
            return -1;
          x12 = XEXP (x11, 0);
          x14 = XEXP (x12, 0);
          if (!rtx_equal_p (x14, operands[1])
              || !
#line 9659 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_match_ccmode (insn, CCNOmode)
   && ix86_unary_operator_ok (NOT, SImode, operands)))
            return -1;
          return 514; /* *one_cmplsi2_2_zext */

        default:
          return -1;
        }

    case ASHIFT:
      x6 = XEXP (x4, 1);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      switch (pattern348 (x1))
        {
        case 0:
          x7 = XVECEXP (x1, 0, 1);
          x11 = XEXP (x7, 1);
          switch (GET_CODE (x11))
            {
            case ASHIFT:
              switch (pattern581 (x1))
                {
                case 0:
                  if (!
#line 10190 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[2] == const1_rtx
	&& (TARGET_SHIFT1
	    || (TARGET_DOUBLE_WITH_ADD && REG_P (operands[0])))))
   && ix86_match_ccmode (insn, CCGOCmode)
   && ix86_binary_operator_ok (ASHIFT, QImode, operands)))
                    return -1;
                  return 538; /* *ashlqi3_cmp */

                case 1:
                  if (!
#line 10190 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[2] == const1_rtx
	&& (TARGET_SHIFT1
	    || (TARGET_DOUBLE_WITH_ADD && REG_P (operands[0])))))
   && ix86_match_ccmode (insn, CCGOCmode)
   && ix86_binary_operator_ok (ASHIFT, HImode, operands)))
                    return -1;
                  return 539; /* *ashlhi3_cmp */

                case 2:
                  if (!
#line 10190 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[2] == const1_rtx
	&& (TARGET_SHIFT1
	    || (TARGET_DOUBLE_WITH_ADD && REG_P (operands[0])))))
   && ix86_match_ccmode (insn, CCGOCmode)
   && ix86_binary_operator_ok (ASHIFT, SImode, operands)))
                    return -1;
                  return 540; /* *ashlsi3_cmp */

                case 3:
                  if (!(
#line 10190 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[2] == const1_rtx
	&& (TARGET_SHIFT1
	    || (TARGET_DOUBLE_WITH_ADD && REG_P (operands[0])))))
   && ix86_match_ccmode (insn, CCGOCmode)
   && ix86_binary_operator_ok (ASHIFT, DImode, operands)) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                    return -1;
                  return 541; /* *ashldi3_cmp */

                default:
                  return -1;
                }

            case ZERO_EXTEND:
              if (pattern582 (x1, ASHIFT) != 0
                  || !
#line 10238 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT
   && (optimize_function_for_size_p (cfun)
       || !TARGET_PARTIAL_FLAG_REG_STALL
       || (operands[2] == const1_rtx
	   && (TARGET_SHIFT1
	       || TARGET_DOUBLE_WITH_ADD)))
   && ix86_match_ccmode (insn, CCGOCmode)
   && ix86_binary_operator_ok (ASHIFT, SImode, operands)))
                return -1;
              return 542; /* *ashlsi3_cmp_zext */

            default:
              return -1;
            }

        case 1:
          if (!
#line 10285 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[2] == const1_rtx
	&& (TARGET_SHIFT1
	    || TARGET_DOUBLE_WITH_ADD)))
   && ix86_match_ccmode (insn, CCGOCmode)))
            return -1;
          return 543; /* *ashlqi3_cconly */

        case 2:
          if (!
#line 10285 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[2] == const1_rtx
	&& (TARGET_SHIFT1
	    || TARGET_DOUBLE_WITH_ADD)))
   && ix86_match_ccmode (insn, CCGOCmode)))
            return -1;
          return 544; /* *ashlhi3_cconly */

        case 3:
          if (!
#line 10285 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[2] == const1_rtx
	&& (TARGET_SHIFT1
	    || TARGET_DOUBLE_WITH_ADD)))
   && ix86_match_ccmode (insn, CCGOCmode)))
            return -1;
          return 545; /* *ashlsi3_cconly */

        case 4:
          if (!(
#line 10285 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[2] == const1_rtx
	&& (TARGET_SHIFT1
	    || TARGET_DOUBLE_WITH_ADD)))
   && ix86_match_ccmode (insn, CCGOCmode)) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          return 546; /* *ashldi3_cconly */

        default:
          return -1;
        }

    case ASHIFTRT:
      x6 = XEXP (x4, 1);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      switch (pattern348 (x1))
        {
        case 0:
          x7 = XVECEXP (x1, 0, 1);
          x11 = XEXP (x7, 1);
          switch (GET_CODE (x11))
            {
            case ASHIFTRT:
              switch (pattern581 (x1))
                {
                case 0:
                  if (!
#line 10662 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[2] == const1_rtx
	&& TARGET_SHIFT1))
   && ix86_match_ccmode (insn, CCGOCmode)
   && ix86_binary_operator_ok (ASHIFTRT, QImode, operands)))
                    return -1;
                  return 579; /* *ashrqi3_cmp */

                case 1:
                  if (!
#line 10662 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[2] == const1_rtx
	&& TARGET_SHIFT1))
   && ix86_match_ccmode (insn, CCGOCmode)
   && ix86_binary_operator_ok (ASHIFTRT, HImode, operands)))
                    return -1;
                  return 581; /* *ashrhi3_cmp */

                case 2:
                  if (!
#line 10662 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[2] == const1_rtx
	&& TARGET_SHIFT1))
   && ix86_match_ccmode (insn, CCGOCmode)
   && ix86_binary_operator_ok (ASHIFTRT, SImode, operands)))
                    return -1;
                  return 583; /* *ashrsi3_cmp */

                case 3:
                  if (!(
#line 10662 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[2] == const1_rtx
	&& TARGET_SHIFT1))
   && ix86_match_ccmode (insn, CCGOCmode)
   && ix86_binary_operator_ok (ASHIFTRT, DImode, operands)) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                    return -1;
                  return 585; /* *ashrdi3_cmp */

                default:
                  return -1;
                }

            case ZERO_EXTEND:
              if (pattern582 (x1, ASHIFTRT) != 0
                  || !
#line 10693 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT
   && (optimize_function_for_size_p (cfun)
       || !TARGET_PARTIAL_FLAG_REG_STALL
       || (operands[2] == const1_rtx
	   && TARGET_SHIFT1))
   && ix86_match_ccmode (insn, CCGOCmode)
   && ix86_binary_operator_ok (ASHIFTRT, SImode, operands)))
                return -1;
              return 587; /* *ashrsi3_cmp_zext */

            default:
              return -1;
            }

        case 1:
          if (!
#line 10725 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[2] == const1_rtx
	&& TARGET_SHIFT1))
   && ix86_match_ccmode (insn, CCGOCmode)))
            return -1;
          return 589; /* *ashrqi3_cconly */

        case 2:
          if (!
#line 10725 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[2] == const1_rtx
	&& TARGET_SHIFT1))
   && ix86_match_ccmode (insn, CCGOCmode)))
            return -1;
          return 591; /* *ashrhi3_cconly */

        case 3:
          if (!
#line 10725 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[2] == const1_rtx
	&& TARGET_SHIFT1))
   && ix86_match_ccmode (insn, CCGOCmode)))
            return -1;
          return 593; /* *ashrsi3_cconly */

        case 4:
          if (!(
#line 10725 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_FLAG_REG_STALL
    || (operands[2] == const1_rtx
	&& TARGET_SHIFT1))
   && ix86_match_ccmode (insn, CCGOCmode)) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          return 595; /* *ashrdi3_cconly */

        default:
          return -1;
        }

    case UNSPEC:
      if (XVECLEN (x5, 0) != 2
          || XINT (x5, 1) != 85)
        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
          || GET_MODE (x3) != CCZmode
          || GET_MODE (x4) != CCZmode)
        return -1;
      x21 = XVECEXP (x5, 0, 0);
      operands[1] = x21;
      x22 = XVECEXP (x5, 0, 1);
      operands[2] = x22;
      x10 = XEXP (x7, 0);
      operands[0] = x10;
      switch (GET_MODE (x5))
        {
        case SImode:
          if (!nonimmediate_operand (operands[1], SImode)
              || !register_operand (operands[2], SImode)
              || !scratch_operand (operands[0], SImode)
              || !
#line 13171 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI))
            return -1;
          return 752; /* *bmi_bextr_si_ccz */

        case DImode:
          if (!nonimmediate_operand (operands[1], DImode)
              || !register_operand (operands[2], DImode)
              || !scratch_operand (operands[0], DImode)
              || !(
#line 13171 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          return 753; /* *bmi_bextr_di_ccz */

        default:
          return -1;
        }

    case ZERO_EXTRACT:
      x9 = XEXP (x5, 1);
      if (GET_CODE (x9) != UMIN)
        return -1;
      x23 = XEXP (x9, 0);
      if (GET_CODE (x23) != ZERO_EXTEND)
        return -1;
      x24 = XEXP (x5, 2);
      if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        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
          || GET_MODE (x3) != CCZmode
          || GET_MODE (x4) != CCZmode)
        return -1;
      x8 = XEXP (x5, 0);
      operands[1] = x8;
      x25 = XEXP (x23, 0);
      operands[2] = x25;
      if (!register_operand (operands[2], QImode))
        return -1;
      x26 = XEXP (x9, 1);
      operands[3] = x26;
      x10 = XEXP (x7, 0);
      operands[0] = x10;
      switch (GET_MODE (x5))
        {
        case SImode:
          if (pattern794 (x9, SImode) != 0
              || !
#line 13277 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2 && INTVAL (operands[3]) == 4 * BITS_PER_UNIT))
            return -1;
          return 764; /* *bmi2_bzhi_si3_1_ccz */

        case DImode:
          if (pattern794 (x9, DImode) != 0
              || !(
#line 13277 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2 && INTVAL (operands[3]) == 8 * BITS_PER_UNIT) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          return 765; /* *bmi2_bzhi_di3_1_ccz */

        default:
          return -1;
        }

    case VEC_SELECT:
      x9 = XEXP (x5, 1);
      if (GET_CODE (x9) != PARALLEL
          || XVECLEN (x9, 0) != 1)
        return -1;
      x27 = XVECEXP (x9, 0, 0);
      if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x6 = XEXP (x4, 1);
      if (GET_CODE (x6) != VEC_SELECT)
        return -1;
      x28 = XEXP (x6, 1);
      if (GET_CODE (x28) != PARALLEL
          || XVECLEN (x28, 0) != 1)
        return -1;
      x29 = XVECEXP (x28, 0, 0);
      if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x7 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x7) != UNSPEC
          || XVECLEN (x7, 0) != 1
          || XINT (x7, 1) != 170)
        return -1;
      x8 = XEXP (x5, 0);
      operands[0] = x8;
      x30 = XEXP (x6, 0);
      operands[1] = x30;
      x31 = XVECEXP (x7, 0, 0);
      operands[2] = x31;
      if (!const48_operand (operands[2], SImode))
        return -1;
      switch (GET_MODE (x3))
        {
        case CCFPmode:
          switch (pattern855 (x4, CCFPmode))
            {
            case 0:
              if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 2792 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(SSE_FLOAT_MODE_P (SFmode))))
                return -1;
              return 1764; /* sse_comi_round */

            case 1:
              if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 2792 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(SSE_FLOAT_MODE_P (DFmode))))
                return -1;
              return 1766; /* sse2_comi_round */

            default:
              return -1;
            }

        case CCFPUmode:
          switch (pattern855 (x4, CCFPUmode))
            {
            case 0:
              if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 2812 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(SSE_FLOAT_MODE_P (SFmode))))
                return -1;
              return 1768; /* sse_ucomi_round */

            case 1:
              if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 2812 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(SSE_FLOAT_MODE_P (DFmode))))
                return -1;
              return 1770; /* sse2_ucomi_round */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case UNSPEC_VOLATILE:
      if (XVECLEN (x5, 0) != 2
          || XINT (x5, 1) != 62)
        return -1;
      x7 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x7) != SET)
        return -1;
      x11 = XEXP (x7, 1);
      if (GET_CODE (x11) != PLUS
          || GET_MODE (x3) != CCZmode
          || GET_MODE (x4) != CCZmode)
        return -1;
      x21 = XVECEXP (x5, 0, 0);
      operands[0] = x21;
      x22 = XVECEXP (x5, 0, 1);
      operands[3] = x22;
      if (!const_int_operand (operands[3], SImode))
        return -1;
      x6 = XEXP (x4, 1);
      operands[2] = x6;
      x15 = XEXP (x11, 1);
      operands[1] = x15;
      x12 = XEXP (x11, 0);
      if (!rtx_equal_p (x12, operands[0]))
        return -1;
      x10 = XEXP (x7, 0);
      if (!rtx_equal_p (x10, operands[0]))
        return -1;
      switch (GET_MODE (x5))
        {
        case QImode:
          if (pattern829 (x11, QImode) != 0
              || !
#line 481 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
((unsigned HOST_WIDE_INT) INTVAL (operands[1])
   == -(unsigned HOST_WIDE_INT) INTVAL (operands[2])))
            return -1;
          return 4992; /* *atomic_fetch_add_cmpqi */

        case HImode:
          if (pattern829 (x11, HImode) != 0
              || !
#line 481 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
((unsigned HOST_WIDE_INT) INTVAL (operands[1])
   == -(unsigned HOST_WIDE_INT) INTVAL (operands[2])))
            return -1;
          return 4993; /* *atomic_fetch_add_cmphi */

        case SImode:
          if (pattern829 (x11, SImode) != 0
              || !
#line 481 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
((unsigned HOST_WIDE_INT) INTVAL (operands[1])
   == -(unsigned HOST_WIDE_INT) INTVAL (operands[2])))
            return -1;
          return 4994; /* *atomic_fetch_add_cmpsi */

        case DImode:
          if (pattern829 (x11, DImode) != 0
              || !(
#line 481 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
((unsigned HOST_WIDE_INT) INTVAL (operands[1])
   == -(unsigned HOST_WIDE_INT) INTVAL (operands[2])) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          return 4995; /* *atomic_fetch_add_cmpdi */

        default:
          return -1;
        }

    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;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x2) != UNSPEC
      || XVECLEN (x2, 0) != 1
      || XINT (x2, 1) != 170)
    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 PLUS:
      switch (pattern418 (x1))
        {
        case 0:
          if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (PLUS, V16SFmode, operands) && (64 == 64 || TARGET_AVX512VL) && (V16SFmode == V16SFmode
							      || V16SFmode == V8DFmode
							      || V16SFmode == V8DImode
							      || V16SFmode == V16SImode)) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))))
            return -1;
          return 1394; /* *addv16sf3_mask_round */

        case 1:
          if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (PLUS, V8SFmode, operands) && (32 == 64 || TARGET_AVX512VL) && (V8SFmode == V16SFmode
							      || V8SFmode == V8DFmode
							      || V8SFmode == V8DImode
							      || V8SFmode == V16SImode)) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))))
            return -1;
          return 1402; /* *addv8sf3_mask_round */

        case 2:
          if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (PLUS, V4SFmode, operands) && (16 == 64 || TARGET_AVX512VL) && (V4SFmode == V16SFmode
							      || V4SFmode == V8DFmode
							      || V4SFmode == V8DImode
							      || V4SFmode == V16SImode)))))
            return -1;
          return 1410; /* *addv4sf3_mask_round */

        case 3:
          if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (PLUS, V8DFmode, operands) && (64 == 64 || TARGET_AVX512VL) && (V8DFmode == V16SFmode
							      || V8DFmode == V8DFmode
							      || V8DFmode == V8DImode
							      || V8DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))))
            return -1;
          return 1418; /* *addv8df3_mask_round */

        case 4:
          if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (PLUS, V4DFmode, operands) && (32 == 64 || TARGET_AVX512VL) && (V4DFmode == V16SFmode
							      || V4DFmode == V8DFmode
							      || V4DFmode == V8DImode
							      || V4DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))))
            return -1;
          return 1426; /* *addv4df3_mask_round */

        case 5:
          if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (PLUS, V2DFmode, operands) && (16 == 64 || TARGET_AVX512VL) && (V2DFmode == V16SFmode
							      || V2DFmode == V8DFmode
							      || V2DFmode == V8DImode
							      || V2DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))))
            return -1;
          return 1434; /* *addv2df3_mask_round */

        case 6:
          if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 1687 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE)))
            return -1;
          return 1440; /* sse_vmaddv4sf3_round */

        case 7:
          if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1687 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
            return -1;
          return 1444; /* sse2_vmaddv2df3_round */

        default:
          return -1;
        }

    case MINUS:
      switch (pattern418 (x1))
        {
        case 0:
          if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MINUS, V16SFmode, operands) && (64 == 64 || TARGET_AVX512VL) && (V16SFmode == V16SFmode
							      || V16SFmode == V8DFmode
							      || V16SFmode == V8DImode
							      || V16SFmode == V16SImode)) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))))
            return -1;
          return 1398; /* *subv16sf3_mask_round */

        case 1:
          if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MINUS, V8SFmode, operands) && (32 == 64 || TARGET_AVX512VL) && (V8SFmode == V16SFmode
							      || V8SFmode == V8DFmode
							      || V8SFmode == V8DImode
							      || V8SFmode == V16SImode)) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))))
            return -1;
          return 1406; /* *subv8sf3_mask_round */

        case 2:
          if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MINUS, V4SFmode, operands) && (16 == 64 || TARGET_AVX512VL) && (V4SFmode == V16SFmode
							      || V4SFmode == V8DFmode
							      || V4SFmode == V8DImode
							      || V4SFmode == V16SImode)))))
            return -1;
          return 1414; /* *subv4sf3_mask_round */

        case 3:
          if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MINUS, V8DFmode, operands) && (64 == 64 || TARGET_AVX512VL) && (V8DFmode == V16SFmode
							      || V8DFmode == V8DFmode
							      || V8DFmode == V8DImode
							      || V8DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))))
            return -1;
          return 1422; /* *subv8df3_mask_round */

        case 4:
          if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MINUS, V4DFmode, operands) && (32 == 64 || TARGET_AVX512VL) && (V4DFmode == V16SFmode
							      || V4DFmode == V8DFmode
							      || V4DFmode == V8DImode
							      || V4DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))))
            return -1;
          return 1430; /* *subv4df3_mask_round */

        case 5:
          if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MINUS, V2DFmode, operands) && (16 == 64 || TARGET_AVX512VL) && (V2DFmode == V16SFmode
							      || V2DFmode == V8DFmode
							      || V2DFmode == V8DImode
							      || V2DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))))
            return -1;
          return 1438; /* *subv2df3_mask_round */

        case 6:
          if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 1687 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE)))
            return -1;
          return 1442; /* sse_vmsubv4sf3_round */

        case 7:
          if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1687 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
            return -1;
          return 1446; /* sse2_vmsubv2df3_round */

        default:
          return -1;
        }

    case MULT:
      switch (pattern418 (x1))
        {
        case 0:
          if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1709 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MULT, V16SFmode, operands) && (64 == 64 || TARGET_AVX512VL) && (V16SFmode == V16SFmode
							      || V16SFmode == V8DFmode
							      || V16SFmode == V8DImode
							      || V16SFmode == V16SImode)) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))))
            return -1;
          return 1450; /* *mulv16sf3_mask_round */

        case 1:
          if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1709 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MULT, V8SFmode, operands) && (32 == 64 || TARGET_AVX512VL) && (V8SFmode == V16SFmode
							      || V8SFmode == V8DFmode
							      || V8SFmode == V8DImode
							      || V8SFmode == V16SImode)) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))))
            return -1;
          return 1454; /* *mulv8sf3_mask_round */

        case 2:
          if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 1709 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MULT, V4SFmode, operands) && (16 == 64 || TARGET_AVX512VL) && (V4SFmode == V16SFmode
							      || V4SFmode == V8DFmode
							      || V4SFmode == V8DImode
							      || V4SFmode == V16SImode)))))
            return -1;
          return 1458; /* *mulv4sf3_mask_round */

        case 3:
          if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1709 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MULT, V8DFmode, operands) && (64 == 64 || TARGET_AVX512VL) && (V8DFmode == V16SFmode
							      || V8DFmode == V8DFmode
							      || V8DFmode == V8DImode
							      || V8DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))))
            return -1;
          return 1462; /* *mulv8df3_mask_round */

        case 4:
          if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1709 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MULT, V4DFmode, operands) && (32 == 64 || TARGET_AVX512VL) && (V4DFmode == V16SFmode
							      || V4DFmode == V8DFmode
							      || V4DFmode == V8DImode
							      || V4DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))))
            return -1;
          return 1466; /* *mulv4df3_mask_round */

        case 5:
          if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1709 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MULT, V2DFmode, operands) && (16 == 64 || TARGET_AVX512VL) && (V2DFmode == V16SFmode
							      || V2DFmode == V8DFmode
							      || V2DFmode == V8DImode
							      || V2DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))))
            return -1;
          return 1470; /* *mulv2df3_mask_round */

        case 6:
          if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 1727 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE)))
            return -1;
          return 1472; /* sse_vmmulv4sf3_round */

        case 7:
          if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1727 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
            return -1;
          return 1476; /* sse2_vmmulv2df3_round */

        default:
          return -1;
        }

    case DIV:
      x7 = XEXP (x6, 0);
      operands[1] = x7;
      x8 = XEXP (x6, 1);
      operands[2] = x8;
      x9 = XVECEXP (x2, 0, 0);
      if (!const_4_or_8_to_11_operand (x9, SImode))
        return -1;
      x10 = XEXP (x5, 2);
      switch (GET_CODE (x10))
        {
        case CONST_INT:
          switch (pattern416 (x1))
            {
            case 0:
              if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 1727 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE)))
                return -1;
              return 1474; /* sse_vmdivv4sf3_round */

            case 1:
              if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1727 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
                return -1;
              return 1478; /* sse2_vmdivv2df3_round */

            default:
              return -1;
            }

        case REG:
        case SUBREG:
          operands[4] = x10;
          x11 = XEXP (x5, 1);
          operands[3] = x11;
          operands[5] = x9;
          switch (GET_MODE (operands[0]))
            {
            case V16SFmode:
              if (pattern414 (x5, V16SFmode, HImode) != 0
                  || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1768 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (64 == 64 || TARGET_AVX512VL) && (V16SFmode == V16SFmode
							      || V16SFmode == V8DFmode
							      || V16SFmode == V8DImode
							      || V16SFmode == V16SImode)) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))))
                return -1;
              return 1482; /* avx512f_divv16sf3_mask_round */

            case V8DFmode:
              if (pattern414 (x5, V8DFmode, QImode) != 0
                  || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1768 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (64 == 64 || TARGET_AVX512VL) && (V8DFmode == V16SFmode
							      || V8DFmode == V8DFmode
							      || V8DFmode == V8DImode
							      || V8DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))))
                return -1;
              return 1490; /* avx512f_divv8df3_mask_round */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case SQRT:
      x7 = XEXP (x6, 0);
      operands[1] = x7;
      x11 = XEXP (x5, 1);
      operands[2] = x11;
      x9 = XVECEXP (x2, 0, 0);
      if (!const_4_or_8_to_11_operand (x9, SImode))
        return -1;
      x10 = XEXP (x5, 2);
      switch (GET_CODE (x10))
        {
        case REG:
        case SUBREG:
          operands[3] = x10;
          operands[4] = x9;
          switch (GET_MODE (operands[0]))
            {
            case V16SFmode:
              if (pattern705 (x5, HImode, V16SFmode) != 0
                  || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1857 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (64 == 64 || TARGET_AVX512VL) && (V16SFmode == V16SFmode
							      || V16SFmode == V8DFmode
							      || V16SFmode == V8DImode
							      || V16SFmode == V16SImode)) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))))
                return -1;
              return 1515; /* avx512f_sqrtv16sf2_mask_round */

            case V8DFmode:
              if (pattern705 (x5, QImode, V8DFmode) != 0
                  || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1857 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && (64 == 64 || TARGET_AVX512VL) && (V8DFmode == V16SFmode
							      || V8DFmode == V8DFmode
							      || V8DFmode == V8DImode
							      || V8DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))))
                return -1;
              return 1523; /* avx512f_sqrtv8df2_mask_round */

            default:
              return -1;
            }

        case CONST_INT:
          if (XWINT (x10, 0) != 1LL)
            return -1;
          operands[3] = x9;
          switch (GET_MODE (operands[0]))
            {
            case V4SFmode:
              if (pattern706 (x5, V4SFmode) != 0
                  || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 1875 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE)))
                return -1;
              return 1529; /* sse_vmsqrtv4sf2_round */

            case V2DFmode:
              if (pattern706 (x5, V2DFmode) != 0
                  || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1875 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
                return -1;
              return 1531; /* sse2_vmsqrtv2df2_round */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case SMAX:
      switch (pattern419 (x1))
        {
        case 0:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMAX, V16SFmode, operands)
   && (64 == 64 || TARGET_AVX512VL) && (V16SFmode == V16SFmode
									      || V16SFmode == V8DFmode
									      || V16SFmode == V8DImode
									      || V16SFmode == V16SImode)) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))))
            return -1;
          return 1552; /* *smaxv16sf3_mask_round */

        case 1:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMAX, V8SFmode, operands)
   && (32 == 64 || TARGET_AVX512VL) && (V8SFmode == V16SFmode
									      || V8SFmode == V8DFmode
									      || V8SFmode == V8DImode
									      || V8SFmode == V16SImode)) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))))
            return -1;
          return 1560; /* *smaxv8sf3_mask_round */

        case 2:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMAX, V4SFmode, operands)
   && (16 == 64 || TARGET_AVX512VL) && (V4SFmode == V16SFmode
									      || V4SFmode == V8DFmode
									      || V4SFmode == V8DImode
									      || V4SFmode == V16SImode)))))
            return -1;
          return 1568; /* *smaxv4sf3_mask_round */

        case 3:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMAX, V8DFmode, operands)
   && (64 == 64 || TARGET_AVX512VL) && (V8DFmode == V16SFmode
									      || V8DFmode == V8DFmode
									      || V8DFmode == V8DImode
									      || V8DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))))
            return -1;
          return 1576; /* *smaxv8df3_mask_round */

        case 4:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMAX, V4DFmode, operands)
   && (32 == 64 || TARGET_AVX512VL) && (V4DFmode == V16SFmode
									      || V4DFmode == V8DFmode
									      || V4DFmode == V8DImode
									      || V4DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))))
            return -1;
          return 1584; /* *smaxv4df3_mask_round */

        case 5:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMAX, V2DFmode, operands)
   && (16 == 64 || TARGET_AVX512VL) && (V2DFmode == V16SFmode
									      || V2DFmode == V8DFmode
									      || V2DFmode == V8DImode
									      || V2DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))))
            return -1;
          return 1592; /* *smaxv2df3_mask_round */

        case 6:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 2020 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE)))
            return -1;
          return 1630; /* sse_vmsmaxv4sf3_round */

        case 7:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2020 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
            return -1;
          return 1634; /* sse2_vmsmaxv2df3_round */

        default:
          return -1;
        }

    case SMIN:
      switch (pattern419 (x1))
        {
        case 0:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMIN, V16SFmode, operands)
   && (64 == 64 || TARGET_AVX512VL) && (V16SFmode == V16SFmode
									      || V16SFmode == V8DFmode
									      || V16SFmode == V8DImode
									      || V16SFmode == V16SImode)) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))))
            return -1;
          return 1556; /* *sminv16sf3_mask_round */

        case 1:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMIN, V8SFmode, operands)
   && (32 == 64 || TARGET_AVX512VL) && (V8SFmode == V16SFmode
									      || V8SFmode == V8DFmode
									      || V8SFmode == V8DImode
									      || V8SFmode == V16SImode)) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))))
            return -1;
          return 1564; /* *sminv8sf3_mask_round */

        case 2:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMIN, V4SFmode, operands)
   && (16 == 64 || TARGET_AVX512VL) && (V4SFmode == V16SFmode
									      || V4SFmode == V8DFmode
									      || V4SFmode == V8DImode
									      || V4SFmode == V16SImode)))))
            return -1;
          return 1572; /* *sminv4sf3_mask_round */

        case 3:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMIN, V8DFmode, operands)
   && (64 == 64 || TARGET_AVX512VL) && (V8DFmode == V16SFmode
									      || V8DFmode == V8DFmode
									      || V8DFmode == V8DImode
									      || V8DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))))
            return -1;
          return 1580; /* *sminv8df3_mask_round */

        case 4:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMIN, V4DFmode, operands)
   && (32 == 64 || TARGET_AVX512VL) && (V4DFmode == V16SFmode
									      || V4DFmode == V8DFmode
									      || V4DFmode == V8DImode
									      || V4DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))))
            return -1;
          return 1588; /* *sminv4df3_mask_round */

        case 5:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMIN, V2DFmode, operands)
   && (16 == 64 || TARGET_AVX512VL) && (V2DFmode == V16SFmode
									      || V2DFmode == V8DFmode
									      || V2DFmode == V8DImode
									      || V2DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))))
            return -1;
          return 1596; /* *sminv2df3_mask_round */

        case 6:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 2020 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE)))
            return -1;
          return 1632; /* sse_vmsminv4sf3_round */

        case 7:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2020 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
            return -1;
          return 1636; /* sse2_vmsminv2df3_round */

        default:
          return -1;
        }

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

    case FMA:
      return recog_217 (x1, insn, pnum_clobbers);

    case VEC_DUPLICATE:
      x10 = XEXP (x5, 2);
      if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x11 = XEXP (x5, 1);
      operands[1] = x11;
      x9 = XVECEXP (x2, 0, 0);
      operands[3] = x9;
      if (!const_4_or_8_to_11_operand (operands[3], SImode))
        return -1;
      x7 = XEXP (x6, 0);
      switch (GET_CODE (x7))
        {
        case FLOAT:
          switch (pattern653 (x5))
            {
            case 0:
              if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4247 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE)))
                return -1;
              return 2137; /* sse_cvtsi2ss_round */

            case 1:
              if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4269 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && TARGET_64BIT)))
                return -1;
              return 2139; /* sse_cvtsi2ssq_round */

            case 2:
              if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4665 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && TARGET_64BIT)))
                return -1;
              return 2230; /* sse2_cvtsi2sdq_round */

            default:
              return -1;
            }

        case UNSIGNED_FLOAT:
          switch (pattern653 (x5))
            {
            case 0:
              if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4385 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (V4SFmode == V4SFmode))))
                return -1;
              return 2151; /* cvtusi2ss32_round */

            case 1:
              if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4399 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && TARGET_64BIT)))
                return -1;
              return 2154; /* cvtusi2ss64_round */

            case 2:
              if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4399 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && TARGET_64BIT) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
                return -1;
              return 2156; /* cvtusi2sd64_round */

            default:
              return -1;
            }

        case FLOAT_TRUNCATE:
          if (GET_MODE (x7) != V2SFmode
              || !register_operand (operands[0], V4SFmode)
              || GET_MODE (x5) != V4SFmode
              || GET_MODE (x6) != V4SFmode)
            return -1;
          x12 = XEXP (x7, 0);
          operands[2] = x12;
          if (!nonimmediate_operand (operands[2], V2DFmode)
              || !register_operand (operands[1], V4SFmode)
              || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 5259 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return -1;
          return 2401; /* sse2_cvtsd2ss_round */

        default:
          return -1;
        }

    case FLOAT:
      x7 = XEXP (x6, 0);
      operands[1] = x7;
      x11 = XEXP (x5, 1);
      operands[2] = x11;
      x10 = XEXP (x5, 2);
      operands[3] = x10;
      x9 = XVECEXP (x2, 0, 0);
      operands[4] = x9;
      if (!const_4_or_8_to_11_operand (operands[4], SImode))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V16SFmode:
          if (pattern420 (x5, HImode, V16SFmode, V16SImode) != 0
              || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4409 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && (64 == 64 || TARGET_AVX512VL) && (V16SFmode == V16SFmode
							      || V16SFmode == V8DFmode
							      || V16SFmode == V8DImode
							      || V16SFmode == V16SImode)) && 
#line 226 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))))
            return -1;
          return 2160; /* floatv16siv16sf2_mask_round */

        case V8DFmode:
          if (pattern682 (x5, V8DFmode, V8DImode, QImode) != 0
              || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4893 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ))))
            return -1;
          return 2264; /* floatv8div8df2_mask_round */

        case V4DFmode:
          if (pattern682 (x5, V4DFmode, V4DImode, QImode) != 0
              || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4893 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 270 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))))
            return -1;
          return 2272; /* floatv4div4df2_mask_round */

        case V2DFmode:
          if (pattern682 (x5, V2DFmode, V2DImode, QImode) != 0
              || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4893 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 270 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))))
            return -1;
          return 2280; /* floatv2div2df2_mask_round */

        case V8SFmode:
          if (pattern682 (x5, V8SFmode, V8DImode, QImode) != 0
              || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4917 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && (V8SFmode == V8SFmode)))))
            return -1;
          return 2288; /* floatv8div8sf2_mask_round */

        default:
          return -1;
        }

    case UNSIGNED_FLOAT:
      x7 = XEXP (x6, 0);
      operands[1] = x7;
      x11 = XEXP (x5, 1);
      operands[2] = x11;
      x10 = XEXP (x5, 2);
      operands[3] = x10;
      x9 = XVECEXP (x2, 0, 0);
      operands[4] = x9;
      if (!const_4_or_8_to_11_operand (operands[4], SImode))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V16SFmode:
          if (pattern682 (x5, V16SFmode, V16SImode, HImode) != 0
              || !
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 2168; /* ufloatv16siv16sf2_mask_round */

        case V8SFmode:
          if (pattern683 (x5, V8SFmode) != 0)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case V8SImode:
              if (!nonimmediate_operand (operands[1], V8SImode)
                  || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4422 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 273 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))))
                return -1;
              return 2172; /* ufloatv8siv8sf2_mask_round */

            case V8DImode:
              if (!nonimmediate_operand (operands[1], V8DImode)
                  || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4917 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && (V8SFmode == V8SFmode)))))
                return -1;
              return 2292; /* ufloatv8div8sf2_mask_round */

            default:
              return -1;
            }

        case V4SFmode:
          if (pattern682 (x5, V4SFmode, V4SImode, QImode) != 0
              || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4422 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 273 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))))
            return -1;
          return 2176; /* ufloatv4siv4sf2_mask_round */

        case V8DFmode:
          if (pattern682 (x5, V8DFmode, V8DImode, QImode) != 0
              || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4893 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ))))
            return -1;
          return 2268; /* ufloatv8div8df2_mask_round */

        case V4DFmode:
          if (pattern682 (x5, V4DFmode, V4DImode, QImode) != 0
              || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4893 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 270 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))))
            return -1;
          return 2276; /* ufloatv4div4df2_mask_round */

        case V2DFmode:
          if (pattern682 (x5, V2DFmode, V2DImode, QImode) != 0
              || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4893 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 270 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL)))))
            return -1;
          return 2284; /* ufloatv2div2df2_mask_round */

        default:
          return -1;
        }

    case FIX:
      switch (pattern421 (x1))
        {
        case 0:
          if (!
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 2216; /* fix_truncv16sfv16si2_mask_round */

        case 1:
          if (!
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 2335; /* fix_truncv8dfv8si2_mask_round */

        case 2:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 5164 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && (V8DFmode == V16SFmode
									      || V8DFmode == V8DFmode
									      || V8DFmode == V8DImode
									      || V8DFmode == V16SImode)))))
            return -1;
          return 2349; /* fix_truncv8dfv8di2_mask_round */

        case 3:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 5196 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && (V8SFmode == V8SFmode)))))
            return -1;
          return 2381; /* fix_truncv8sfv8di2_mask_round */

        default:
          return -1;
        }

    case UNSIGNED_FIX:
      switch (pattern421 (x1))
        {
        case 0:
          if (!
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 2220; /* ufix_truncv16sfv16si2_mask_round */

        case 1:
          if (!
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 2339; /* ufix_truncv8dfv8si2_mask_round */

        case 2:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 5164 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && (V8DFmode == V16SFmode
									      || V8DFmode == V8DFmode
									      || V8DFmode == V8DImode
									      || V8DFmode == V16SImode)))))
            return -1;
          return 2353; /* ufix_truncv8dfv8di2_mask_round */

        case 3:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 5196 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && (V8SFmode == V8SFmode)))))
            return -1;
          return 2385; /* ufix_truncv8sfv8di2_mask_round */

        default:
          return -1;
        }

    case FLOAT_EXTEND:
      x9 = XVECEXP (x2, 0, 0);
      if (!const48_operand (x9, SImode))
        return -1;
      x7 = XEXP (x6, 0);
      switch (GET_CODE (x7))
        {
        case VEC_SELECT:
          if (GET_MODE (x7) != V2SFmode)
            return -1;
          x13 = XEXP (x7, 1);
          if (GET_CODE (x13) != PARALLEL
              || XVECLEN (x13, 0) != 2)
            return -1;
          x14 = XVECEXP (x13, 0, 0);
          if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x15 = XVECEXP (x13, 0, 1);
          if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
            return -1;
          x10 = XEXP (x5, 2);
          if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
              || !register_operand (operands[0], V2DFmode)
              || GET_MODE (x5) != V2DFmode
              || GET_MODE (x6) != V2DFmode)
            return -1;
          x12 = XEXP (x7, 0);
          operands[2] = x12;
          if (!register_operand (operands[2], V4SFmode))
            return -1;
          x11 = XEXP (x5, 1);
          operands[1] = x11;
          if (!register_operand (operands[1], V2DFmode))
            return -1;
          operands[3] = x9;
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 5282 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return -1;
          return 2403; /* sse2_cvtss2sd_round */

        case REG:
        case SUBREG:
          operands[1] = x7;
          if (!register_operand (operands[1], V8SFmode)
              || !register_operand (operands[0], V8DFmode)
              || GET_MODE (x5) != V8DFmode
              || GET_MODE (x6) != V8DFmode)
            return -1;
          x11 = XEXP (x5, 1);
          operands[2] = x11;
          if (!vector_move_operand (operands[2], V8DFmode))
            return -1;
          x10 = XEXP (x5, 2);
          operands[3] = x10;
          if (!register_operand (operands[3], QImode))
            return -1;
          operands[4] = x9;
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 72 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 5367 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && (64 == 64 || TARGET_AVX512VL) && (V8DFmode == V16SFmode
									      || V8DFmode == V8DFmode
									      || V8DFmode == V8DImode
									      || V8DFmode == V16SImode)) && 
#line 244 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))))
            return -1;
          return 2415; /* avx512f_cvtps2pd512_mask_round */

        default:
          return -1;
        }

    case FLOAT_TRUNCATE:
      if (GET_MODE (x6) != V8SFmode
          || !register_operand (operands[0], V8SFmode)
          || GET_MODE (x5) != V8SFmode)
        return -1;
      x7 = XEXP (x6, 0);
      operands[1] = x7;
      if (!register_operand (operands[1], V8DFmode))
        return -1;
      x11 = XEXP (x5, 1);
      operands[2] = x11;
      if (!vector_move_operand (operands[2], V8SFmode))
        return -1;
      x10 = XEXP (x5, 2);
      operands[3] = x10;
      if (!register_operand (operands[3], QImode))
        return -1;
      x9 = XVECEXP (x2, 0, 0);
      operands[4] = x9;
      if (!const_4_or_8_to_11_operand (operands[4], SImode)
          || !
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
        return -1;
      return 2407; /* avx512f_cvtpd2ps512_mask_round */

    case VEC_MERGE:
      x7 = XEXP (x6, 0);
      if (GET_CODE (x7) != UNSPEC
          || XVECLEN (x7, 0) != 4
          || XINT (x7, 1) != 158)
        return -1;
      x16 = XEXP (x6, 2);
      if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x17 = XVECEXP (x7, 0, 0);
      operands[1] = x17;
      x18 = XVECEXP (x7, 0, 1);
      operands[2] = x18;
      x19 = XVECEXP (x7, 0, 2);
      operands[3] = x19;
      x20 = XVECEXP (x7, 0, 3);
      operands[4] = x20;
      if (!const_0_to_255_operand (operands[4], SImode))
        return -1;
      x10 = XEXP (x5, 2);
      if (!register_operand (x10, QImode))
        return -1;
      x9 = XVECEXP (x2, 0, 0);
      if (!const48_operand (x9, SImode))
        return -1;
      x8 = XEXP (x6, 1);
      if (!rtx_equal_p (x8, operands[1]))
        return -1;
      x11 = XEXP (x5, 1);
      switch (GET_CODE (x11))
        {
        case CONST_INT:
        case CONST_WIDE_INT:
        case CONST_DOUBLE:
        case CONST_VECTOR:
          operands[5] = x11;
          operands[6] = x10;
          operands[7] = x9;
          switch (GET_MODE (operands[0]))
            {
            case V4SFmode:
              if (pattern908 (x5, V4SFmode, V4SImode) != 0
                  || !
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 2696; /* avx512f_sfixupimmv4sf_maskz_1_round */

            case V2DFmode:
              if (pattern908 (x5, V2DFmode, V2DImode) != 0
                  || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8304 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
                return -1;
              return 2700; /* avx512f_sfixupimmv2df_maskz_1_round */

            default:
              return -1;
            }

        case REG:
        case SUBREG:
          if (!rtx_equal_p (x11, operands[1]))
            return -1;
          operands[5] = x10;
          operands[6] = x9;
          switch (GET_MODE (operands[0]))
            {
            case V4SFmode:
              if (pattern909 (x5, V4SImode, V4SFmode) != 0
                  || !
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 2702; /* avx512f_sfixupimmv4sf_mask_round */

            case V2DFmode:
              if (pattern909 (x5, V2DImode, V2DFmode) != 0
                  || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 8323 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
                return -1;
              return 2704; /* avx512f_sfixupimmv2df_mask_round */

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_220 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
    case MEM:
      x5 = XVECEXP (x1, 0, 1);
      if (pattern95 (x5, CCmode, 17) != 0)
        return -1;
      x6 = XEXP (x2, 0);
      switch (GET_CODE (x6))
        {
        case REG:
        case SUBREG:
        case MEM:
          operands[0] = x6;
          operands[1] = x4;
          x7 = XEXP (x3, 1);
          operands[2] = x7;
          switch (GET_MODE (operands[0]))
            {
            case DImode:
              if (!nonimmediate_operand (operands[0], DImode)
                  || GET_MODE (x3) != DImode
                  || !nonimmediate_operand (operands[1], DImode)
                  || !x86_64_szext_general_operand (operands[2], DImode))
                return -1;
              if (
#line 8162 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_binary_operator_ok (AND, DImode, operands)))
                return 390; /* *anddi_1 */
              if (!
#line 8197 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_STV && TARGET_SSE2
   && ix86_binary_operator_ok (AND, DImode, operands)))
                return -1;
              return 391; /* *anddi3_doubleword */

            case SImode:
              if (pattern396 (x3, SImode) != 0
                  || !
#line 8228 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (AND, SImode, operands)))
                return -1;
              return 392; /* *andsi_1 */

            case HImode:
              if (pattern397 (x3, HImode) != 0
                  || !
#line 8271 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (AND, HImode, operands)))
                return -1;
              return 394; /* *andhi_1 */

            case QImode:
              if (pattern397 (x3, QImode) != 0
                  || !
#line 8302 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (AND, QImode, operands)))
                return -1;
              return 395; /* *andqi_1 */

            default:
              return -1;
            }

        case STRICT_LOW_PART:
          if (pattern147 (x2) != 0
              || !
#line 8326 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
            return -1;
          return 396; /* *andqi_1_slp */

        default:
          return -1;
        }

    case NOT:
      if (pattern150 (x1) != 0)
        return -1;
      x8 = XEXP (x4, 0);
      operands[1] = x8;
      x7 = XEXP (x3, 1);
      operands[2] = x7;
      switch (GET_MODE (operands[0]))
        {
        case QImode:
          if (pattern588 (x3, QImode) != 0
              || !
#line 8339 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F))
            return -1;
          return 397; /* kandnqi */

        case HImode:
          if (pattern588 (x3, HImode) != 0
              || !
#line 8339 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F))
            return -1;
          return 398; /* kandnhi */

        case DImode:
          if (pattern589 (x3, DImode) != 0)
            return -1;
          if (
#line 8778 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI && !TARGET_64BIT && TARGET_STV && TARGET_SSE))
            return 416; /* *andndi3_doubleword */
          if (!(
#line 13131 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          return 747; /* *bmi_andn_di */

        case SImode:
          if (pattern589 (x3, SImode) != 0
              || !
#line 13131 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI))
            return -1;
          return 746; /* *bmi_andn_si */

        default:
          return -1;
        }

    case ZERO_EXTRACT:
      if (pattern149 (x2) != 0)
        return -1;
      x5 = XVECEXP (x1, 0, 1);
      if (pattern95 (x5, CCmode, 17) != 0)
        return -1;
      switch (pattern402 (x2))
        {
        case 0:
          return 406; /* andqi_ext_0 */

        case 1:
          return 408; /* *andqi_ext_1 */

        case 2:
          return 409; /* *andqi_ext_2 */

        default:
          return -1;
        }

    case NEG:
      if (pattern151 (x1) != 0)
        return -1;
      x7 = XEXP (x3, 1);
      if (!rtx_equal_p (x7, operands[1]))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case SImode:
          if (pattern585 (x3, SImode) != 0
              || !
#line 13184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI))
            return -1;
          return 754; /* *bmi_blsi_si */

        case DImode:
          if (pattern585 (x3, DImode) != 0
              || !(
#line 13184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          return 755; /* *bmi_blsi_di */

        default:
          return -1;
        }

    case PLUS:
      x9 = XEXP (x4, 1);
      if (GET_CODE (x9) != CONST_INT
          || pattern151 (x1) != 0)
        return -1;
      switch (XWINT (x9, 0))
        {
        case -1LL:
          switch (pattern587 (x3))
            {
            case 0:
              if (!
#line 13212 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI))
                return -1;
              return 758; /* *bmi_blsr_si */

            case 1:
              if (!(
#line 13212 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 759; /* *bmi_blsr_di */

            case 2:
              if (!
#line 13438 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM))
                return -1;
              return 788; /* *tbm_tzmsk_si */

            case 3:
              if (!(
#line 13438 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 789; /* *tbm_tzmsk_di */

            default:
              return -1;
            }

        case 1LL:
          switch (pattern587 (x3))
            {
            case 0:
              if (!
#line 13329 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM))
                return -1;
              return 772; /* *tbm_blcfill_si */

            case 1:
              if (!(
#line 13329 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 773; /* *tbm_blcfill_di */

            case 2:
              if (!
#line 13357 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM))
                return -1;
              return 776; /* *tbm_blcic_si */

            case 3:
              if (!(
#line 13357 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 777; /* *tbm_blcic_di */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case UNSPEC:
      if (XVECLEN (x4, 0) != 3
          || XINT (x4, 1) != 136)
        return -1;
      x5 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x5) != UNSPEC
          || XVECLEN (x5, 0) != 1
          || XINT (x5, 1) != 170)
        return -1;
      x6 = XEXP (x2, 0);
      operands[0] = x6;
      x10 = XVECEXP (x4, 0, 0);
      operands[1] = x10;
      x11 = XVECEXP (x4, 0, 1);
      operands[2] = x11;
      x12 = XVECEXP (x4, 0, 2);
      operands[3] = x12;
      x13 = XVECEXP (x5, 0, 0);
      if (!const48_operand (x13, SImode))
        return -1;
      x7 = XEXP (x3, 1);
      switch (GET_CODE (x7))
        {
        case REG:
        case SUBREG:
          operands[4] = x7;
          operands[5] = x13;
          switch (GET_MODE (operands[0]))
            {
            case HImode:
              if (pattern782 (x3, HImode) != 0)
                return -1;
              switch (GET_MODE (operands[1]))
                {
                case V16SImode:
                  if (!register_operand (operands[1], V16SImode)
                      || !nonimmediate_operand (operands[2], V16SImode)
                      || !const_0_to_7_operand (operands[3], SImode)
                      || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 2688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (V16SImode == V16SFmode
									      || V16SImode == V8DFmode
									      || V16SImode == V8DImode
									      || V16SImode == V16SImode)))))
                    return -1;
                  return 1684; /* avx512f_cmpv16si3_mask_round */

                case V16SFmode:
                  if (!register_operand (operands[1], V16SFmode)
                      || !nonimmediate_operand (operands[2], V16SFmode)
                      || !const_0_to_31_operand (operands[3], SImode)
                      || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 2688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (V16SFmode == V16SFmode
									      || V16SFmode == V8DFmode
									      || V16SFmode == V8DImode
									      || V16SFmode == V16SImode)))))
                    return -1;
                  return 1700; /* avx512f_cmpv16sf3_mask_round */

                default:
                  return -1;
                }

            case QImode:
              if (pattern782 (x3, QImode) != 0)
                return -1;
              switch (GET_MODE (operands[1]))
                {
                case V8DImode:
                  if (!register_operand (operands[1], V8DImode)
                      || !nonimmediate_operand (operands[2], V8DImode)
                      || !const_0_to_7_operand (operands[3], SImode)
                      || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 2688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (V8DImode == V16SFmode
									      || V8DImode == V8DFmode
									      || V8DImode == V8DImode
									      || V8DImode == V16SImode)))))
                    return -1;
                  return 1692; /* avx512f_cmpv8di3_mask_round */

                case V8DFmode:
                  if (!register_operand (operands[1], V8DFmode)
                      || !nonimmediate_operand (operands[2], V8DFmode)
                      || !const_0_to_31_operand (operands[3], SImode)
                      || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 86 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 2688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (V8DFmode == V16SFmode
									      || V8DFmode == V8DFmode
									      || V8DFmode == V8DImode
									      || V8DFmode == V16SImode)))))
                    return -1;
                  return 1708; /* avx512f_cmpv8df3_mask_round */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case CONST_INT:
          if (XWINT (x7, 0) != 1LL
              || pattern731 (x3) != 0)
            return -1;
          operands[4] = x13;
          switch (pattern857 ())
            {
            case 0:
              if (!
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 1750; /* avx512f_vmcmpv4sf3_round */

            case 1:
              if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2746 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
                return -1;
              return 1752; /* avx512f_vmcmpv2df3_round */

            default:
              return -1;
            }

        case AND:
          if (GET_MODE (x7) != QImode)
            return -1;
          x14 = XEXP (x7, 1);
          if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
              || pattern731 (x3) != 0)
            return -1;
          x15 = XEXP (x7, 0);
          operands[4] = x15;
          if (!register_operand (operands[4], QImode))
            return -1;
          operands[5] = x13;
          switch (pattern857 ())
            {
            case 0:
              if (!
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 1754; /* avx512f_vmcmpv4sf3_mask_round */

            case 1:
              if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 2764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 251 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
                return -1;
              return 1756; /* avx512f_vmcmpv2df3_mask_round */

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_221 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  switch (XVECLEN (x3, 0))
    {
    case 4:
      return recog_212 (x1, insn, pnum_clobbers);

    case 1:
      return recog_211 (x1, insn, pnum_clobbers);

    case 2:
      return recog_210 (x1, insn, pnum_clobbers);

    case 3:
      x4 = XEXP (x2, 0);
      operands[0] = x4;
      switch (XINT (x3, 1))
        {
        case 22:
          if (pattern287 (x3, DImode) != 0
              || pattern512 (x1, DImode) != 0)
            return -1;
          x5 = XVECEXP (x3, 0, 1);
          operands[2] = x5;
          if (!register_operand (operands[2], DImode)
              || !
#line 14144 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && TARGET_GNU2_TLS))
            return -1;
          return 828; /* *tls_dynamic_gnu2_call_64 */

        case 136:
          x6 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x6) != UNSPEC
              || XVECLEN (x6, 0) != 1
              || XINT (x6, 1) != 170)
            return -1;
          x7 = XVECEXP (x3, 0, 0);
          operands[1] = x7;
          x5 = XVECEXP (x3, 0, 1);
          operands[2] = x5;
          x8 = XVECEXP (x3, 0, 2);
          operands[3] = x8;
          x9 = XVECEXP (x6, 0, 0);
          operands[4] = x9;
          if (!const48_operand (operands[4], SImode))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case HImode:
              if (!register_operand (operands[0], HImode)
                  || GET_MODE (x3) != HImode)
                return -1;
              switch (GET_MODE (operands[1]))
                {
                case V16SImode:
                  if (!register_operand (operands[1], V16SImode)
                      || !nonimmediate_operand (operands[2], V16SImode)
                      || !const_0_to_7_operand (operands[3], SImode)
                      || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 2688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (V16SImode == V16SFmode
									      || V16SImode == V8DFmode
									      || V16SImode == V8DImode
									      || V16SImode == V16SImode))))
                    return -1;
                  return 1683; /* avx512f_cmpv16si3_round */

                case V16SFmode:
                  if (!register_operand (operands[1], V16SFmode)
                      || !nonimmediate_operand (operands[2], V16SFmode)
                      || !const_0_to_31_operand (operands[3], SImode)
                      || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 2688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (V16SFmode == V16SFmode
									      || V16SFmode == V8DFmode
									      || V16SFmode == V8DImode
									      || V16SFmode == V16SImode))))
                    return -1;
                  return 1699; /* avx512f_cmpv16sf3_round */

                default:
                  return -1;
                }

            case QImode:
              if (!register_operand (operands[0], QImode)
                  || GET_MODE (x3) != QImode)
                return -1;
              switch (GET_MODE (operands[1]))
                {
                case V8DImode:
                  if (!register_operand (operands[1], V8DImode)
                      || !nonimmediate_operand (operands[2], V8DImode)
                      || !const_0_to_7_operand (operands[3], SImode)
                      || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 2688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (V8DImode == V16SFmode
									      || V8DImode == V8DFmode
									      || V8DImode == V8DImode
									      || V8DImode == V16SImode))))
                    return -1;
                  return 1691; /* avx512f_cmpv8di3_round */

                case V8DFmode:
                  if (!register_operand (operands[1], V8DFmode)
                      || !nonimmediate_operand (operands[2], V8DFmode)
                      || !const_0_to_31_operand (operands[3], SImode)
                      || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 2688 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && (V8DFmode == V16SFmode
									      || V8DFmode == V8DFmode
									      || V8DFmode == V8DImode
									      || V8DFmode == V16SImode))))
                    return -1;
                  return 1707; /* avx512f_cmpv8df3_round */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case 124:
          x6 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x6) != UNSPEC
              || XVECLEN (x6, 0) != 1
              || XINT (x6, 1) != 170)
            return -1;
          x7 = XVECEXP (x3, 0, 0);
          operands[1] = x7;
          x5 = XVECEXP (x3, 0, 1);
          operands[2] = x5;
          x9 = XVECEXP (x6, 0, 0);
          operands[4] = x9;
          if (!const_4_or_8_to_11_operand (operands[4], SImode))
            return -1;
          x8 = XVECEXP (x3, 0, 2);
          switch (GET_CODE (x8))
            {
            case REG:
            case SUBREG:
              operands[3] = x8;
              switch (GET_MODE (operands[0]))
                {
                case V16SFmode:
                  if (pattern732 (x3, V16SFmode) != 0
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3928 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && (V16SFmode == V16SFmode
							      || V16SFmode == V8DFmode
							      || V16SFmode == V8DImode
							      || V16SFmode == V16SImode))))
                    return -1;
                  return 2023; /* *fma_fmaddsub_v16sf_round */

                case V8DFmode:
                  if (pattern732 (x3, V8DFmode) != 0
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3928 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && (V8DFmode == V16SFmode
							      || V8DFmode == V8DFmode
							      || V8DFmode == V8DImode
							      || V8DFmode == V16SImode))))
                    return -1;
                  return 2032; /* *fma_fmaddsub_v8df_round */

                default:
                  return -1;
                }

            case NEG:
              x10 = XEXP (x8, 0);
              operands[3] = x10;
              switch (GET_MODE (operands[0]))
                {
                case V16SFmode:
                  if (pattern733 (x3, V16SFmode) != 0
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3997 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && (V16SFmode == V16SFmode
							      || V16SFmode == V8DFmode
							      || V16SFmode == V8DImode
							      || V16SFmode == V16SImode))))
                    return -1;
                  return 2069; /* *fma_fmsubadd_v16sf_round */

                case V8DFmode:
                  if (pattern733 (x3, V8DFmode) != 0
                      || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3997 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && (V8DFmode == V16SFmode
							      || V8DFmode == V8DFmode
							      || V8DFmode == V8DImode
							      || V8DFmode == V16SImode))))
                    return -1;
                  return 2078; /* *fma_fmsubadd_v8df_round */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case 123:
          x6 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x6) != SET)
            return -1;
          x11 = XEXP (x6, 1);
          if (pattern154 (x11, 123, 3, CCmode, UNSPEC) != 0)
            return -1;
          x12 = XEXP (x6, 0);
          if (GET_CODE (x12) != REG
              || REGNO (x12) != 17
              || GET_MODE (x12) != CCmode)
            return -1;
          x7 = XVECEXP (x3, 0, 0);
          operands[1] = x7;
          if (!register_operand (operands[1], V16QImode))
            return -1;
          x5 = XVECEXP (x3, 0, 1);
          operands[2] = x5;
          if (!nonimmediate_operand (operands[2], V16QImode))
            return -1;
          x8 = XVECEXP (x3, 0, 2);
          operands[3] = x8;
          if (!const_0_to_255_operand (operands[3], SImode))
            return -1;
          x13 = XVECEXP (x11, 0, 0);
          if (!rtx_equal_p (x13, operands[1]))
            return -1;
          x14 = XVECEXP (x11, 0, 1);
          if (!rtx_equal_p (x14, operands[2]))
            return -1;
          x15 = XVECEXP (x11, 0, 2);
          if (!rtx_equal_p (x15, operands[3]))
            return -1;
          switch (pattern883 (x3))
            {
            case 0:
              if (!
#line 15743 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_2))
                return -1;
              return 3972; /* sse4_2_pcmpistri */

            case 1:
              if (!
#line 15768 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_2))
                return -1;
              return 3973; /* sse4_2_pcmpistrm */

            default:
              return -1;
            }

        case 146:
          return recog_209 (x1, insn, pnum_clobbers);

        case 191:
          x6 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x6) != UNSPEC
              || XVECLEN (x6, 0) != 1
              || XINT (x6, 1) != 170)
            return -1;
          x7 = XVECEXP (x3, 0, 0);
          operands[1] = x7;
          x5 = XVECEXP (x3, 0, 1);
          operands[2] = x5;
          x8 = XVECEXP (x3, 0, 2);
          operands[3] = x8;
          if (!const_0_to_15_operand (operands[3], SImode))
            return -1;
          x9 = XVECEXP (x6, 0, 0);
          operands[4] = x9;
          if (!const48_operand (operands[4], SImode))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case V16SFmode:
              if (pattern242 (x3, V16SFmode) != 0
                  || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 19094 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && (V16SFmode == V16SFmode
									      || V16SFmode == V8DFmode
									      || V16SFmode == V8DImode
									      || V16SFmode == V16SImode))))
                return -1;
              return 4842; /* avx512dq_rangepv16sf_round */

            case V8DFmode:
              if (pattern242 (x3, V8DFmode) != 0
                  || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 19094 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && (V8DFmode == V16SFmode
									      || V8DFmode == V8DFmode
									      || V8DFmode == V8DImode
									      || V8DFmode == V16SImode))))
                return -1;
              return 4850; /* avx512dq_rangepv8df_round */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 5:
      if (XINT (x3, 1) != 122)
        return -1;
      x6 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x6) != SET)
        return -1;
      x11 = XEXP (x6, 1);
      if (pattern154 (x11, 122, 5, CCmode, UNSPEC) != 0)
        return -1;
      x12 = XEXP (x6, 0);
      if (GET_CODE (x12) != REG
          || REGNO (x12) != 17
          || GET_MODE (x12) != CCmode)
        return -1;
      x4 = XEXP (x2, 0);
      operands[0] = x4;
      x7 = XVECEXP (x3, 0, 0);
      operands[1] = x7;
      if (!register_operand (operands[1], V16QImode))
        return -1;
      x5 = XVECEXP (x3, 0, 1);
      operands[2] = x5;
      if (!register_operand (operands[2], SImode))
        return -1;
      x8 = XVECEXP (x3, 0, 2);
      operands[3] = x8;
      if (!nonimmediate_operand (operands[3], V16QImode))
        return -1;
      x16 = XVECEXP (x3, 0, 3);
      operands[4] = x16;
      if (!register_operand (operands[4], SImode))
        return -1;
      x17 = XVECEXP (x3, 0, 4);
      operands[5] = x17;
      if (!const_0_to_255_operand (operands[5], SImode))
        return -1;
      x13 = XVECEXP (x11, 0, 0);
      if (!rtx_equal_p (x13, operands[1]))
        return -1;
      x14 = XVECEXP (x11, 0, 1);
      if (!rtx_equal_p (x14, operands[2]))
        return -1;
      x15 = XVECEXP (x11, 0, 2);
      if (!rtx_equal_p (x15, operands[3]))
        return -1;
      x18 = XVECEXP (x11, 0, 3);
      if (!rtx_equal_p (x18, operands[4]))
        return -1;
      x19 = XVECEXP (x11, 0, 4);
      if (!rtx_equal_p (x19, operands[5]))
        return -1;
      switch (pattern883 (x3))
        {
        case 0:
          if (!
#line 15556 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_2))
            return -1;
          return 3967; /* sse4_2_pcmpestri */

        case 1:
          if (!
#line 15585 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_2))
            return -1;
          return 3968; /* sse4_2_pcmpestrm */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_222 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (pattern95 (x2, CCmode, 17) != 0)
    return -1;
  x3 = XVECEXP (x1, 0, 0);
  x4 = XEXP (x3, 1);
  x5 = XEXP (x4, 0);
  switch (GET_CODE (x5))
    {
    case ASHIFT:
      x6 = XEXP (x3, 0);
      operands[0] = x6;
      x7 = XEXP (x5, 0);
      switch (GET_CODE (x7))
        {
        case ZERO_EXTEND:
          if (GET_MODE (x7) != HImode)
            return -1;
          x8 = XEXP (x7, 0);
          if (GET_CODE (x8) != TRUNCATE
              || GET_MODE (x8) != QImode)
            return -1;
          x9 = XEXP (x8, 0);
          if (GET_CODE (x9) != MOD
              || GET_MODE (x9) != HImode)
            return -1;
          x10 = XEXP (x5, 1);
          if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
            return -1;
          x11 = XEXP (x4, 1);
          if (GET_CODE (x11) != ZERO_EXTEND
              || GET_MODE (x11) != HImode)
            return -1;
          x12 = XEXP (x11, 0);
          if (GET_CODE (x12) != TRUNCATE
              || GET_MODE (x12) != QImode)
            return -1;
          x13 = XEXP (x12, 0);
          if (GET_CODE (x13) != DIV
              || GET_MODE (x13) != HImode
              || !register_operand (operands[0], HImode)
              || GET_MODE (x4) != HImode
              || GET_MODE (x5) != HImode)
            return -1;
          x14 = XEXP (x9, 0);
          operands[1] = x14;
          if (!register_operand (operands[1], HImode))
            return -1;
          x15 = XEXP (x9, 1);
          if (GET_MODE (x15) != HImode)
            return -1;
          x16 = XEXP (x13, 1);
          if (GET_MODE (x16) != HImode)
            return -1;
          x17 = XEXP (x13, 0);
          if (!rtx_equal_p (x17, operands[1]))
            return -1;
          switch (GET_CODE (x15))
            {
            case SIGN_EXTEND:
              if (GET_CODE (x16) != SIGN_EXTEND)
                return -1;
              x18 = XEXP (x15, 0);
              operands[2] = x18;
              if (!nonimmediate_operand (operands[2], QImode))
                return -1;
              x19 = XEXP (x16, 0);
              if (!rtx_equal_p (x19, operands[2])
                  || !
#line 7614 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_QIMODE_MATH))
                return -1;
              return 355; /* divmodhiqi3 */

            case ZERO_EXTEND:
              if (GET_CODE (x16) != ZERO_EXTEND)
                return -1;
              x18 = XEXP (x15, 0);
              operands[2] = x18;
              if (!nonimmediate_operand (operands[2], QImode))
                return -1;
              x19 = XEXP (x16, 0);
              if (!rtx_equal_p (x19, operands[2])
                  || !
#line 7781 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_QIMODE_MATH))
                return -1;
              return 366; /* udivmodhiqi3 */

            default:
              return -1;
            }

        case REG:
        case SUBREG:
        case MEM:
          if (!rtx_equal_p (x7, operands[0]))
            return -1;
          x11 = XEXP (x4, 1);
          if (pattern404 (x11, LSHIFTRT) != 0)
            return -1;
          x10 = XEXP (x5, 1);
          operands[2] = x10;
          if (!nonmemory_operand (operands[2], QImode))
            return -1;
          x12 = XEXP (x11, 0);
          operands[1] = x12;
          switch (pattern758 (x4))
            {
            case 0:
              if (!
#line 9760 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                return -1;
              return 525; /* x86_64_shld */

            case 1:
              return 526; /* x86_shld */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case REG:
    case SUBREG:
    case MEM:
      switch (pattern398 (x3))
        {
        case 0:
          if (!
#line 8722 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (IOR, SImode, operands)))
            return -1;
          return 410; /* *iorsi_1 */

        case 1:
          if (x86_64_general_operand (operands[2], DImode)
              && (
#line 8722 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (IOR, DImode, operands)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return 412; /* *iordi_1 */
          if (!x86_64_szext_general_operand (operands[2], DImode)
              || !
#line 8736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_STV && TARGET_SSE2
   && ix86_binary_operator_ok (IOR, DImode, operands)))
            return -1;
          return 414; /* *iordi3_doubleword */

        case 2:
          if (!
#line 8795 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (IOR, HImode, operands)))
            return -1;
          return 417; /* *iorhi_1 */

        case 3:
          if (!
#line 8809 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (IOR, QImode, operands)))
            return -1;
          return 419; /* *iorqi_1 */

        case 4:
          if (!
#line 8846 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
            return -1;
          return 425; /* *iorqi_1_slp */

        default:
          return -1;
        }

    case ZERO_EXTEND:
      if (pattern400 (x3) != 0
          || !
#line 8836 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_binary_operator_ok (IOR, SImode, operands)))
        return -1;
      return 423; /* *iorsi_1_zext_imm */

    case ZERO_EXTRACT:
      switch (pattern403 (x3))
        {
        case 0:
          if (!
#line 9046 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
            return -1;
          return 458; /* *iorqi_ext_0 */

        case 1:
          if (!
#line 9065 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
            return -1;
          return 460; /* *iorqi_ext_1 */

        case 2:
          if (!
#line 9084 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
            return -1;
          return 462; /* *iorqi_ext_2 */

        default:
          return -1;
        }

    case LSHIFTRT:
      x11 = XEXP (x4, 1);
      if (pattern404 (x11, ASHIFT) != 0)
        return -1;
      x6 = XEXP (x3, 0);
      operands[0] = x6;
      x10 = XEXP (x5, 1);
      operands[2] = x10;
      if (!nonmemory_operand (operands[2], QImode))
        return -1;
      x12 = XEXP (x11, 0);
      operands[1] = x12;
      x7 = XEXP (x5, 0);
      if (!rtx_equal_p (x7, operands[0]))
        return -1;
      switch (pattern758 (x4))
        {
        case 0:
          if (!
#line 10387 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
            return -1;
          return 555; /* x86_64_shrd */

        case 1:
          return 556; /* x86_shrd */

        default:
          return -1;
        }

    case NOT:
      x7 = XEXP (x5, 0);
      if (GET_CODE (x7) != PLUS)
        return -1;
      x20 = XEXP (x7, 1);
      if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x6 = XEXP (x3, 0);
      operands[0] = x6;
      x8 = XEXP (x7, 0);
      operands[1] = x8;
      x11 = XEXP (x4, 1);
      if (!rtx_equal_p (x11, operands[1]))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case SImode:
          if (!register_operand (operands[0], SImode)
              || GET_MODE (x4) != SImode
              || GET_MODE (x5) != SImode
              || GET_MODE (x7) != SImode
              || !nonimmediate_operand (operands[1], SImode)
              || !
#line 13343 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM))
            return -1;
          return 774; /* *tbm_blci_si */

        case DImode:
          if (!register_operand (operands[0], DImode)
              || GET_MODE (x4) != DImode
              || GET_MODE (x5) != DImode
              || GET_MODE (x7) != DImode
              || !nonimmediate_operand (operands[1], DImode)
              || !(
#line 13343 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          return 775; /* *tbm_blci_di */

        default:
          return -1;
        }

    case PLUS:
      x10 = XEXP (x5, 1);
      if (GET_CODE (x10) != CONST_INT)
        return -1;
      x6 = XEXP (x3, 0);
      operands[0] = x6;
      x7 = XEXP (x5, 0);
      operands[1] = x7;
      switch (XWINT (x10, 0))
        {
        case 1LL:
          switch (pattern587 (x4))
            {
            case 0:
              if (!
#line 13383 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM))
                return -1;
              return 780; /* *tbm_blcs_si */

            case 1:
              if (!(
#line 13383 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 781; /* *tbm_blcs_di */

            case 2:
              if (!
#line 13424 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM))
                return -1;
              return 786; /* *tbm_t1mskc_si */

            case 3:
              if (!(
#line 13424 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 787; /* *tbm_t1mskc_di */

            default:
              return -1;
            }

        case -1LL:
          switch (pattern587 (x4))
            {
            case 0:
              if (!
#line 13396 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM))
                return -1;
              return 782; /* *tbm_blsfill_si */

            case 1:
              if (!(
#line 13396 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 783; /* *tbm_blsfill_di */

            case 2:
              if (!
#line 13410 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM))
                return -1;
              return 784; /* *tbm_blsic_si */

            case 3:
              if (!(
#line 13410 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 785; /* *tbm_blsic_di */

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_223 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, 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);
  switch (XVECLEN (x4, 0))
    {
    case 1:
      switch (XINT (x4, 1))
        {
        case 1:
          x5 = XVECEXP (x1, 0, 1);
          if (pattern95 (x5, CCmode, 17) != 0)
            return -1;
          x6 = XVECEXP (x4, 0, 0);
          operands[1] = x6;
          switch (GET_MODE (operands[0]))
            {
            case SImode:
              if (!register_operand (operands[0], SImode)
                  || GET_MODE (x4) != SImode
                  || !register_operand (operands[1], SImode)
                  || !(
#line 17683 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_target_stack_probe ()) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              return 1005; /* allocate_stack_worker_probe_si */

            case DImode:
              if (!register_operand (operands[0], DImode)
                  || GET_MODE (x4) != DImode
                  || !register_operand (operands[1], DImode)
                  || !(
#line 17683 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_target_stack_probe ()) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              return 1006; /* allocate_stack_worker_probe_di */

            default:
              return -1;
            }

        case 10:
          if (pattern240 (x1, 10, DImode, UNSPEC_VOLATILE, 1) != 0
              || !register_operand (operands[0], DImode))
            return -1;
          x6 = XVECEXP (x4, 0, 0);
          operands[2] = x6;
          if (!register_operand (operands[2], SImode))
            return -1;
          x5 = XVECEXP (x1, 0, 1);
          x7 = XEXP (x5, 0);
          operands[1] = x7;
          if (!register_operand (operands[1], DImode))
            return -1;
          x8 = XEXP (x5, 1);
          x9 = XVECEXP (x8, 0, 0);
          if (!rtx_equal_p (x9, operands[2])
              || !
#line 18922 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
            return -1;
          return 1028; /* rdpmc_rex64 */

        case 8:
          if (pattern288 (x1, DImode, 8) != 0
              || !
#line 18940 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
            return -1;
          return 1030; /* rdtsc_rex64 */

        case 9:
          if (pattern288 (x1, SImode, 9) != 0
              || !
#line 18950 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT))
            return -1;
          return 1031; /* rdtscp */

        case 39:
          switch (pattern289 (x1, 39))
            {
            case 0:
              if (!
#line 19313 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_RDRND))
                return -1;
              return 1075; /* rdrandhi_1 */

            case 1:
              if (!
#line 19313 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_RDRND))
                return -1;
              return 1076; /* rdrandsi_1 */

            case 2:
              if (!(
#line 19313 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_RDRND) && 
#line 991 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 1077; /* rdranddi_1 */

            default:
              return -1;
            }

        case 40:
          switch (pattern289 (x1, 40))
            {
            case 0:
              if (!
#line 19323 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_RDSEED))
                return -1;
              return 1078; /* rdseedhi_1 */

            case 1:
              if (!
#line 19323 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_RDSEED))
                return -1;
              return 1079; /* rdseedsi_1 */

            case 2:
              if (!(
#line 19323 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_RDSEED) && 
#line 991 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 1080; /* rdseeddi_1 */

            default:
              return -1;
            }

        case 51:
          if (GET_MODE (x4) != SImode)
            return -1;
          x5 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x5) != SET)
            return -1;
          x8 = XEXP (x5, 1);
          if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
              || !register_operand (operands[0], SImode))
            return -1;
          x6 = XVECEXP (x4, 0, 0);
          operands[2] = x6;
          if (!register_operand (operands[2], SImode))
            return -1;
          x7 = XEXP (x5, 0);
          operands[1] = x7;
          if (!register_operand (operands[1], SImode)
              || !
#line 19644 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_PKU))
            return -1;
          return 1109; /* *rdpkru */

        default:
          return -1;
        }

    case 2:
      switch (XINT (x4, 1))
        {
        case 2:
          x5 = XVECEXP (x1, 0, 1);
          if (pattern95 (x5, CCmode, 17) != 0)
            return -1;
          x6 = XVECEXP (x4, 0, 0);
          operands[1] = x6;
          x10 = XVECEXP (x4, 0, 1);
          operands[2] = x10;
          switch (GET_MODE (operands[0]))
            {
            case SImode:
              if (pattern648 (x4, SImode) != 0
                  || !
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))
                return -1;
              return 1009; /* probe_stack_rangesi */

            case DImode:
              if (pattern648 (x4, DImode) != 0
                  || !
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))
                return -1;
              return 1010; /* probe_stack_rangedi */

            default:
              return -1;
            }

        case 62:
          x5 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x5) != SET)
            return -1;
          x6 = XVECEXP (x4, 0, 0);
          operands[1] = x6;
          x10 = XVECEXP (x4, 0, 1);
          operands[3] = x10;
          if (!const_int_operand (operands[3], SImode))
            return -1;
          x7 = XEXP (x5, 0);
          if (!rtx_equal_p (x7, operands[1]))
            return -1;
          x8 = XEXP (x5, 1);
          switch (GET_CODE (x8))
            {
            case PLUS:
              if (pnum_clobbers == NULL)
                return -1;
              x11 = XEXP (x8, 1);
              operands[2] = x11;
              x12 = XEXP (x8, 0);
              if (!rtx_equal_p (x12, operands[1]))
                return -1;
              switch (GET_MODE (operands[0]))
                {
                case QImode:
                  if (pattern735 (x1, QImode) != 0
                      || !
#line 436 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
(TARGET_XADD))
                    return -1;
                  *pnum_clobbers = 1;
                  return 4988; /* atomic_fetch_addqi */

                case HImode:
                  if (pattern735 (x1, HImode) != 0
                      || !
#line 436 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
(TARGET_XADD))
                    return -1;
                  *pnum_clobbers = 1;
                  return 4989; /* atomic_fetch_addhi */

                case SImode:
                  if (pattern735 (x1, SImode) != 0
                      || !
#line 436 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
(TARGET_XADD))
                    return -1;
                  *pnum_clobbers = 1;
                  return 4990; /* atomic_fetch_addsi */

                case DImode:
                  if (pattern735 (x1, DImode) != 0
                      || !(
#line 436 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
(TARGET_XADD) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                    return -1;
                  *pnum_clobbers = 1;
                  return 4991; /* atomic_fetch_adddi */

                default:
                  return -1;
                }

            case REG:
            case SUBREG:
              operands[2] = x8;
              switch (GET_MODE (operands[0]))
                {
                case QImode:
                  if (pattern681 (x4, QImode) != 0)
                    return -1;
                  return 4996; /* atomic_exchangeqi */

                case HImode:
                  if (pattern681 (x4, HImode) != 0)
                    return -1;
                  return 4997; /* atomic_exchangehi */

                case SImode:
                  if (pattern681 (x4, SImode) != 0)
                    return -1;
                  return 4998; /* atomic_exchangesi */

                case DImode:
                  if (pattern681 (x4, DImode) != 0
                      || !
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                    return -1;
                  return 4999; /* atomic_exchangedi */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case 63:
          x5 = XVECEXP (x1, 0, 1);
          if (pattern95 (x5, CCmode, 17) != 0)
            return -1;
          x10 = XVECEXP (x4, 0, 1);
          operands[2] = x10;
          if (!const_int_operand (operands[2], SImode))
            return -1;
          x6 = XVECEXP (x4, 0, 0);
          switch (GET_CODE (x6))
            {
            case PLUS:
              switch (pattern650 (x4))
                {
                case 0:
                  return 5000; /* atomic_addqi */

                case 1:
                  return 5001; /* atomic_addhi */

                case 2:
                  return 5002; /* atomic_addsi */

                case 3:
                  if (!
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                    return -1;
                  return 5003; /* atomic_adddi */

                default:
                  return -1;
                }

            case MINUS:
              switch (pattern650 (x4))
                {
                case 0:
                  return 5004; /* atomic_subqi */

                case 1:
                  return 5005; /* atomic_subhi */

                case 2:
                  return 5006; /* atomic_subsi */

                case 3:
                  if (!
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                    return -1;
                  return 5007; /* atomic_subdi */

                default:
                  return -1;
                }

            case AND:
              switch (pattern650 (x4))
                {
                case 0:
                  return 5008; /* atomic_andqi */

                case 1:
                  return 5011; /* atomic_andhi */

                case 2:
                  return 5014; /* atomic_andsi */

                case 3:
                  if (!
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                    return -1;
                  return 5017; /* atomic_anddi */

                default:
                  return -1;
                }

            case IOR:
              switch (pattern650 (x4))
                {
                case 0:
                  return 5009; /* atomic_orqi */

                case 1:
                  return 5012; /* atomic_orhi */

                case 2:
                  return 5015; /* atomic_orsi */

                case 3:
                  if (!
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                    return -1;
                  return 5018; /* atomic_ordi */

                default:
                  return -1;
                }

            case XOR:
              switch (pattern650 (x4))
                {
                case 0:
                  return 5010; /* atomic_xorqi */

                case 1:
                  return 5013; /* atomic_xorhi */

                case 2:
                  return 5016; /* atomic_xorsi */

                case 3:
                  if (!
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                    return -1;
                  return 5019; /* atomic_xordi */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_224 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13;
  int res ATTRIBUTE_UNUSED;
  if (pattern94 (x1) != 0)
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
    case MEM:
      switch (pattern469 (x3))
        {
        case 0:
          if (!
#line 3840 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)))
            return -1;
          return 136; /* zero_extendqisi2_and */

        case 1:
          if (!
#line 3840 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)))
            return -1;
          return 137; /* zero_extendhisi2_and */

        case 2:
          if (!
#line 3887 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)))
            return -1;
          return 140; /* zero_extendqihi2_and */

        default:
          return -1;
        }

    case PLUS:
      if (GET_MODE (x4) != SImode
          || !register_operand (operands[0], DImode)
          || GET_MODE (x3) != DImode)
        return -1;
      x5 = XEXP (x4, 0);
      switch (GET_CODE (x5))
        {
        case REG:
        case SUBREG:
        case MEM:
          operands[1] = x5;
          if (!nonimmediate_operand (operands[1], SImode))
            return -1;
          x6 = XEXP (x4, 1);
          operands[2] = x6;
          if (!x86_64_general_operand (operands[2], SImode)
              || !
#line 5562 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_binary_operator_ok (PLUS, SImode, operands)))
            return -1;
          return 222; /* addsi_1_zext */

        case PLUS:
          if (GET_MODE (x5) != SImode)
            return -1;
          x7 = XEXP (x5, 0);
          if (!ix86_carry_flag_operator (x7, SImode))
            return -1;
          operands[3] = x7;
          x8 = XEXP (x7, 0);
          if (GET_CODE (x8) != REG
              || REGNO (x8) != 17)
            return -1;
          x9 = XEXP (x7, 1);
          if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x10 = XEXP (x5, 1);
          operands[1] = x10;
          if (!register_operand (operands[1], SImode))
            return -1;
          x6 = XEXP (x4, 1);
          operands[2] = x6;
          if (!x86_64_general_operand (operands[2], SImode)
              || !
#line 6636 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_binary_operator_ok (PLUS, SImode, operands)))
            return -1;
          return 289; /* *addsi3_carry_zext */

        case UNSPEC:
          if (XVECLEN (x5, 0) != 1
              || XINT (x5, 1) != 19
              || GET_MODE (x5) != SImode)
            return -1;
          x11 = XVECEXP (x5, 0, 0);
          if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x6 = XEXP (x4, 1);
          operands[1] = x6;
          if (!register_operand (operands[1], SImode)
              || !
#line 14005 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_X32))
            return -1;
          return 821; /* *add_tp_x32_zext */

        default:
          return -1;
        }

    case MINUS:
      if (GET_MODE (x4) != SImode
          || !register_operand (operands[0], DImode)
          || GET_MODE (x3) != DImode)
        return -1;
      x6 = XEXP (x4, 1);
      operands[2] = x6;
      if (!x86_64_general_operand (operands[2], SImode))
        return -1;
      x5 = XEXP (x4, 0);
      switch (GET_CODE (x5))
        {
        case REG:
        case SUBREG:
          operands[1] = x5;
          if (!register_operand (operands[1], SImode)
              || !
#line 6454 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_binary_operator_ok (MINUS, SImode, operands)))
            return -1;
          return 265; /* *subsi_1_zext */

        case MINUS:
          if (GET_MODE (x5) != SImode)
            return -1;
          x10 = XEXP (x5, 1);
          if (!ix86_carry_flag_operator (x10, SImode))
            return -1;
          operands[3] = x10;
          x12 = XEXP (x10, 0);
          if (GET_CODE (x12) != REG
              || REGNO (x12) != 17)
            return -1;
          x13 = XEXP (x10, 1);
          if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x7 = XEXP (x5, 0);
          operands[1] = x7;
          if (!register_operand (operands[1], SImode)
              || !
#line 6693 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_binary_operator_ok (MINUS, SImode, operands)))
            return -1;
          return 296; /* *subsi3_carry_zext */

        default:
          return -1;
        }

    case MULT:
      if (pattern470 (x3) != 0
          || !
#line 6911 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
        return -1;
      return 320; /* *mulsi3_1_zext */

    case AND:
      if (pattern470 (x3) != 0
          || !
#line 8261 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_binary_operator_ok (AND, SImode, operands)))
        return -1;
      return 393; /* *andsi_1_zext */

    case IOR:
      if (pattern470 (x3) != 0
          || !
#line 8825 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_binary_operator_ok (IOR, SImode, operands)))
        return -1;
      return 421; /* *iorsi_1_zext */

    case XOR:
      if (pattern470 (x3) != 0
          || !
#line 8825 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_binary_operator_ok (XOR, SImode, operands)))
        return -1;
      return 422; /* *xorsi_1_zext */

    case ASHIFT:
      if (pattern471 (x3) != 0
          || !
#line 9935 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_binary_operator_ok (ASHIFT, SImode, operands)))
        return -1;
      return 534; /* *ashlsi3_1_zext */

    case ASHIFTRT:
      if (GET_MODE (x4) != SImode
          || !register_operand (operands[0], DImode)
          || GET_MODE (x3) != DImode)
        return -1;
      x5 = XEXP (x4, 0);
      operands[1] = x5;
      x6 = XEXP (x4, 1);
      operands[2] = x6;
      if (const_int_operand (operands[2], QImode)
          && register_operand (operands[1], SImode)
          && 
#line 10453 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && INTVAL (operands[2]) == 31
   && (TARGET_USE_CLTD || optimize_function_for_size_p (cfun))
   && ix86_binary_operator_ok (ASHIFTRT, SImode, operands)))
        return 559; /* *ashrsi3_cvt_zext */
      if (!nonmemory_operand (operands[2], QImode)
          || !nonimmediate_operand (operands[1], SImode)
          || !
#line 10562 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_binary_operator_ok (ASHIFTRT, SImode, operands)))
        return -1;
      return 571; /* *ashrsi3_1_zext */

    case LSHIFTRT:
      if (pattern471 (x3) != 0
          || !
#line 10562 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_binary_operator_ok (LSHIFTRT, SImode, operands)))
        return -1;
      return 570; /* *lshrsi3_1_zext */

    case ROTATE:
      if (pattern471 (x3) != 0
          || !
#line 10948 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_binary_operator_ok (ROTATE, SImode, operands)))
        return -1;
      return 611; /* *rotlsi3_1_zext */

    case ROTATERT:
      if (pattern471 (x3) != 0
          || !
#line 10948 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_binary_operator_ok (ROTATERT, SImode, operands)))
        return -1;
      return 612; /* *rotrsi3_1_zext */

    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, x8, x9;
  rtx x10, x11, x12, x13;
  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:
    case MEM:
      switch (pattern148 (x1))
        {
        case 0:
          switch (GET_MODE (operands[0]))
            {
            case DImode:
              if (pattern396 (x3, DImode) != 0)
                return -1;
              if ((
#line 5475 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, DImode, operands)) && 
#line 1043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT)))
                return 218; /* *adddi3_doubleword */
              if (!(
#line 5506 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, DImode, operands)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 221; /* *adddi_1 */

            case TImode:
              if (pattern396 (x3, TImode) != 0
                  || !(
#line 5475 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, TImode, operands)) && 
#line 1044 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 219; /* *addti3_doubleword */

            case SImode:
              if (pattern396 (x3, SImode) != 0
                  || !
#line 5506 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, SImode, operands)))
                return -1;
              return 220; /* *addsi_1 */

            case HImode:
              if (pattern397 (x3, HImode) != 0
                  || !
#line 5609 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, HImode, operands)))
                return -1;
              return 223; /* *addhi_1 */

            case QImode:
              if (pattern397 (x3, QImode) != 0
                  || !
#line 5659 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, QImode, operands)))
                return -1;
              return 224; /* *addqi_1 */

            default:
              return -1;
            }

        case 1:
          if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (PLUS, V16SFmode, operands) && 1 && (V16SFmode == V16SFmode
							      || V16SFmode == V8DFmode
							      || V16SFmode == V8DImode
							      || V16SFmode == V16SImode)) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 1392; /* *addv16sf3_round */

        case 2:
          if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (PLUS, V8SFmode, operands) && 1 && (V8SFmode == V16SFmode
							      || V8SFmode == V8DFmode
							      || V8SFmode == V8DImode
							      || V8SFmode == V16SImode)) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 1400; /* *addv8sf3_round */

        case 3:
          if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (PLUS, V4SFmode, operands) && 1 && (V4SFmode == V16SFmode
							      || V4SFmode == V8DFmode
							      || V4SFmode == V8DImode
							      || V4SFmode == V16SImode))))
            return -1;
          return 1408; /* *addv4sf3_round */

        case 4:
          if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (PLUS, V8DFmode, operands) && 1 && (V8DFmode == V16SFmode
							      || V8DFmode == V8DFmode
							      || V8DFmode == V8DImode
							      || V8DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 1416; /* *addv8df3_round */

        case 5:
          if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (PLUS, V4DFmode, operands) && 1 && (V4DFmode == V16SFmode
							      || V4DFmode == V8DFmode
							      || V4DFmode == V8DImode
							      || V4DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 1424; /* *addv4df3_round */

        case 6:
          if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (PLUS, V2DFmode, operands) && 1 && (V2DFmode == V16SFmode
							      || V2DFmode == V8DFmode
							      || V2DFmode == V8DImode
							      || V2DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
            return -1;
          return 1432; /* *addv2df3_round */

        case 7:
          if (!
#line 5717 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((! TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
            return -1;
          return 225; /* *addqi_1_slp */

        default:
          return -1;
        }

    case ZERO_EXTRACT:
      if (pattern149 (x2) != 0
          || pattern244 (x1) != 0
          || !ext_register_operand (operands[0], VOIDmode)
          || GET_MODE (x3) != SImode)
        return -1;
      x5 = XEXP (x4, 0);
      operands[1] = x5;
      if (!ext_register_operand (operands[1], VOIDmode))
        return -1;
      x6 = XEXP (x3, 1);
      switch (GET_CODE (x6))
        {
        case CONST_INT:
        case CONST_WIDE_INT:
        case CONST_FIXED:
        case CONST_DOUBLE:
        case CONST_VECTOR:
        case CONST:
        case REG:
        case SUBREG:
        case MEM:
        case LABEL_REF:
        case SYMBOL_REF:
        case HIGH:
          operands[2] = x6;
          if (!general_x64nomem_operand (operands[2], QImode))
            return -1;
          return 244; /* addqi_ext_1 */

        case ZERO_EXTRACT:
          if (pattern401 (x6) != 0)
            return -1;
          return 245; /* *addqi_ext_2 */

        default:
          return -1;
        }

    case PLUS:
      x5 = XEXP (x4, 0);
      switch (GET_CODE (x5))
        {
        case GE:
        case GT:
        case LE:
        case LT:
        case GTU:
        case LTU:
        case UNEQ:
        case UNGE:
        case UNGT:
        case UNLE:
        case UNLT:
        case LTGT:
          operands[4] = x5;
          x7 = XEXP (x5, 1);
          if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
              || pattern94 (x1) != 0)
            return -1;
          x8 = XEXP (x5, 0);
          operands[3] = x8;
          if (!flags_reg_operand (operands[3], VOIDmode))
            return -1;
          x9 = XEXP (x4, 1);
          operands[1] = x9;
          x6 = XEXP (x3, 1);
          operands[2] = x6;
          switch (GET_MODE (operands[0]))
            {
            case QImode:
              if (pattern753 (x3, QImode) != 0
                  || !
#line 6620 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, QImode, operands)))
                return -1;
              return 285; /* addqi3_carry */

            case HImode:
              if (pattern753 (x3, HImode) != 0
                  || !
#line 6620 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, HImode, operands)))
                return -1;
              return 286; /* addhi3_carry */

            case SImode:
              if (pattern754 (x3, SImode) != 0
                  || !
#line 6620 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, SImode, operands)))
                return -1;
              return 287; /* addsi3_carry */

            case DImode:
              if (pattern754 (x3, DImode) != 0
                  || !(
#line 6620 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (PLUS, DImode, operands)) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 288; /* adddi3_carry */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case UNSPEC:
      if (pattern94 (x1) != 0)
        return -1;
      switch (XVECLEN (x4, 0))
        {
        case 1:
          if (XINT (x4, 1) != 19)
            return -1;
          x10 = XVECEXP (x4, 0, 0);
          if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x6 = XEXP (x3, 1);
          operands[1] = x6;
          switch (GET_MODE (operands[0]))
            {
            case SImode:
              if (pattern677 (x3, SImode) != 0)
                return -1;
              if (
#line 13991 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_X32))
                return 820; /* *add_tp_x32 */
              if (!(
#line 14018 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_X32) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              return 822; /* *add_tp_si */

            case DImode:
              if (pattern677 (x3, DImode) != 0
                  || !(
#line 14018 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_X32) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              return 823; /* *add_tp_di */

            default:
              return -1;
            }

        case 4:
          if (XINT (x4, 1) != 22
              || pattern543 (x4) != 0)
            return -1;
          x6 = XEXP (x3, 1);
          if (pattern702 (x6, SImode) != 0
              || pattern856 (x3) != 0)
            return -1;
          x11 = XEXP (x6, 0);
          x12 = XVECEXP (x11, 0, 0);
          operands[1] = x12;
          if (!tls_symbolic_operand (operands[1], VOIDmode)
              || !
#line 14102 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_GNU2_TLS))
            return -1;
          return 826; /* *tls_dynamic_gnu2_combine_32 */

        case 3:
          if (XINT (x4, 1) != 22
              || pattern544 (x4, DImode) != 0)
            return -1;
          x6 = XEXP (x3, 1);
          if (pattern702 (x6, DImode) != 0
              || !register_operand (operands[0], DImode)
              || GET_MODE (x3) != DImode)
            return -1;
          x10 = XVECEXP (x4, 0, 0);
          operands[2] = x10;
          if (!tls_modbase_operand (operands[2], VOIDmode))
            return -1;
          x13 = XVECEXP (x4, 0, 1);
          operands[3] = x13;
          x11 = XEXP (x6, 0);
          x12 = XVECEXP (x11, 0, 0);
          operands[1] = x12;
          if (!tls_symbolic_operand (operands[1], VOIDmode)
              || !
#line 14161 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && TARGET_GNU2_TLS))
            return -1;
          return 829; /* *tls_dynamic_gnu2_combine_64 */

        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;
  rtx x10, x11, x12, x13, x14, x15, x16;
  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 REG:
    case SUBREG:
    case MEM:
      x6 = XVECEXP (x1, 0, 1);
      switch (GET_CODE (x6))
        {
        case CLOBBER:
          x7 = XEXP (x6, 0);
          if (GET_CODE (x7) != REG
              || REGNO (x7) != 17
              || GET_MODE (x7) != CCmode)
            return -1;
          operands[1] = x5;
          x8 = XEXP (x4, 1);
          operands[2] = x8;
          switch (GET_MODE (operands[0]))
            {
            case HImode:
              if (!register_operand (operands[0], HImode)
                  || GET_MODE (x4) != HImode
                  || !nonimmediate_operand (operands[1], HImode)
                  || !general_operand (operands[2], HImode)
                  || !(
#line 6875 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))) && 
#line 1017 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_HIMODE_MATH)))
                return -1;
              return 317; /* *mulhi3_1 */

            case SImode:
              if (pattern584 (x4, SImode) != 0
                  || !
#line 6875 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))))
                return -1;
              return 318; /* *mulsi3_1 */

            case DImode:
              if (pattern584 (x4, DImode) != 0
                  || !(
#line 6875 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))) && 
#line 1018 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 319; /* *muldi3_1 */

            case QImode:
              if (!register_operand (operands[0], QImode)
                  || GET_MODE (x4) != QImode
                  || !nonimmediate_operand (operands[1], QImode)
                  || !nonimmediate_operand (operands[2], QImode)
                  || !
#line 6945 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_QIMODE_MATH
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                return -1;
              return 321; /* *mulqi3_1 */

            default:
              return -1;
            }

        case SET:
          x9 = XEXP (x6, 1);
          if (GET_CODE (x9) != TRUNCATE)
            return -1;
          x10 = XEXP (x9, 0);
          if (GET_CODE (x10) != LSHIFTRT)
            return -1;
          x11 = XEXP (x10, 0);
          if (GET_CODE (x11) != MULT)
            return -1;
          x12 = XEXP (x11, 0);
          if (GET_CODE (x12) != ZERO_EXTEND)
            return -1;
          x13 = XEXP (x11, 1);
          if (GET_CODE (x13) != ZERO_EXTEND)
            return -1;
          operands[2] = x5;
          x8 = XEXP (x4, 1);
          operands[3] = x8;
          x7 = XEXP (x6, 0);
          operands[1] = x7;
          x14 = XEXP (x10, 1);
          operands[4] = x14;
          if (!const_int_operand (operands[4], QImode))
            return -1;
          x15 = XEXP (x12, 0);
          if (!rtx_equal_p (x15, operands[2]))
            return -1;
          x16 = XEXP (x13, 0);
          if (!rtx_equal_p (x16, operands[3]))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case SImode:
              if (pattern795 (x1, DImode, SImode) != 0
                  || !(
#line 7206 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2 && INTVAL (operands[4]) == 4 * BITS_PER_UNIT
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))) && 
#line 1043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT)))
                return -1;
              return 333; /* *bmi2_umulsidi3_1 */

            case DImode:
              if (pattern795 (x1, TImode, DImode) != 0
                  || !(
#line 7206 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2 && INTVAL (operands[4]) == 8 * BITS_PER_UNIT
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))) && 
#line 1044 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 334; /* *bmi2_umulditi3_1 */

            default:
              return -1;
            }

        case UNSPEC:
          if (XVECLEN (x6, 0) != 1
              || XINT (x6, 1) != 170)
            return -1;
          operands[1] = x5;
          x8 = XEXP (x4, 1);
          operands[2] = x8;
          switch (pattern146 (x1))
            {
            case 0:
              if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1709 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MULT, V16SFmode, operands) && 1 && (V16SFmode == V16SFmode
							      || V16SFmode == V8DFmode
							      || V16SFmode == V8DImode
							      || V16SFmode == V16SImode)) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
                return -1;
              return 1448; /* *mulv16sf3_round */

            case 1:
              if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1709 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MULT, V8SFmode, operands) && 1 && (V8SFmode == V16SFmode
							      || V8SFmode == V8DFmode
							      || V8SFmode == V8DImode
							      || V8SFmode == V16SImode)) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
                return -1;
              return 1452; /* *mulv8sf3_round */

            case 2:
              if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 1709 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MULT, V4SFmode, operands) && 1 && (V4SFmode == V16SFmode
							      || V4SFmode == V8DFmode
							      || V4SFmode == V8DImode
							      || V4SFmode == V16SImode))))
                return -1;
              return 1456; /* *mulv4sf3_round */

            case 3:
              if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1709 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MULT, V8DFmode, operands) && 1 && (V8DFmode == V16SFmode
							      || V8DFmode == V8DFmode
							      || V8DFmode == V8DImode
							      || V8DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
                return -1;
              return 1460; /* *mulv8df3_round */

            case 4:
              if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1709 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MULT, V4DFmode, operands) && 1 && (V4DFmode == V16SFmode
							      || V4DFmode == V8DFmode
							      || V4DFmode == V8DImode
							      || V4DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
                return -1;
              return 1464; /* *mulv4df3_round */

            case 5:
              if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1709 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MULT, V2DFmode, operands) && 1 && (V2DFmode == V16SFmode
							      || V2DFmode == V8DFmode
							      || V2DFmode == V8DImode
							      || V2DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
                return -1;
              return 1468; /* *mulv2df3_round */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case ZERO_EXTEND:
      switch (pattern226 (x1, ZERO_EXTEND))
        {
        case 0:
          if (!(
#line 7221 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))) && 
#line 1043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT)))
            return -1;
          return 335; /* *umulsidi3_1 */

        case 1:
          if (!(
#line 7221 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))) && 
#line 1044 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          return 336; /* *umulditi3_1 */

        case 2:
          if (!
#line 7292 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_QIMODE_MATH
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
            return -1;
          return 340; /* *umulqihi3_1 */

        default:
          return -1;
        }

    case SIGN_EXTEND:
      switch (pattern226 (x1, SIGN_EXTEND))
        {
        case 0:
          if (!(
#line 7272 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))) && 
#line 1043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT)))
            return -1;
          return 337; /* *mulsidi3_1 */

        case 1:
          if (!(
#line 7272 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))) && 
#line 1044 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          return 338; /* *mulditi3_1 */

        case 2:
          if (!
#line 7292 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_QIMODE_MATH
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
            return -1;
          return 339; /* *mulqihi3_1 */

        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;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (pattern95 (x2, CCmode, 17) != 0)
    return -1;
  x3 = XVECEXP (x1, 0, 0);
  x4 = XEXP (x3, 1);
  x5 = XEXP (x4, 0);
  switch (GET_CODE (x5))
    {
    case NEG:
      if (GET_MODE (x5) != DImode)
        return -1;
      x6 = XEXP (x5, 0);
      if (GET_CODE (x6) != ASHIFT
          || GET_MODE (x6) != DImode)
        return -1;
      x7 = XEXP (x6, 1);
      if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 32])
        return -1;
      x8 = XEXP (x4, 1);
      if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 32])
        return -1;
      x9 = XEXP (x3, 0);
      operands[0] = x9;
      if (!register_operand (operands[0], DImode)
          || GET_MODE (x4) != DImode)
        return -1;
      x10 = XEXP (x6, 0);
      operands[1] = x10;
      if (!register_operand (operands[1], DImode)
          || !
#line 9227 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_unary_operator_ok (NEG, SImode, operands)))
        return -1;
      return 471; /* *negsi2_1_zext */

    case REG:
    case SUBREG:
    case MEM:
      operands[1] = x5;
      res = recog_207 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      x8 = XEXP (x4, 1);
      if (!nonmemory_operand (x8, QImode))
        return -1;
      x9 = XEXP (x3, 0);
      switch (GET_CODE (x9))
        {
        case REG:
        case SUBREG:
        case MEM:
          operands[0] = x9;
          operands[1] = x5;
          operands[2] = x8;
          switch (GET_MODE (operands[0]))
            {
            case DImode:
              if (GET_MODE (x4) != DImode)
                return -1;
              if (register_operand (operands[0], DImode)
                  && register_operand (operands[1], DImode)
                  && 
#line 1021 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT))
                return 551; /* *lshrdi3_doubleword */
              if (!nonimmediate_operand (operands[0], DImode)
                  || !nonimmediate_operand (operands[1], DImode)
                  || !(
#line 10509 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (LSHIFTRT, DImode, operands)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 566; /* *lshrdi3_1 */

            case TImode:
              if (!register_operand (operands[0], TImode)
                  || GET_MODE (x4) != TImode
                  || !register_operand (operands[1], TImode)
                  || !
#line 1022 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                return -1;
              return 553; /* *lshrti3_doubleword */

            case SImode:
              if (!nonimmediate_operand (operands[0], SImode)
                  || GET_MODE (x4) != SImode
                  || !nonimmediate_operand (operands[1], SImode)
                  || !
#line 10509 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (LSHIFTRT, SImode, operands)))
                return -1;
              return 564; /* *lshrsi3_1 */

            case QImode:
              if (!nonimmediate_operand (operands[0], QImode)
                  || GET_MODE (x4) != QImode
                  || !nonimmediate_operand (operands[1], QImode)
                  || !
#line 10606 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (LSHIFTRT, QImode, operands)))
                return -1;
              return 572; /* *lshrqi3_1 */

            case HImode:
              if (!nonimmediate_operand (operands[0], HImode)
                  || GET_MODE (x4) != HImode
                  || !nonimmediate_operand (operands[1], HImode)
                  || !
#line 10606 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (LSHIFTRT, HImode, operands)))
                return -1;
              return 574; /* *lshrhi3_1 */

            default:
              return -1;
            }

        case STRICT_LOW_PART:
          x11 = XEXP (x9, 0);
          operands[0] = x11;
          if (!nonimmediate_operand (operands[0], QImode)
              || GET_MODE (x4) != QImode)
            return -1;
          operands[1] = x8;
          if (!rtx_equal_p (x5, operands[0])
              || !
#line 10629 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_REG_STALL
    || (operands[1] == const1_rtx
	&& TARGET_SHIFT1))))
            return -1;
          return 576; /* *lshrqi3_1_slp */

        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;
  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:
    case MEM:
      switch (pattern148 (x1))
        {
        case 0:
          switch (GET_MODE (operands[0]))
            {
            case DImode:
              if (pattern396 (x3, DImode) != 0)
                return -1;
              if ((
#line 6414 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (MINUS, SImode, operands)) && 
#line 1043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT)))
                return 259; /* *subdi3_doubleword */
              if (!(
#line 6443 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (MINUS, DImode, operands)) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 264; /* *subdi_1 */

            case TImode:
              if (pattern396 (x3, TImode) != 0
                  || !(
#line 6414 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (MINUS, DImode, operands)) && 
#line 1044 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 260; /* *subti3_doubleword */

            case QImode:
              if (pattern397 (x3, QImode) != 0
                  || !
#line 6443 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (MINUS, QImode, operands)))
                return -1;
              return 261; /* *subqi_1 */

            case HImode:
              if (pattern397 (x3, HImode) != 0
                  || !
#line 6443 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (MINUS, HImode, operands)))
                return -1;
              return 262; /* *subhi_1 */

            case SImode:
              if (pattern396 (x3, SImode) != 0
                  || !
#line 6443 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (MINUS, SImode, operands)))
                return -1;
              return 263; /* *subsi_1 */

            default:
              return -1;
            }

        case 1:
          if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MINUS, V16SFmode, operands) && 1 && (V16SFmode == V16SFmode
							      || V16SFmode == V8DFmode
							      || V16SFmode == V8DImode
							      || V16SFmode == V16SImode)) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 1396; /* *subv16sf3_round */

        case 2:
          if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MINUS, V8SFmode, operands) && 1 && (V8SFmode == V16SFmode
							      || V8SFmode == V8DFmode
							      || V8SFmode == V8DImode
							      || V8SFmode == V16SImode)) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 1404; /* *subv8sf3_round */

        case 3:
          if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MINUS, V4SFmode, operands) && 1 && (V4SFmode == V16SFmode
							      || V4SFmode == V8DFmode
							      || V4SFmode == V8DImode
							      || V4SFmode == V16SImode))))
            return -1;
          return 1412; /* *subv4sf3_round */

        case 4:
          if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MINUS, V8DFmode, operands) && 1 && (V8DFmode == V16SFmode
							      || V8DFmode == V8DFmode
							      || V8DFmode == V8DImode
							      || V8DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 1420; /* *subv8df3_round */

        case 5:
          if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MINUS, V4DFmode, operands) && 1 && (V4DFmode == V16SFmode
							      || V4DFmode == V8DFmode
							      || V4DFmode == V8DImode
							      || V4DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 1428; /* *subv4df3_round */

        case 6:
          if (!(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (MINUS, V2DFmode, operands) && 1 && (V2DFmode == V16SFmode
							      || V2DFmode == V8DFmode
							      || V2DFmode == V8DImode
							      || V2DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
            return -1;
          return 1436; /* *subv2df3_round */

        case 7:
          if (!
#line 6464 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((! TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
            return -1;
          return 266; /* *subqi_1_slp */

        default:
          return -1;
        }

    case MINUS:
      x5 = XEXP (x4, 1);
      switch (GET_CODE (x5))
        {
        case GE:
        case GT:
        case LE:
        case LT:
        case GTU:
        case LTU:
        case UNEQ:
        case UNGE:
        case UNGT:
        case UNLE:
        case UNLT:
        case LTGT:
          operands[4] = x5;
          x6 = XEXP (x5, 1);
          if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
              || pattern151 (x1) != 0)
            return -1;
          x7 = XEXP (x5, 0);
          operands[3] = x7;
          if (!flags_reg_operand (operands[3], VOIDmode))
            return -1;
          x8 = XEXP (x3, 1);
          operands[2] = x8;
          switch (GET_MODE (operands[0]))
            {
            case QImode:
              if (pattern755 (x3, QImode) != 0
                  || !
#line 6676 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (MINUS, QImode, operands)))
                return -1;
              return 292; /* subqi3_carry */

            case HImode:
              if (pattern755 (x3, HImode) != 0
                  || !
#line 6676 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (MINUS, HImode, operands)))
                return -1;
              return 293; /* subhi3_carry */

            case SImode:
              if (pattern756 (x3, SImode) != 0
                  || !
#line 6676 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (MINUS, SImode, operands)))
                return -1;
              return 294; /* subsi3_carry */

            case DImode:
              if (pattern756 (x3, DImode) != 0
                  || !(
#line 6676 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (MINUS, DImode, operands)) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 295; /* subdi3_carry */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case CONST_INT:
      x8 = XEXP (x3, 1);
      if (GET_CODE (x8) != CLZ
          || pattern94 (x1) != 0)
        return -1;
      x9 = XEXP (x8, 0);
      operands[1] = x9;
      switch (XWINT (x4, 0))
        {
        case 63LL:
          if (pattern583 (x3, DImode) != 0
              || !
#line 13448 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
            return -1;
          return 790; /* bsr_rex64 */

        case 31LL:
          if (pattern583 (x3, SImode) != 0)
            return -1;
          return 791; /* bsr */

        case 15LL:
          if (pattern583 (x3, HImode) != 0)
            return -1;
          return 792; /* *bsrhi */

        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;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x2) != UNSPEC
      || XVECLEN (x2, 0) != 1
      || XINT (x2, 1) != 170)
    return -1;
  x3 = XVECEXP (x1, 0, 0);
  x4 = XEXP (x3, 0);
  operands[0] = x4;
  x5 = XEXP (x3, 1);
  x6 = XEXP (x5, 1);
  operands[2] = x6;
  x7 = XVECEXP (x2, 0, 0);
  operands[4] = x7;
  if (!const_4_or_8_to_11_operand (operands[4], SImode))
    return -1;
  x8 = XEXP (x5, 0);
  switch (GET_CODE (x8))
    {
    case REG:
    case SUBREG:
      operands[1] = x8;
      x9 = XEXP (x5, 2);
      switch (GET_CODE (x9))
        {
        case REG:
        case SUBREG:
          operands[3] = x9;
          switch (GET_MODE (operands[0]))
            {
            case V16SFmode:
              if (pattern710 (x5, V16SFmode) != 0
                  || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3624 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && (V16SFmode == V16SFmode
							      || V16SFmode == V8DFmode
							      || V16SFmode == V8DImode
							      || V16SFmode == V16SImode))))
                return -1;
              return 1839; /* *fma_fmadd_v16sf_round */

            case V8DFmode:
              if (pattern710 (x5, V8DFmode) != 0
                  || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3624 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && (V8DFmode == V16SFmode
							      || V8DFmode == V8DFmode
							      || V8DFmode == V8DImode
							      || V8DFmode == V16SImode))))
                return -1;
              return 1848; /* *fma_fmadd_v8df_round */

            default:
              return -1;
            }

        case NEG:
          x10 = XEXP (x9, 0);
          operands[3] = x10;
          switch (GET_MODE (operands[0]))
            {
            case V16SFmode:
              if (pattern711 (x5, V16SFmode) != 0
                  || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3689 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && (V16SFmode == V16SFmode
							      || V16SFmode == V8DFmode
							      || V16SFmode == V8DImode
							      || V16SFmode == V16SImode))))
                return -1;
              return 1883; /* *fma_fmsub_v16sf_round */

            case V8DFmode:
              if (pattern711 (x5, V8DFmode) != 0
                  || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3689 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && (V8DFmode == V16SFmode
							      || V8DFmode == V8DFmode
							      || V8DFmode == V8DImode
							      || V8DFmode == V16SImode))))
                return -1;
              return 1892; /* *fma_fmsub_v8df_round */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case NEG:
      x11 = XEXP (x8, 0);
      operands[1] = x11;
      x9 = XEXP (x5, 2);
      switch (GET_CODE (x9))
        {
        case REG:
        case SUBREG:
          operands[3] = x9;
          switch (GET_MODE (operands[0]))
            {
            case V16SFmode:
              if (pattern712 (x5, V16SFmode) != 0
                  || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3756 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && (V16SFmode == V16SFmode
							      || V16SFmode == V8DFmode
							      || V16SFmode == V8DImode
							      || V16SFmode == V16SImode))))
                return -1;
              return 1927; /* *fma_fnmadd_v16sf_round */

            case V8DFmode:
              if (pattern712 (x5, V8DFmode) != 0
                  || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3756 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && (V8DFmode == V16SFmode
							      || V8DFmode == V8DFmode
							      || V8DFmode == V8DImode
							      || V8DFmode == V16SImode))))
                return -1;
              return 1936; /* *fma_fnmadd_v8df_round */

            default:
              return -1;
            }

        case NEG:
          x10 = XEXP (x9, 0);
          operands[3] = x10;
          switch (GET_MODE (operands[0]))
            {
            case SFmode:
              if (pattern713 (x5, SFmode) != 0
                  || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3806 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4)))
                return -1;
              return 1960; /* *fma_fnmsub_sf */

            case DFmode:
              if (pattern713 (x5, DFmode) != 0
                  || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3806 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4)))
                return -1;
              return 1962; /* *fma_fnmsub_df */

            case V4SFmode:
              if (pattern713 (x5, V4SFmode) != 0
                  || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3806 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4)))
                return -1;
              return 1964; /* *fma_fnmsub_v4sf */

            case V2DFmode:
              if (pattern713 (x5, V2DFmode) != 0
                  || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3806 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4)))
                return -1;
              return 1968; /* *fma_fnmsub_v2df */

            case V8SFmode:
              if (pattern713 (x5, V8SFmode) != 0
                  || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3806 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4)))
                return -1;
              return 1972; /* *fma_fnmsub_v8sf */

            case V4DFmode:
              if (pattern713 (x5, V4DFmode) != 0
                  || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3806 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_FMA || TARGET_FMA4)))
                return -1;
              return 1976; /* *fma_fnmsub_v4df */

            case V16SFmode:
              if (pattern714 (x5, V16SFmode) != 0
                  || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3825 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && (V16SFmode == V16SFmode
							      || V16SFmode == V8DFmode
							      || V16SFmode == V8DImode
							      || V16SFmode == V16SImode))))
                return -1;
              return 1981; /* *fma_fnmsub_v16sf_round */

            case V8DFmode:
              if (pattern714 (x5, V8DFmode) != 0
                  || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 3825 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && 1 && (V8DFmode == V16SFmode
							      || V8DFmode == V8DFmode
							      || V8DFmode == V8DImode
							      || V8DFmode == V16SImode))))
                return -1;
              return 1990; /* *fma_fnmsub_v8df_round */

            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;
  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 REG:
    case SUBREG:
      operands[1] = x5;
      x6 = XVECEXP (x1, 0, 1);
      switch (GET_CODE (x6))
        {
        case CLOBBER:
          if (!register_operand (operands[1], VOIDmode))
            return -1;
          x7 = XEXP (x6, 0);
          switch (GET_CODE (x7))
            {
            case REG:
            case SCRATCH:
              operands[2] = x7;
              if (scratch_operand (operands[2], XFmode))
                {
                  switch (GET_MODE (operands[0]))
                    {
                    case HImode:
                      if (memory_operand (operands[0], HImode)
                          && GET_MODE (x4) == HImode
                          && 
#line 4860 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(X87_FLOAT_MODE_P (GET_MODE (operands[1]))
   && TARGET_FISTTP
   && !((SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
	 && (TARGET_64BIT || HImode != DImode))
	&& TARGET_SSE_MATH)))
                        return 180; /* fix_trunchi_i387_fisttp */
                      break;

                    case SImode:
                      if (memory_operand (operands[0], SImode)
                          && GET_MODE (x4) == SImode
                          && 
#line 4860 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(X87_FLOAT_MODE_P (GET_MODE (operands[1]))
   && TARGET_FISTTP
   && !((SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
	 && (TARGET_64BIT || SImode != DImode))
	&& TARGET_SSE_MATH)))
                        return 181; /* fix_truncsi_i387_fisttp */
                      break;

                    case DImode:
                      if (memory_operand (operands[0], DImode)
                          && GET_MODE (x4) == DImode
                          && 
#line 4860 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(X87_FLOAT_MODE_P (GET_MODE (operands[1]))
   && TARGET_FISTTP
   && !((SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
	 && (TARGET_64BIT || DImode != DImode))
	&& TARGET_SSE_MATH)))
                        return 182; /* fix_truncdi_i387_fisttp */
                      break;

                    default:
                      break;
                    }
                }
              if (GET_CODE (x7) != REG
                  || REGNO (x7) != 17
                  || GET_MODE (x7) != CCmode)
                return -1;
              switch (pattern234 (x4))
                {
                case 0:
                  if (!
#line 4911 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(X87_FLOAT_MODE_P (GET_MODE (operands[1]))
   && !TARGET_FISTTP
   && !(SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
	 && (TARGET_64BIT || HImode != DImode))
   && can_create_pseudo_p ()))
                    return -1;
                  return 186; /* *fix_trunchi_i387_1 */

                case 1:
                  if (!
#line 4911 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(X87_FLOAT_MODE_P (GET_MODE (operands[1]))
   && !TARGET_FISTTP
   && !(SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
	 && (TARGET_64BIT || SImode != DImode))
   && can_create_pseudo_p ()))
                    return -1;
                  return 187; /* *fix_truncsi_i387_1 */

                case 2:
                  if (!
#line 4911 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(X87_FLOAT_MODE_P (GET_MODE (operands[1]))
   && !TARGET_FISTTP
   && !(SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
	 && (TARGET_64BIT || DImode != DImode))
   && can_create_pseudo_p ()))
                    return -1;
                  return 188; /* *fix_truncdi_i387_1 */

                default:
                  return -1;
                }

            case SUBREG:
            case MEM:
              if (pnum_clobbers == NULL)
                return -1;
              operands[2] = x7;
              switch (pattern542 (x4))
                {
                case 0:
                  if (!
#line 4874 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(X87_FLOAT_MODE_P (GET_MODE (operands[1]))
   && TARGET_FISTTP
   && !((SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
	&& (TARGET_64BIT || HImode != DImode))
	&& TARGET_SSE_MATH)))
                    return -1;
                  *pnum_clobbers = 1;
                  return 183; /* fix_trunchi_i387_fisttp_with_temp */

                case 1:
                  if (!
#line 4874 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(X87_FLOAT_MODE_P (GET_MODE (operands[1]))
   && TARGET_FISTTP
   && !((SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
	&& (TARGET_64BIT || SImode != DImode))
	&& TARGET_SSE_MATH)))
                    return -1;
                  *pnum_clobbers = 1;
                  return 184; /* fix_truncsi_i387_fisttp_with_temp */

                case 2:
                  if (!
#line 4874 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(X87_FLOAT_MODE_P (GET_MODE (operands[1]))
   && TARGET_FISTTP
   && !((SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
	&& (TARGET_64BIT || DImode != DImode))
	&& TARGET_SSE_MATH)))
                    return -1;
                  *pnum_clobbers = 1;
                  return 185; /* fix_truncdi_i387_fisttp_with_temp */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case UNSPEC:
          if (XVECLEN (x6, 0) != 1
              || XINT (x6, 1) != 170)
            return -1;
          switch (pattern472 (x1))
            {
            case 0:
              if (!
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 2214; /* fix_truncv16sfv16si2_round */

            case 1:
              if (!
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 2333; /* fix_truncv8dfv8si2_round */

            case 2:
              if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 5164 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && (V8DFmode == V16SFmode
									      || V8DFmode == V8DFmode
									      || V8DFmode == V8DImode
									      || V8DFmode == V16SImode))))
                return -1;
              return 2347; /* fix_truncv8dfv8di2_round */

            case 3:
              if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 5196 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && (V8SFmode == V8SFmode))))
                return -1;
              return 2379; /* fix_truncv8sfv8di2_round */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case VEC_SELECT:
      switch (pattern224 (x1))
        {
        case 0:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4351 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE)))
            return -1;
          return 2147; /* sse_cvttss2si_round */

        case 1:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4847 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return -1;
          return 2254; /* sse2_cvttsd2si_round */

        case 2:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4367 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && TARGET_64BIT)))
            return -1;
          return 2149; /* sse_cvttss2siq_round */

        case 3:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4864 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && TARGET_64BIT)))
            return -1;
          return 2256; /* sse2_cvttsd2siq_round */

        default:
          return -1;
        }

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != MEM
      || GET_MODE (x4) != QImode)
    return -1;
  x5 = XEXP (x2, 0);
  operands[0] = x5;
  x6 = XVECEXP (x1, 0, 1);
  switch (GET_CODE (x6))
    {
    case UNSPEC:
      switch (XVECLEN (x6, 0))
        {
        case 1:
          x7 = XEXP (x4, 0);
          operands[1] = x7;
          x8 = XEXP (x3, 1);
          operands[2] = x8;
          switch (XINT (x6, 1))
            {
            case 38:
              x9 = XVECEXP (x6, 0, 0);
              if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              switch (GET_MODE (operands[1]))
                {
                case SImode:
                  if (!memory_operand (operands[1], SImode)
                      || !(
#line 12234 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_X32) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)))
                    return -1;
                  return 691; /* *sibcall_value_memory */

                case DImode:
                  if (!memory_operand (operands[1], DImode)
                      || !(
#line 12234 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_X32) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)))
                    return -1;
                  return 692; /* *sibcall_value_memory */

                default:
                  return -1;
                }

            case 21:
              x9 = XVECEXP (x6, 0, 0);
              if (GET_CODE (x9) != REG
                  || REGNO (x9) != 7
                  || !constant_call_address_operand (operands[1], VOIDmode))
                return -1;
              switch (GET_MODE (operands[0]))
                {
                case SImode:
                  if (pattern704 (x1, SImode) != 0
                      || !(
#line 13879 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 813; /* *tls_local_dynamic_base_64_si */

                case DImode:
                  if (pattern704 (x1, DImode) != 0
                      || !(
#line 13879 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 814; /* *tls_local_dynamic_base_64_di */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case 2:
          if (XINT (x6, 1) != 20)
            return -1;
          x10 = XVECEXP (x6, 0, 1);
          if (GET_CODE (x10) != REG
              || REGNO (x10) != 7)
            return -1;
          x7 = XEXP (x4, 0);
          operands[2] = x7;
          if (!constant_call_address_operand (operands[2], VOIDmode))
            return -1;
          x8 = XEXP (x3, 1);
          operands[3] = x8;
          x9 = XVECEXP (x6, 0, 0);
          operands[1] = x9;
          if (!tls_symbolic_operand (operands[1], VOIDmode))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case SImode:
              if (pattern760 (x1, SImode) != 0
                  || !(
#line 13782 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              return 810; /* *tls_global_dynamic_64_si */

            case DImode:
              if (pattern760 (x1, DImode) != 0
                  || !(
#line 13782 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              return 811; /* *tls_global_dynamic_64_di */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case SET:
      x11 = XEXP (x6, 1);
      if (pattern349 (x11) != 0)
        return -1;
      x12 = XEXP (x6, 0);
      if (GET_CODE (x12) != REG
          || REGNO (x12) != 7
          || GET_MODE (x12) != SImode)
        return -1;
      x7 = XEXP (x4, 0);
      operands[1] = x7;
      x8 = XEXP (x3, 1);
      operands[2] = x8;
      x13 = XEXP (x11, 1);
      operands[3] = x13;
      if (!immediate_operand (operands[3], SImode))
        return -1;
      if (call_insn_operand (operands[1], SImode)
          && 
#line 12289 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && !SIBLING_CALL_P (insn)))
        return 693; /* *call_value_pop */
      if (!sibcall_insn_operand (operands[1], SImode)
          || !
#line 12300 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && SIBLING_CALL_P (insn)))
        return -1;
      return 694; /* *sibcall_value_pop */

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (pattern95 (x2, CCmode, 17) != 0)
    return -1;
  x3 = XVECEXP (x1, 0, 0);
  x4 = XEXP (x3, 0);
  operands[0] = x4;
  x5 = XEXP (x3, 1);
  x6 = XEXP (x5, 0);
  operands[1] = x6;
  x7 = XEXP (x5, 1);
  switch (GET_CODE (x7))
    {
    case SUBREG:
      switch (pattern515 (x5))
        {
        case 0:
          if (
#line 10343 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
   && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
      == GET_MODE_BITSIZE (SImode)-1))
            return 548; /* *ashrsi3_mask */
          break;

        case 1:
          if ((
#line 10343 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
   && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
      == GET_MODE_BITSIZE (DImode)-1) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return 550; /* *ashrdi3_mask */
          break;

        default:
          break;
        }
      break;

    case CONST_INT:
      operands[2] = x7;
      if (const_int_operand (operands[2], QImode)
          && nonimmediate_operand (operands[0], SImode)
          && GET_MODE (x5) == SImode
          && nonimmediate_operand (operands[1], SImode)
          && 
#line 10435 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(INTVAL (operands[2]) == 31
   && (TARGET_USE_CLTD || optimize_function_for_size_p (cfun))
   && ix86_binary_operator_ok (ASHIFTRT, SImode, operands)))
        return 558; /* ashrsi3_cvt */
      break;

    default:
      break;
    }
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
    case MEM:
      operands[0] = x4;
      operands[1] = x6;
      operands[2] = x7;
      switch (GET_MODE (operands[0]))
        {
        case DImode:
          if (GET_MODE (x5) != DImode)
            return -1;
          if (register_operand (operands[0], DImode)
              && register_operand (operands[1], DImode)
              && nonmemory_operand (operands[2], QImode)
              && 
#line 1021 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT))
            return 552; /* *ashrdi3_doubleword */
          if (!nonimmediate_operand (operands[0], DImode)
              || !nonimmediate_operand (operands[1], DImode))
            return -1;
          if (const_int_operand (operands[2], QImode)
              && 
#line 10418 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && INTVAL (operands[2]) == 63
   && (TARGET_USE_CLTD || optimize_function_for_size_p (cfun))
   && ix86_binary_operator_ok (ASHIFTRT, DImode, operands)))
            return 557; /* ashrdi3_cvt */
          if (!nonmemory_operand (operands[2], QImode)
              || !(
#line 10509 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ASHIFTRT, DImode, operands)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          return 567; /* *ashrdi3_1 */

        case TImode:
          if (pattern115 (x5) != 0
              || !
#line 1022 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
            return -1;
          return 554; /* *ashrti3_doubleword */

        case SImode:
          if (pattern594 (x5, SImode) != 0
              || !
#line 10509 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ASHIFTRT, SImode, operands)))
            return -1;
          return 565; /* *ashrsi3_1 */

        case QImode:
          if (pattern594 (x5, QImode) != 0
              || !
#line 10606 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ASHIFTRT, QImode, operands)))
            return -1;
          return 573; /* *ashrqi3_1 */

        case HImode:
          if (pattern594 (x5, HImode) != 0
              || !
#line 10606 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ASHIFTRT, HImode, operands)))
            return -1;
          return 575; /* *ashrhi3_1 */

        default:
          return -1;
        }

    case STRICT_LOW_PART:
      x8 = XEXP (x4, 0);
      operands[0] = x8;
      if (!nonimmediate_operand (operands[0], QImode)
          || GET_MODE (x5) != QImode)
        return -1;
      operands[1] = x7;
      if (!nonmemory_operand (operands[1], QImode)
          || !rtx_equal_p (x6, operands[0])
          || !
#line 10629 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_REG_STALL
    || (operands[1] == const1_rtx
	&& TARGET_SHIFT1))))
        return -1;
      return 577; /* *ashrqi3_1_slp */

    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, 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);
  if (GET_CODE (x4) != UNSPEC
      || XVECLEN (x4, 0) != 4
      || XINT (x4, 1) != 146)
    return -1;
  x5 = XVECEXP (x4, 0, 1);
  if (GET_CODE (x5) != MEM)
    return -1;
  x6 = XEXP (x5, 0);
  if (GET_CODE (x6) != UNSPEC
      || XVECLEN (x6, 0) != 3
      || XINT (x6, 1) != 147)
    return -1;
  x7 = XVECEXP (x4, 0, 2);
  if (GET_CODE (x7) != MEM
      || GET_MODE (x7) != BLKmode)
    return -1;
  x8 = XEXP (x7, 0);
  if (GET_CODE (x8) != SCRATCH)
    return -1;
  x9 = XEXP (x3, 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;
  x14 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x14) != CLOBBER)
    return -1;
  x15 = XEXP (x2, 0);
  operands[0] = x15;
  x16 = XVECEXP (x6, 0, 1);
  if (!register_operand (x16, V4DImode))
    return -1;
  x17 = XVECEXP (x6, 0, 2);
  if (!const1248_operand (x17, SImode))
    return -1;
  x18 = XEXP (x14, 0);
  operands[1] = x18;
  x19 = XVECEXP (x4, 0, 0);
  switch (GET_CODE (x19))
    {
    case REG:
    case SUBREG:
      operands[2] = x19;
      operands[7] = x5;
      x20 = XVECEXP (x6, 0, 0);
      operands[3] = x20;
      operands[4] = x16;
      operands[6] = x17;
      x21 = XVECEXP (x4, 0, 3);
      operands[5] = x21;
      switch (GET_MODE (operands[0]))
        {
        case V4SImode:
          switch (pattern940 (x3, V8SImode, V4SImode, SImode))
            {
            case 0:
              if (!(
#line 18811 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              return 4653; /* *avx2_gatherdiv8si_3 */

            case 1:
              if (!(
#line 18811 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              return 4654; /* *avx2_gatherdiv8si_3 */

            default:
              return -1;
            }

        case V4SFmode:
          switch (pattern940 (x3, V8SFmode, V4SFmode, SFmode))
            {
            case 0:
              if (!(
#line 18811 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              return 4655; /* *avx2_gatherdiv8sf_3 */

            case 1:
              if (!(
#line 18811 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              return 4656; /* *avx2_gatherdiv8sf_3 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case PC:
      operands[6] = x5;
      x20 = XVECEXP (x6, 0, 0);
      operands[2] = x20;
      operands[3] = x16;
      operands[5] = x17;
      x21 = XVECEXP (x4, 0, 3);
      operands[4] = x21;
      switch (GET_MODE (operands[0]))
        {
        case V4SImode:
          switch (pattern935 (x3, V8SImode, V4SImode, SImode))
            {
            case 0:
              if (!(
#line 18834 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              return 4657; /* *avx2_gatherdiv8si_4 */

            case 1:
              if (!(
#line 18834 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              return 4658; /* *avx2_gatherdiv8si_4 */

            default:
              return -1;
            }

        case V4SFmode:
          switch (pattern935 (x3, V8SFmode, V4SFmode, SFmode))
            {
            case 0:
              if (!(
#line 18834 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              return 4659; /* *avx2_gatherdiv8sf_4 */

            case 1:
              if (!(
#line 18834 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              return 4660; /* *avx2_gatherdiv8sf_4 */

            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;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (pattern95 (x2, CCmode, 17) != 0)
    return -1;
  x3 = XVECEXP (x1, 0, 0);
  x4 = XEXP (x3, 1);
  x5 = XEXP (x4, 0);
  switch (GET_CODE (x5))
    {
    case REG:
    case SUBREG:
    case MEM:
      switch (pattern398 (x3))
        {
        case 0:
          if (!
#line 8722 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (XOR, SImode, operands)))
            return -1;
          return 411; /* *xorsi_1 */

        case 1:
          if (x86_64_general_operand (operands[2], DImode)
              && (
#line 8722 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (XOR, DImode, operands)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return 413; /* *xordi_1 */
          if (!x86_64_szext_general_operand (operands[2], DImode)
              || !
#line 8736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_STV && TARGET_SSE2
   && ix86_binary_operator_ok (XOR, DImode, operands)))
            return -1;
          return 415; /* *xordi3_doubleword */

        case 2:
          if (!
#line 8795 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (XOR, HImode, operands)))
            return -1;
          return 418; /* *xorhi_1 */

        case 3:
          if (!
#line 8809 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (XOR, QImode, operands)))
            return -1;
          return 420; /* *xorqi_1 */

        case 4:
          if (!
#line 8846 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
            return -1;
          return 426; /* *xorqi_1_slp */

        default:
          return -1;
        }

    case ZERO_EXTEND:
      if (pattern400 (x3) != 0
          || !
#line 8836 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ix86_binary_operator_ok (XOR, SImode, operands)))
        return -1;
      return 424; /* *xorsi_1_zext_imm */

    case ZERO_EXTRACT:
      switch (pattern403 (x3))
        {
        case 0:
          if (!
#line 9046 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
            return -1;
          return 459; /* *xorqi_ext_0 */

        case 1:
          if (!
#line 9065 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
            return -1;
          return 461; /* *xorqi_ext_1 */

        case 2:
          if (!
#line 9084 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
            return -1;
          return 463; /* *xorqi_ext_2 */

        default:
          return -1;
        }

    case PLUS:
      x6 = XEXP (x5, 1);
      if (GET_CODE (x6) != CONST_INT)
        return -1;
      x7 = XEXP (x3, 0);
      operands[0] = x7;
      x8 = XEXP (x5, 0);
      operands[1] = x8;
      x9 = XEXP (x4, 1);
      if (!rtx_equal_p (x9, operands[1]))
        return -1;
      switch (XWINT (x6, 0))
        {
        case -1LL:
          switch (GET_MODE (operands[0]))
            {
            case SImode:
              if (pattern585 (x4, SImode) != 0
                  || !
#line 13198 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI))
                return -1;
              return 756; /* *bmi_blsmsk_si */

            case DImode:
              if (pattern585 (x4, DImode) != 0
                  || !(
#line 13198 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 757; /* *bmi_blsmsk_di */

            default:
              return -1;
            }

        case 1LL:
          switch (GET_MODE (operands[0]))
            {
            case SImode:
              if (pattern585 (x4, SImode) != 0
                  || !
#line 13370 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM))
                return -1;
              return 778; /* *tbm_blcmsk_si */

            case DImode:
              if (pattern585 (x4, DImode) != 0
                  || !(
#line 13370 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 779; /* *tbm_blcmsk_di */

            default:
              return -1;
            }

        default:
          return -1;
        }

    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;
  int res ATTRIBUTE_UNUSED;
  if (pattern102 (x1) != 0)
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case V16SFmode:
      if (!register_operand (operands[0], V16SFmode))
        return -1;
      x2 = XVECEXP (x1, 0, 0);
      x3 = XEXP (x2, 1);
      if (GET_MODE (x3) != V16SFmode
          || !nonimmediate_operand (operands[1], V16SImode)
          || !
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
        return -1;
      return 2166; /* ufloatv16siv16sf2_round */

    case V8SFmode:
      if (!register_operand (operands[0], V8SFmode))
        return -1;
      x2 = XVECEXP (x1, 0, 0);
      x3 = XEXP (x2, 1);
      if (GET_MODE (x3) != V8SFmode)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case V8SImode:
          if (!nonimmediate_operand (operands[1], V8SImode)
              || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4422 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 273 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 2170; /* ufloatv8siv8sf2_round */

        case V8DImode:
          if (!nonimmediate_operand (operands[1], V8DImode)
              || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4917 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && (V8SFmode == V8SFmode))))
            return -1;
          return 2290; /* ufloatv8div8sf2_round */

        default:
          return -1;
        }

    case V4SFmode:
      if (!register_operand (operands[0], V4SFmode))
        return -1;
      x2 = XVECEXP (x1, 0, 0);
      x3 = XEXP (x2, 1);
      if (GET_MODE (x3) != V4SFmode
          || !nonimmediate_operand (operands[1], V4SImode)
          || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4422 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 273 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 2174; /* ufloatv4siv4sf2_round */

    case V8DFmode:
      if (!register_operand (operands[0], V8DFmode))
        return -1;
      x2 = XVECEXP (x1, 0, 0);
      x3 = XEXP (x2, 1);
      if (GET_MODE (x3) != V8DFmode
          || !nonimmediate_operand (operands[1], V8DImode)
          || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4893 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ)))
        return -1;
      return 2266; /* ufloatv8div8df2_round */

    case V4DFmode:
      if (!register_operand (operands[0], V4DFmode))
        return -1;
      x2 = XVECEXP (x1, 0, 0);
      x3 = XEXP (x2, 1);
      if (GET_MODE (x3) != V4DFmode
          || !nonimmediate_operand (operands[1], V4DImode)
          || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4893 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 270 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 2274; /* ufloatv4div4df2_round */

    case V2DFmode:
      if (!register_operand (operands[0], V2DFmode))
        return -1;
      x2 = XVECEXP (x1, 0, 0);
      x3 = XEXP (x2, 1);
      if (GET_MODE (x3) != V2DFmode
          || !nonimmediate_operand (operands[1], V2DImode)
          || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4893 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 270 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
        return -1;
      return 2282; /* ufloatv2div2df2_round */

    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;
  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;
  if (GET_CODE (x4) == NEG)
    {
      res = recog_206 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  x6 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x6) != USE)
    return -1;
  operands[3] = x4;
  x7 = XEXP (x6, 0);
  operands[2] = x7;
  switch (GET_MODE (operands[0]))
    {
    case SFmode:
      if (pattern473 (pnum_clobbers, SFmode) != 0)
        return -1;
      if (nonimmediate_operand (operands[2], V4SFmode)
          && 
#line 9310 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH))
        {
          *pnum_clobbers = 1;
          return 481; /* *absnegsf2_mixed */
        }
      if (!
#line 9324 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)))
        return -1;
      *pnum_clobbers = 1;
      return 483; /* *absnegsf2_i387 */

    case DFmode:
      if (pattern473 (pnum_clobbers, DFmode) != 0)
        return -1;
      if (nonimmediate_operand (operands[2], V2DFmode)
          && 
#line 9310 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH))
        {
          *pnum_clobbers = 1;
          return 482; /* *absnegdf2_mixed */
        }
      if (!
#line 9324 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)))
        return -1;
      *pnum_clobbers = 1;
      return 484; /* *absnegdf2_i387 */

    case XFmode:
      if (pattern473 (pnum_clobbers, XFmode) != 0
          || !
#line 9324 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !(SSE_FLOAT_MODE_P (XFmode) && TARGET_SSE_MATH)))
        return -1;
      *pnum_clobbers = 1;
      return 485; /* *absnegxf2_i387 */

    case TFmode:
      if (pnum_clobbers == NULL
          || pattern511 () != 0
          || !
#line 9339 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_SSE))
        return -1;
      *pnum_clobbers = 1;
      return 486; /* *absnegtf2_sse */

    case V16SFmode:
      if (pattern474 (V16SFmode) != 0
          || !(
#line 1624 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
        return -1;
      return 1385; /* *absnegv16sf2 */

    case V8SFmode:
      if (pattern474 (V8SFmode) != 0
          || !(
#line 1624 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
        return -1;
      return 1386; /* *absnegv8sf2 */

    case V4SFmode:
      if (pattern474 (V4SFmode) != 0
          || !
#line 1624 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
        return -1;
      return 1387; /* *absnegv4sf2 */

    case V8DFmode:
      if (pattern474 (V8DFmode) != 0
          || !(
#line 1624 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)))
        return -1;
      return 1388; /* *absnegv8df2 */

    case V4DFmode:
      if (pattern474 (V4DFmode) != 0
          || !(
#line 1624 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
        return -1;
      return 1389; /* *absnegv4df2 */

    case V2DFmode:
      if (pattern474 (V2DFmode) != 0
          || !(
#line 1624 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
        return -1;
      return 1390; /* *absnegv2df2 */

    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, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 0);
  switch (GET_CODE (x3))
    {
    case REG:
    case SUBREG:
    case MEM:
      res = recog_204 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case STRICT_LOW_PART:
      x4 = XVECEXP (x1, 0, 1);
      if (pattern101 (x4) == 0)
        {
          x5 = XEXP (x3, 0);
          operands[0] = x5;
          x6 = XEXP (x2, 1);
          operands[1] = x6;
          switch (GET_MODE (operands[0]))
            {
            case QImode:
              if (register_operand (operands[0], QImode)
                  && const0_operand (operands[1], QImode)
                  && 
#line 2743 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
                return 106; /* *movstrictqi_xor */
              break;

            case HImode:
              if (register_operand (operands[0], HImode)
                  && const0_operand (operands[1], HImode)
                  && 
#line 2743 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
                return 107; /* *movstricthi_xor */
              break;

            default:
              break;
            }
        }
      break;

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

    default:
      break;
    }
  x4 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x4) != CLOBBER)
    return -1;
  x6 = XEXP (x2, 1);
  switch (GET_CODE (x6))
    {
    case CONST_INT:
      if (GET_CODE (x3) != ZERO_EXTRACT
          || GET_MODE (x3) != DImode)
        return -1;
      x7 = XEXP (x3, 1);
      if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x8 = XEXP (x4, 0);
      if (GET_CODE (x8) != REG
          || REGNO (x8) != 17
          || GET_MODE (x8) != CCmode)
        return -1;
      x5 = XEXP (x3, 0);
      operands[0] = x5;
      if (!register_operand (operands[0], DImode))
        return -1;
      x9 = XEXP (x3, 2);
      operands[1] = x9;
      if (!const_0_to_63_operand (operands[1], VOIDmode))
        return -1;
      switch (XWINT (x6, 0))
        {
        case 1LL:
          if (!
#line 11081 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && (TARGET_USE_BT || reload_completed)))
            return -1;
          return 619; /* *btsq */

        case 0LL:
          if (!
#line 11094 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && (TARGET_USE_BT || reload_completed)))
            return -1;
          return 620; /* *btrq */

        default:
          return -1;
        }

    case SUBREG:
      if (XINT (x6, 1) != 0
          || GET_MODE (x6) != V4SImode)
        return -1;
      operands[0] = x3;
      if (!register_operand (operands[0], V4SImode))
        return -1;
      x10 = XEXP (x6, 0);
      operands[1] = x10;
      if (!nonimmediate_operand (operands[1], DImode))
        return -1;
      x8 = XEXP (x4, 0);
      operands[2] = x8;
      if (!scratch_operand (operands[2], V4SImode)
          || !
#line 1098 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(!TARGET_64BIT && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_TO_VEC))
        return -1;
      return 1299; /* movdi_to_sse */

    default:
      return -1;
    }
}

static int
recog_238 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15;
  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:
      operands[0] = x4;
      if (bt_comparison_operator (operands[0], VOIDmode))
        {
          switch (pattern256 (x1))
            {
            case 0:
              if (
#line 11231 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_USE_BT || optimize_function_for_size_p (cfun))
   && (CONST_INT_P (operands[2])
       ? (INTVAL (operands[2]) < GET_MODE_BITSIZE (SImode)
	  && INTVAL (operands[2])
	       >= (optimize_function_for_size_p (cfun) ? 8 : 32))
       : register_operand (operands[2], SImode))
   && can_create_pseudo_p ()))
                return 624; /* *jcc_btsi */
              break;

            case 1:
              if ((
#line 11231 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_USE_BT || optimize_function_for_size_p (cfun))
   && (CONST_INT_P (operands[2])
       ? (INTVAL (operands[2]) < GET_MODE_BITSIZE (DImode)
	  && INTVAL (operands[2])
	       >= (optimize_function_for_size_p (cfun) ? 8 : 32))
       : register_operand (operands[2], SImode))
   && can_create_pseudo_p ()) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return 625; /* *jcc_btdi */
              break;

            case 2:
              if (
#line 11268 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_USE_BT || optimize_function_for_size_p (cfun))
   && can_create_pseudo_p ()))
                return 626; /* *jcc_btsi_1 */
              break;

            case 3:
              if ((
#line 11268 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_USE_BT || optimize_function_for_size_p (cfun))
   && can_create_pseudo_p ()) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return 627; /* *jcc_btdi_1 */
              break;

            case 4:
              if (
#line 11302 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_USE_BT || optimize_function_for_size_p (cfun))
   && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
      == GET_MODE_BITSIZE (SImode)-1
   && can_create_pseudo_p ()))
                return 628; /* *jcc_btsi_mask */
              break;

            case 5:
              if ((
#line 11302 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_USE_BT || optimize_function_for_size_p (cfun))
   && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
      == GET_MODE_BITSIZE (DImode)-1
   && can_create_pseudo_p ()) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return 629; /* *jcc_btdi_mask */
              break;

            default:
              break;
            }
        }
      if (GET_CODE (x4) != NE)
        return -1;
      x5 = XEXP (x4, 0);
      if (GET_CODE (x5) != UNSPEC
          || XVECLEN (x5, 0) != 1
          || XINT (x5, 1) != 36)
        return -1;
      x6 = XVECEXP (x5, 0, 0);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x7 = XEXP (x4, 1);
      if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x8 = XEXP (x3, 1);
      if (GET_CODE (x8) != LABEL_REF)
        return -1;
      x9 = XEXP (x3, 2);
      if (GET_CODE (x9) != PC)
        return -1;
      x10 = XEXP (x2, 0);
      if (GET_CODE (x10) != PC)
        return -1;
      x11 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x11) != SET)
        return -1;
      x12 = XEXP (x11, 1);
      if (pattern154 (x12, 41, 1, SImode, UNSPEC_VOLATILE) != 0)
        return -1;
      x13 = XEXP (x8, 0);
      operands[1] = x13;
      x14 = XEXP (x11, 0);
      operands[0] = x14;
      if (!register_operand (operands[0], SImode))
        return -1;
      x15 = XVECEXP (x12, 0, 0);
      if (!rtx_equal_p (x15, operands[0])
          || !
#line 19377 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_RTM))
        return -1;
      return 1082; /* xbegin_1 */

    case GE:
    case GT:
    case LE:
    case LT:
    case GTU:
    case LTU:
    case UNEQ:
    case UNGE:
    case UNGT:
    case UNLE:
    case UNLT:
    case LTGT:
      operands[1] = x4;
      if (!ix86_carry_flag_operator (operands[1], VOIDmode))
        return -1;
      switch (pattern246 (x1, -1))
        {
        case 0:
          return 977; /* *x86_movsicc_0_m1 */

        case 1:
          if (!
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
            return -1;
          return 978; /* *x86_movdicc_0_m1 */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_239 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  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 REG:
    case SUBREG:
    case MEM:
      x6 = XVECEXP (x1, 0, 1);
      switch (GET_CODE (x6))
        {
        case USE:
          if (pnum_clobbers == NULL
              || !register_operand (operands[0], SImode)
              || GET_MODE (x4) != SImode)
            return -1;
          operands[3] = x5;
          x7 = XEXP (x6, 0);
          operands[4] = x7;
          switch (GET_MODE (operands[3]))
            {
            case SFmode:
              if (!nonimmediate_operand (operands[3], SFmode)
                  || !nonimmediate_operand (operands[4], V4SFmode)
                  || !
#line 4777 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_SSE2 && TARGET_SSE_MATH
   && optimize_function_for_speed_p (cfun)))
                return -1;
              *pnum_clobbers = 2;
              return 171; /* *fixuns_truncsf_1 */

            case DFmode:
              if (!nonimmediate_operand (operands[3], DFmode)
                  || !nonimmediate_operand (operands[4], V2DFmode)
                  || !
#line 4777 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_SSE2 && TARGET_SSE_MATH
   && optimize_function_for_speed_p (cfun)))
                return -1;
              *pnum_clobbers = 2;
              return 172; /* *fixuns_truncdf_1 */

            default:
              return -1;
            }

        case UNSPEC:
          if (XVECLEN (x6, 0) != 1
              || XINT (x6, 1) != 170)
            return -1;
          operands[1] = x5;
          switch (pattern472 (x1))
            {
            case 0:
              if (!
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 2218; /* ufix_truncv16sfv16si2_round */

            case 1:
              if (!
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
                return -1;
              return 2337; /* ufix_truncv8dfv8si2_round */

            case 2:
              if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 5164 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && (V8DFmode == V16SFmode
									      || V8DFmode == V8DFmode
									      || V8DFmode == V8DImode
									      || V8DFmode == V16SImode))))
                return -1;
              return 2351; /* ufix_truncv8dfv8di2_round */

            case 3:
              if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 5196 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && (V8SFmode == V8SFmode))))
                return -1;
              return 2383; /* ufix_truncv8sfv8di2_round */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case VEC_SELECT:
      switch (pattern224 (x1))
        {
        case 0:
          if (!
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 2236; /* avx512f_vcvttss2usi_round */

        case 1:
          if (!
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
            return -1;
          return 2244; /* avx512f_vcvttsd2usi_round */

        case 2:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4724 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && TARGET_64BIT)))
            return -1;
          return 2238; /* avx512f_vcvttss2usiq_round */

        case 3:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4774 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && TARGET_64BIT)))
            return -1;
          return 2246; /* avx512f_vcvttsd2usiq_round */

        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;
  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 = XVECEXP (x1, 0, 1);
  switch (GET_CODE (x6))
    {
    case CLOBBER:
      x7 = XEXP (x6, 0);
      operands[2] = x7;
      switch (GET_MODE (operands[0]))
        {
        case SFmode:
          if (!nonimmediate_operand (operands[0], SFmode)
              || GET_MODE (x4) != SFmode
              || !memory_operand (operands[2], SFmode))
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case DFmode:
              if (!nonimmediate_operand (operands[1], DFmode))
                return -1;
              if (
#line 4509 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_MIX_SSE_I387))
                return 162; /* *truncdfsf_mixed */
              if (!
#line 4533 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
                return -1;
              return 163; /* *truncdfsf_i387 */

            case XFmode:
              if (!register_operand (operands[1], XFmode)
                  || !
#line 4595 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
                return -1;
              return 165; /* *truncxfsf2_mixed */

            default:
              return -1;
            }

        case DFmode:
          if (!nonimmediate_operand (operands[0], DFmode)
              || GET_MODE (x4) != DFmode
              || !register_operand (operands[1], XFmode)
              || !memory_operand (operands[2], DFmode)
              || !
#line 4609 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
            return -1;
          return 166; /* *truncxfdf2_mixed */

        default:
          return -1;
        }

    case UNSPEC:
      if (XVECLEN (x6, 0) != 1
          || XINT (x6, 1) != 170
          || !register_operand (operands[0], V8SFmode)
          || GET_MODE (x4) != V8SFmode
          || !register_operand (operands[1], V8DFmode))
        return -1;
      x8 = XVECEXP (x6, 0, 0);
      operands[2] = x8;
      if (!const_4_or_8_to_11_operand (operands[2], SImode)
          || !
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F))
        return -1;
      return 2405; /* *avx512f_cvtpd2ps512_round */

    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;
  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 = XVECEXP (x1, 0, 1);
  switch (GET_CODE (x6))
    {
    case CLOBBER:
      x7 = XEXP (x6, 0);
      if (GET_CODE (x7) != REG
          || REGNO (x7) != 17
          || GET_MODE (x7) != CCmode)
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case SImode:
          if (!register_operand (operands[0], SImode)
              || GET_MODE (x4) != SImode
              || !nonimmediate_operand (operands[1], SImode))
            return -1;
          if (
#line 13492 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_POPCNT
   && TARGET_AVOID_FALSE_DEP_FOR_BMI && optimize_function_for_speed_p (cfun)))
            return 793; /* *popcountsi2_falsedep_1 */
          if (!
#line 13530 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_POPCNT))
            return -1;
          return 798; /* *popcountsi2 */

        case DImode:
          if (!register_operand (operands[0], DImode)
              || GET_MODE (x4) != DImode
              || !nonimmediate_operand (operands[1], DImode))
            return -1;
          if ((
#line 13492 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_POPCNT
   && TARGET_AVOID_FALSE_DEP_FOR_BMI && optimize_function_for_speed_p (cfun)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return 794; /* *popcountdi2_falsedep_1 */
          if (!(
#line 13530 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_POPCNT) && 
#line 991 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          return 799; /* *popcountdi2 */

        case HImode:
          if (!register_operand (operands[0], HImode)
              || GET_MODE (x4) != HImode
              || !nonimmediate_operand (operands[1], HImode)
              || !
#line 13530 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_POPCNT))
            return -1;
          return 797; /* *popcounthi2 */

        default:
          return -1;
        }

    case UNSPEC:
      switch (pattern99 (x1, pnum_clobbers))
        {
        case 0:
          if (!
#line 13513 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_POPCNT))
            return -1;
          *pnum_clobbers = 1;
          return 795; /* *popcountsi2_falsedep */

        case 1:
          if (!(
#line 13513 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_POPCNT) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          *pnum_clobbers = 1;
          return 796; /* *popcountdi2_falsedep */

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

    case CONST_INT:
    case CONST_WIDE_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_237 (x1, insn, pnum_clobbers);

    case ZERO_EXTEND:
      return recog_224 (x1, insn, pnum_clobbers);

    case FLOAT_TRUNCATE:
      return recog_240 (x1, insn, pnum_clobbers);

    case UNSIGNED_FIX:
      return recog_239 (x1, insn, pnum_clobbers);

    case FIX:
      return recog_230 (x1, insn, pnum_clobbers);

    case PLUS:
      return recog_225 (x1, insn, pnum_clobbers);

    case MINUS:
      return recog_228 (x1, insn, pnum_clobbers);

    case MULT:
      return recog_226 (x1, insn, pnum_clobbers);

    case DIV:
      x4 = XEXP (x2, 0);
      operands[0] = x4;
      x5 = XVECEXP (x1, 0, 1);
      switch (GET_CODE (x5))
        {
        case SET:
          if (pnum_clobbers == NULL)
            return -1;
          x6 = XEXP (x5, 1);
          if (GET_CODE (x6) != MOD)
            return -1;
          x7 = XEXP (x3, 0);
          operands[2] = x7;
          x8 = XEXP (x3, 1);
          operands[3] = x8;
          x9 = XEXP (x5, 0);
          operands[1] = x9;
          x10 = XEXP (x6, 0);
          if (!rtx_equal_p (x10, operands[2]))
            return -1;
          x11 = XEXP (x6, 1);
          if (!rtx_equal_p (x11, operands[3]))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case HImode:
              if (pattern159 (x1, HImode) != 0
                  || !
#line 1017 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_HIMODE_MATH))
                return -1;
              *pnum_clobbers = 1;
              return 349; /* *divmodhi4 */

            case SImode:
              if (pattern159 (x1, SImode) != 0)
                return -1;
              *pnum_clobbers = 1;
              return 350; /* *divmodsi4 */

            case DImode:
              if (pattern159 (x1, DImode) != 0
                  || !
#line 1018 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                return -1;
              *pnum_clobbers = 1;
              return 351; /* *divmoddi4 */

            default:
              return -1;
            }

        case UNSPEC:
          if (XVECLEN (x5, 0) != 1
              || XINT (x5, 1) != 170)
            return -1;
          x7 = XEXP (x3, 0);
          operands[1] = x7;
          x8 = XEXP (x3, 1);
          operands[2] = x8;
          x12 = XVECEXP (x5, 0, 0);
          operands[3] = x12;
          if (!const_4_or_8_to_11_operand (operands[3], SImode))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case V16SFmode:
              if (pattern103 (x3, V16SFmode) != 0
                  || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1768 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1 && (V16SFmode == V16SFmode
							      || V16SFmode == V8DFmode
							      || V16SFmode == V8DImode
							      || V16SFmode == V16SImode)) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
                return -1;
              return 1480; /* avx512f_divv16sf3_round */

            case V8DFmode:
              if (pattern103 (x3, V8DFmode) != 0
                  || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1768 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1 && (V8DFmode == V16SFmode
							      || V8DFmode == V8DFmode
							      || V8DFmode == V8DImode
							      || V8DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
                return -1;
              return 1488; /* avx512f_divv8df3_round */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case IOR:
      return recog_222 (x1, insn, pnum_clobbers);

    case UDIV:
      if (pnum_clobbers == NULL)
        return -1;
      switch (pattern108 (x1))
        {
        case 0:
          switch (GET_MODE (operands[0]))
            {
            case HImode:
              if (pattern159 (x1, HImode) != 0
                  || !
#line 1017 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_HIMODE_MATH))
                return -1;
              *pnum_clobbers = 1;
              return 358; /* *udivmodhi4 */

            case SImode:
              if (pattern159 (x1, SImode) != 0)
                return -1;
              *pnum_clobbers = 1;
              return 359; /* *udivmodsi4 */

            case DImode:
              if (pattern159 (x1, DImode) != 0
                  || !
#line 1018 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                return -1;
              *pnum_clobbers = 1;
              return 360; /* *udivmoddi4 */

            default:
              return -1;
            }

        case 1:
          switch (GET_MODE (operands[0]))
            {
            case SImode:
              if (pattern678 (x1, SImode) != 0
                  || !
#line 7699 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(IN_RANGE (INTVAL (operands[3]), 2, HOST_WIDE_INT_UC (0x80000000))
   && (UINTVAL (operands[3]) & (UINTVAL (operands[3]) - 1)) == 0))
                return -1;
              *pnum_clobbers = 1;
              return 361; /* *udivmodsi4_pow2 */

            case DImode:
              if (pattern678 (x1, DImode) != 0
                  || !(
#line 7699 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(IN_RANGE (INTVAL (operands[3]), 2, HOST_WIDE_INT_UC (0x80000000))
   && (UINTVAL (operands[3]) & (UINTVAL (operands[3]) - 1)) == 0) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              *pnum_clobbers = 1;
              return 362; /* *udivmoddi4_pow2 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case AND:
      return recog_220 (x1, insn, pnum_clobbers);

    case XOR:
      return recog_234 (x1, insn, pnum_clobbers);

    case NOT:
      x5 = XVECEXP (x1, 0, 1);
      if (pattern95 (x5, CCmode, 17) != 0)
        return -1;
      x7 = XEXP (x3, 0);
      switch (GET_CODE (x7))
        {
        case XOR:
          x4 = XEXP (x2, 0);
          operands[0] = x4;
          x13 = XEXP (x7, 0);
          operands[1] = x13;
          x14 = XEXP (x7, 1);
          operands[2] = x14;
          switch (GET_MODE (operands[0]))
            {
            case QImode:
              if (pattern590 (x3, QImode) != 0
                  || !
#line 8873 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F))
                return -1;
              return 435; /* kxnorqi */

            case HImode:
              if (pattern590 (x3, HImode) != 0
                  || !
#line 8873 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F))
                return -1;
              return 436; /* kxnorhi */

            case SImode:
              if (pattern590 (x3, SImode) != 0
                  || !
#line 8893 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512BW))
                return -1;
              return 437; /* kxnorsi */

            case DImode:
              if (pattern590 (x3, DImode) != 0
                  || !
#line 8893 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512BW))
                return -1;
              return 438; /* kxnordi */

            default:
              return -1;
            }

        case ZERO_EXTRACT:
          if (pattern405 (x2) != 0
              || GET_MODE (x3) != DImode)
            return -1;
          x13 = XEXP (x7, 0);
          if (!rtx_equal_p (x13, operands[0]))
            return -1;
          x15 = XEXP (x7, 2);
          if (!rtx_equal_p (x15, operands[1])
              || !
#line 11107 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && (TARGET_USE_BT || reload_completed)))
            return -1;
          return 621; /* *btcq */

        default:
          return -1;
        }

    case NEG:
    case ABS:
      return recog_236 (x1, insn, pnum_clobbers);

    case LSHIFTRT:
      return recog_227 (x1, insn, pnum_clobbers);

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

    case ASHIFT:
      x5 = XVECEXP (x1, 0, 1);
      if (pattern95 (x5, CCmode, 17) != 0)
        return -1;
      x8 = XEXP (x3, 1);
      if (nonmemory_operand (x8, QImode))
        {
          res = recog_213 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      x4 = XEXP (x2, 0);
      operands[0] = x4;
      x7 = XEXP (x3, 0);
      operands[1] = x7;
      if (GET_CODE (x8) == SUBREG)
        {
          switch (pattern515 (x3))
            {
            case 0:
              if (
#line 9841 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ASHIFT, SImode, operands)
   && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
      == GET_MODE_BITSIZE (SImode)-1))
                return 527; /* *ashlsi3_mask */
              break;

            case 1:
              if ((
#line 9841 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ASHIFT, DImode, operands)
   && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
      == GET_MODE_BITSIZE (DImode)-1) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return 528; /* *ashldi3_mask */
              break;

            default:
              break;
            }
        }
      operands[2] = x8;
      if (!nonmemory_operand (operands[2], QImode))
        return -1;
      switch (pattern410 (x3))
        {
        case 0:
          if (!
#line 9864 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ASHIFT, SImode, operands)))
            return -1;
          return 531; /* *ashlsi3_1 */

        case 1:
          if (!(
#line 9864 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ASHIFT, DImode, operands)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          return 532; /* *ashldi3_1 */

        default:
          return -1;
        }

    case ASHIFTRT:
      return recog_232 (x1, insn, pnum_clobbers);

    case ROTATE:
      x5 = XVECEXP (x1, 0, 1);
      if (pattern95 (x5, CCmode, 17) != 0)
        return -1;
      x8 = XEXP (x3, 1);
      if (GET_CODE (x8) == SUBREG)
        {
          switch (pattern412 (x2))
            {
            case 0:
              if (
#line 10798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ROTATE, SImode, operands)
   && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
      == GET_MODE_BITSIZE (SImode)-1))
                return 596; /* *rotlsi3_mask */
              break;

            case 1:
              if ((
#line 10798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ROTATE, DImode, operands)
   && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
      == GET_MODE_BITSIZE (DImode)-1) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return 598; /* *rotldi3_mask */
              break;

            default:
              break;
            }
        }
      if (!nonmemory_operand (x8, QImode))
        return -1;
      switch (pattern413 (x2))
        {
        case 0:
          if (!
#line 10881 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ROTATE, SImode, operands)))
            return -1;
          return 606; /* *rotlsi3_1 */

        case 1:
          if (!(
#line 10881 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ROTATE, DImode, operands)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          return 608; /* *rotldi3_1 */

        case 2:
          if (!
#line 11006 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ROTATE, QImode, operands)))
            return -1;
          return 613; /* *rotlqi3_1 */

        case 3:
          if (!
#line 11006 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ROTATE, HImode, operands)))
            return -1;
          return 615; /* *rotlhi3_1 */

        case 4:
          if (!
#line 11029 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_REG_STALL
    || (operands[1] == const1_rtx
	&& TARGET_SHIFT1))))
            return -1;
          return 617; /* *rotlqi3_1_slp */

        default:
          return -1;
        }

    case ROTATERT:
      x5 = XVECEXP (x1, 0, 1);
      if (pattern95 (x5, CCmode, 17) != 0)
        return -1;
      x8 = XEXP (x3, 1);
      if (GET_CODE (x8) == SUBREG)
        {
          switch (pattern412 (x2))
            {
            case 0:
              if (
#line 10798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ROTATERT, SImode, operands)
   && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
      == GET_MODE_BITSIZE (SImode)-1))
                return 597; /* *rotrsi3_mask */
              break;

            case 1:
              if ((
#line 10798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ROTATERT, DImode, operands)
   && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
      == GET_MODE_BITSIZE (DImode)-1) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return 599; /* *rotrdi3_mask */
              break;

            default:
              break;
            }
        }
      if (!nonmemory_operand (x8, QImode))
        return -1;
      switch (pattern413 (x2))
        {
        case 0:
          if (!
#line 10881 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ROTATERT, SImode, operands)))
            return -1;
          return 607; /* *rotrsi3_1 */

        case 1:
          if (!(
#line 10881 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ROTATERT, DImode, operands)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          return 609; /* *rotrdi3_1 */

        case 2:
          if (!
#line 11006 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ROTATERT, QImode, operands)))
            return -1;
          return 614; /* *rotrqi3_1 */

        case 3:
          if (!
#line 11006 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ROTATERT, HImode, operands)))
            return -1;
          return 616; /* *rotrhi3_1 */

        case 4:
          if (!
#line 11029 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_function_for_size_p (cfun)
    || !TARGET_PARTIAL_REG_STALL
    || (operands[1] == const1_rtx
	&& TARGET_SHIFT1))))
            return -1;
          return 618; /* *rotrqi3_1_slp */

        default:
          return -1;
        }

    case IF_THEN_ELSE:
      return recog_238 (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 UNEQ:
    case UNGE:
    case UNGT:
    case UNLE:
    case UNLT:
    case LTGT:
      x4 = XEXP (x2, 0);
      if (GET_CODE (x4) == REG
          && REGNO (x4) == 17
          && GET_MODE (x4) == CCOmode)
        {
          res = recog_214 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      operands[1] = x3;
      if (pattern153 (x1) != 0
          || !
#line 11349 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_PARTIAL_REG_STALL
   && TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)))
        return -1;
      return 631; /* *setcc_si_1_and */

    case CALL:
      return recog_231 (x1, insn, pnum_clobbers);

    case CTZ:
      switch (pattern100 (x1, pnum_clobbers))
        {
        case 0:
          if (
#line 12865 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_BMI || TARGET_GENERIC)
   && TARGET_AVOID_FALSE_DEP_FOR_BMI && optimize_function_for_speed_p (cfun)))
            return 720; /* *ctzsi2_falsedep_1 */
          return 724; /* *ctzsi2 */

        case 1:
          if ((
#line 12865 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_BMI || TARGET_GENERIC)
   && TARGET_AVOID_FALSE_DEP_FOR_BMI && optimize_function_for_speed_p (cfun)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return 721; /* *ctzdi2_falsedep_1 */
          if (!
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
            return -1;
          return 725; /* *ctzdi2 */

        case 2:
          *pnum_clobbers = 1;
          return 722; /* *ctzsi2_falsedep */

        case 3:
          if (!
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
            return -1;
          *pnum_clobbers = 1;
          return 723; /* *ctzdi2_falsedep */

        default:
          return -1;
        }

    case CLZ:
      switch (pattern100 (x1, pnum_clobbers))
        {
        case 0:
          if (
#line 13024 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LZCNT
   && TARGET_AVOID_FALSE_DEP_FOR_BMI && optimize_function_for_speed_p (cfun)))
            return 733; /* *clzsi2_lzcnt_falsedep_1 */
          if (!
#line 13055 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LZCNT))
            return -1;
          return 737; /* *clzsi2_lzcnt */

        case 1:
          if ((
#line 13024 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LZCNT
   && TARGET_AVOID_FALSE_DEP_FOR_BMI && optimize_function_for_speed_p (cfun)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return 734; /* *clzdi2_lzcnt_falsedep_1 */
          if (!(
#line 13055 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LZCNT) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          return 738; /* *clzdi2_lzcnt */

        case 2:
          if (!
#line 13045 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LZCNT))
            return -1;
          *pnum_clobbers = 1;
          return 735; /* *clzsi2_lzcnt_falsedep */

        case 3:
          if (!(
#line 13045 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LZCNT) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          *pnum_clobbers = 1;
          return 736; /* *clzdi2_lzcnt_falsedep */

        default:
          return -1;
        }

    case ZERO_EXTRACT:
      x5 = XVECEXP (x1, 0, 1);
      if (pattern101 (x5) != 0)
        return -1;
      x4 = XEXP (x2, 0);
      operands[0] = x4;
      x7 = XEXP (x3, 0);
      operands[1] = x7;
      x8 = XEXP (x3, 1);
      switch (GET_CODE (x8))
        {
        case UMIN:
          x16 = XEXP (x3, 2);
          if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x17 = XEXP (x8, 1);
          operands[3] = x17;
          x18 = XEXP (x8, 0);
          switch (GET_CODE (x18))
            {
            case AND:
              x19 = XEXP (x18, 1);
              if (GET_CODE (x19) != CONST_INT
                  || XWINT (x19, 0) != 255LL)
                return -1;
              x20 = XEXP (x18, 0);
              operands[2] = x20;
              switch (GET_MODE (operands[0]))
                {
                case SImode:
                  if (pattern761 (x3, SImode) != 0
                      || !
#line 13243 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2 && INTVAL (operands[3]) == 4 * BITS_PER_UNIT))
                    return -1;
                  return 760; /* *bmi2_bzhi_si3 */

                case DImode:
                  if (pattern761 (x3, DImode) != 0
                      || !(
#line 13243 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2 && INTVAL (operands[3]) == 8 * BITS_PER_UNIT) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                    return -1;
                  return 761; /* *bmi2_bzhi_di3 */

                default:
                  return -1;
                }

            case ZERO_EXTEND:
              x20 = XEXP (x18, 0);
              operands[2] = x20;
              if (!register_operand (operands[2], QImode))
                return -1;
              switch (GET_MODE (operands[0]))
                {
                case SImode:
                  if (pattern734 (x3, SImode) != 0
                      || !
#line 13260 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2 && INTVAL (operands[3]) == 4 * BITS_PER_UNIT))
                    return -1;
                  return 762; /* *bmi2_bzhi_si3_1 */

                case DImode:
                  if (pattern734 (x3, DImode) != 0
                      || !(
#line 13260 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2 && INTVAL (operands[3]) == 8 * BITS_PER_UNIT) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                    return -1;
                  return 763; /* *bmi2_bzhi_di3_1 */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case CONST_INT:
          operands[2] = x8;
          if (!const_0_to_255_operand (operands[2], VOIDmode))
            return -1;
          x16 = XEXP (x3, 2);
          operands[3] = x16;
          if (!const_0_to_255_operand (operands[3], VOIDmode))
            return -1;
          switch (pattern96 (x3))
            {
            case 0:
              if (!
#line 13313 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM))
                return -1;
              return 770; /* tbm_bextri_si */

            case 1:
              if (!(
#line 13313 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_TBM) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 771; /* tbm_bextri_di */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case POPCOUNT:
      return recog_241 (x1, insn, pnum_clobbers);

    case BSWAP:
      if (GET_MODE (x3) != HImode)
        return -1;
      x4 = XEXP (x2, 0);
      if (GET_CODE (x4) != STRICT_LOW_PART
          || pattern244 (x1) != 0
          || !register_operand (operands[0], HImode))
        return -1;
      x7 = XEXP (x3, 0);
      if (!rtx_equal_p (x7, operands[0]))
        return -1;
      if (
#line 13600 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_XCHGB || optimize_function_for_size_p (cfun)))
        return 804; /* *bswaphi_lowpart_1 */
      return 805; /* bswaphi_lowpart */

    case SIGN_EXTRACT:
      x7 = XEXP (x3, 0);
      if (!ix86_carry_flag_operator (x7, VOIDmode))
        return -1;
      operands[1] = x7;
      switch (pattern246 (x1, 1))
        {
        case 0:
          return 979; /* *x86_movsicc_0_m1_se */

        case 1:
          if (!
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
            return -1;
          return 980; /* *x86_movdicc_0_m1_se */

        default:
          return -1;
        }

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

    case VEC_MERGE:
      return recog_219 (x1, insn, pnum_clobbers);

    case SQRT:
      if (pattern102 (x1) != 0)
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V16SFmode:
          if (!register_operand (operands[0], V16SFmode)
              || GET_MODE (x3) != V16SFmode
              || !register_operand (operands[1], V16SFmode)
              || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1857 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1 && (V16SFmode == V16SFmode
							      || V16SFmode == V8DFmode
							      || V16SFmode == V8DImode
							      || V16SFmode == V16SImode)) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 1513; /* avx512f_sqrtv16sf2_round */

        case V8DFmode:
          if (!register_operand (operands[0], V8DFmode)
              || GET_MODE (x3) != V8DFmode
              || !register_operand (operands[1], V8DFmode)
              || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1857 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && 1 && (V8DFmode == V16SFmode
							      || V8DFmode == V8DFmode
							      || V8DFmode == V8DImode
							      || V8DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 1521; /* avx512f_sqrtv8df2_round */

        default:
          return -1;
        }

    case SMAX:
      switch (pattern104 (x1))
        {
        case 0:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMAX, V16SFmode, operands)
   && 1 && (V16SFmode == V16SFmode
									      || V16SFmode == V8DFmode
									      || V16SFmode == V8DImode
									      || V16SFmode == V16SImode)) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 1550; /* *smaxv16sf3_round */

        case 1:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMAX, V8SFmode, operands)
   && 1 && (V8SFmode == V16SFmode
									      || V8SFmode == V8DFmode
									      || V8SFmode == V8DImode
									      || V8SFmode == V16SImode)) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 1558; /* *smaxv8sf3_round */

        case 2:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMAX, V4SFmode, operands)
   && 1 && (V4SFmode == V16SFmode
									      || V4SFmode == V8DFmode
									      || V4SFmode == V8DImode
									      || V4SFmode == V16SImode))))
            return -1;
          return 1566; /* *smaxv4sf3_round */

        case 3:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMAX, V8DFmode, operands)
   && 1 && (V8DFmode == V16SFmode
									      || V8DFmode == V8DFmode
									      || V8DFmode == V8DImode
									      || V8DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 1574; /* *smaxv8df3_round */

        case 4:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMAX, V4DFmode, operands)
   && 1 && (V4DFmode == V16SFmode
									      || V4DFmode == V8DFmode
									      || V4DFmode == V8DImode
									      || V4DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 1582; /* *smaxv4df3_round */

        case 5:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMAX, V2DFmode, operands)
   && 1 && (V2DFmode == V16SFmode
									      || V2DFmode == V8DFmode
									      || V2DFmode == V8DImode
									      || V2DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
            return -1;
          return 1590; /* *smaxv2df3_round */

        default:
          return -1;
        }

    case SMIN:
      switch (pattern104 (x1))
        {
        case 0:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMIN, V16SFmode, operands)
   && 1 && (V16SFmode == V16SFmode
									      || V16SFmode == V8DFmode
									      || V16SFmode == V8DImode
									      || V16SFmode == V16SImode)) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 1554; /* *sminv16sf3_round */

        case 1:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMIN, V8SFmode, operands)
   && 1 && (V8SFmode == V16SFmode
									      || V8SFmode == V8DFmode
									      || V8SFmode == V8DImode
									      || V8SFmode == V16SImode)) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 1562; /* *sminv8sf3_round */

        case 2:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMIN, V4SFmode, operands)
   && 1 && (V4SFmode == V16SFmode
									      || V4SFmode == V8DFmode
									      || V4SFmode == V8DImode
									      || V4SFmode == V16SImode))))
            return -1;
          return 1570; /* *sminv4sf3_round */

        case 3:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMIN, V8DFmode, operands)
   && 1 && (V8DFmode == V16SFmode
									      || V8DFmode == V8DFmode
									      || V8DFmode == V8DImode
									      || V8DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 1578; /* *sminv8df3_round */

        case 4:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMIN, V4DFmode, operands)
   && 1 && (V4DFmode == V16SFmode
									      || V4DFmode == V8DFmode
									      || V4DFmode == V8DImode
									      || V4DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))))
            return -1;
          return 1586; /* *sminv4df3_round */

        case 5:
          if (!(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 1978 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && ix86_binary_operator_ok (SMIN, V2DFmode, operands)
   && 1 && (V2DFmode == V16SFmode
									      || V2DFmode == V8DFmode
									      || V2DFmode == V8DImode
									      || V2DFmode == V16SImode)) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))))
            return -1;
          return 1594; /* *sminv2df3_round */

        default:
          return -1;
        }

    case FMA:
      return recog_229 (x1, insn, pnum_clobbers);

    case FLOAT:
      if (pattern102 (x1) != 0)
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V16SFmode:
          if (!register_operand (operands[0], V16SFmode)
              || GET_MODE (x3) != V16SFmode
              || !register_operand (operands[1], V16SImode)
              || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4409 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && (V16SFmode == V16SFmode
							      || V16SFmode == V8DFmode
							      || V16SFmode == V8DImode
							      || V16SFmode == V16SImode)) && 
#line 226 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
            return -1;
          return 2158; /* floatv16siv16sf2_round */

        case V8DFmode:
          if (!register_operand (operands[0], V8DFmode)
              || GET_MODE (x3) != V8DFmode
              || !nonimmediate_operand (operands[1], V8DImode)
              || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4893 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ)))
            return -1;
          return 2262; /* floatv8div8df2_round */

        case V4DFmode:
          if (!register_operand (operands[0], V4DFmode)
              || GET_MODE (x3) != V4DFmode
              || !nonimmediate_operand (operands[1], V4DImode)
              || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4893 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 270 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 2270; /* floatv4div4df2_round */

        case V2DFmode:
          if (!register_operand (operands[0], V2DFmode)
              || GET_MODE (x3) != V2DFmode
              || !nonimmediate_operand (operands[1], V2DImode)
              || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 4893 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ) && 
#line 270 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))))
            return -1;
          return 2278; /* floatv2div2df2_round */

        case V8SFmode:
          if (!register_operand (operands[0], V8SFmode)
              || GET_MODE (x3) != V8SFmode
              || !nonimmediate_operand (operands[1], V8DImode)
              || !(
#line 141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && 
#line 4917 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512DQ && (V8SFmode == V8SFmode))))
            return -1;
          return 2286; /* floatv8div8sf2_round */

        default:
          return -1;
        }

    case UNSIGNED_FLOAT:
      return recog_235 (x1, insn, pnum_clobbers);

    case FLOAT_EXTEND:
      if (pattern105 (x1, V8DFmode) != 0)
        return -1;
      x7 = XEXP (x3, 0);
      operands[1] = x7;
      if (!register_operand (operands[1], V8SFmode))
        return -1;
      x5 = XVECEXP (x1, 0, 1);
      x12 = XVECEXP (x5, 0, 0);
      operands[2] = x12;
      if (!const48_operand (operands[2], SImode)
          || !(
#line 178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/subst.md"
(TARGET_AVX512F) && (
#line 5367 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && 1 && (V8DFmode == V16SFmode
									      || V8DFmode == V8DFmode
									      || V8DFmode == V8DImode
									      || V8DFmode == V16SImode)) && 
#line 244 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))))
        return -1;
      return 2413; /* avx512f_cvtps2pd512_round */

    case VEC_CONCAT:
      x7 = XEXP (x3, 0);
      if (GET_CODE (x7) != TRUNCATE)
        return -1;
      x8 = XEXP (x3, 1);
      if (GET_CODE (x8) != TRUNCATE)
        return -1;
      x5 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x5) != USE)
        return -1;
      x4 = XEXP (x2, 0);
      operands[0] = x4;
      x13 = XEXP (x7, 0);
      operands[1] = x13;
      x18 = XEXP (x8, 0);
      operands[2] = x18;
      x9 = XEXP (x5, 0);
      operands[3] = x9;
      if (!nonimmediate_operand (operands[3], V16QImode))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case V4SImode:
          if (pattern602 (x3, V2DImode, V2SImode, V4SImode) != 0
              || !
#line 16408 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP && !(MEM_P (operands[2]) && MEM_P (operands[3]))))
            return -1;
          return 4067; /* xop_pperm_pack_v2di_v4si */

        case V8HImode:
          if (pattern602 (x3, V4SImode, V4HImode, V8HImode) != 0
              || !
#line 16421 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP && !(MEM_P (operands[2]) && MEM_P (operands[3]))))
            return -1;
          return 4068; /* xop_pperm_pack_v4si_v8hi */

        case V16QImode:
          if (pattern602 (x3, V8HImode, V8QImode, V16QImode) != 0
              || !
#line 16434 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_XOP && !(MEM_P (operands[2]) && MEM_P (operands[3]))))
            return -1;
          return 4069; /* xop_pperm_pack_v8hi_v16qi */

        default:
          return -1;
        }

    case VEC_SELECT:
      return recog_233 (x1, insn, pnum_clobbers);

    default:
      return -1;
    }
}

static int
recog_243 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  switch (GET_CODE (x2))
    {
    case SET:
      return recog_242 (x1, insn, pnum_clobbers);

    case CALL:
      x3 = XEXP (x2, 0);
      if (GET_CODE (x3) != MEM
          || GET_MODE (x3) != QImode)
        return -1;
      x4 = XEXP (x3, 0);
      operands[0] = x4;
      x5 = XEXP (x2, 1);
      operands[1] = x5;
      x6 = XVECEXP (x1, 0, 1);
      switch (GET_CODE (x6))
        {
        case UNSPEC:
          if (XVECLEN (x6, 0) != 1
              || XINT (x6, 1) != 38)
            return -1;
          x7 = XVECEXP (x6, 0, 0);
          if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case SImode:
              if (!memory_operand (operands[0], SImode)
                  || !(
#line 12038 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_X32) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)))
                return -1;
              return 680; /* *sibcall_memory */

            case DImode:
              if (!memory_operand (operands[0], DImode)
                  || !(
#line 12038 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_X32) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)))
                return -1;
              return 681; /* *sibcall_memory */

            default:
              return -1;
            }

        case SET:
          x8 = XEXP (x6, 1);
          if (pattern349 (x8) != 0)
            return -1;
          x9 = XEXP (x6, 0);
          if (GET_CODE (x9) != REG
              || REGNO (x9) != 7
              || GET_MODE (x9) != SImode)
            return -1;
          x10 = XEXP (x8, 1);
          operands[2] = x10;
          if (!immediate_operand (operands[2], SImode))
            return -1;
          if (call_insn_operand (operands[0], SImode)
              && 
#line 12087 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && !SIBLING_CALL_P (insn)))
            return 682; /* *call_pop */
          if (!sibcall_insn_operand (operands[0], SImode)
              || !
#line 12097 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && SIBLING_CALL_P (insn)))
            return -1;
          return 683; /* *sibcall_pop */

        default:
          return -1;
        }

    case SIMPLE_RETURN:
      x6 = XVECEXP (x1, 0, 1);
      switch (GET_CODE (x6))
        {
        case UNSPEC:
          if (XVECLEN (x6, 0) != 1
              || XINT (x6, 1) != 30)
            return -1;
          x7 = XVECEXP (x6, 0, 0);
          if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
              || !
#line 12492 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
            return -1;
          return 700; /* simple_return_internal_long */

        case USE:
          x9 = XEXP (x6, 0);
          operands[0] = x9;
          switch (GET_CODE (operands[0]))
            {
            case CONST_INT:
              if (!const_int_operand (operands[0], SImode)
                  || !
#line 12508 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
                return -1;
              return 701; /* simple_return_pop_internal */

            case REG:
            case SUBREG:
              if (!register_operand (operands[0], SImode)
                  || !
#line 12519 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
                return -1;
              return 702; /* simple_return_indirect_internal */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case UNSPEC:
      if (XVECLEN (x2, 0) != 2)
        return -1;
      x6 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x6) != SET)
        return -1;
      x8 = XEXP (x6, 1);
      if (pattern154 (x8, 97, 1, BLKmode, UNSPEC) != 0)
        return -1;
      x9 = XEXP (x6, 0);
      if (!bnd_mem_operator (x9, BLKmode))
        return -1;
      switch (XINT (x2, 1))
        {
        case 94:
          switch (pattern516 (x1))
            {
            case 0:
              if (!(
#line 19532 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_MPX) && 
#line 1047 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_LP64)))
                return -1;
              return 1097; /* *bnd32_cl */

            case 1:
              if (!(
#line 19532 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_MPX) && 
#line 1048 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LP64)))
                return -1;
              return 1100; /* *bnd64_cl */

            default:
              return -1;
            }

        case 95:
          switch (pattern516 (x1))
            {
            case 0:
              if (!(
#line 19532 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_MPX) && 
#line 1047 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_LP64)))
                return -1;
              return 1098; /* *bnd32_cu */

            case 1:
              if (!(
#line 19532 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_MPX) && 
#line 1048 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LP64)))
                return -1;
              return 1101; /* *bnd64_cu */

            default:
              return -1;
            }

        case 96:
          switch (pattern516 (x1))
            {
            case 0:
              if (!(
#line 19532 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_MPX) && 
#line 1047 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_LP64)))
                return -1;
              return 1099; /* *bnd32_cn */

            case 1:
              if (!(
#line 19532 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_MPX) && 
#line 1048 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LP64)))
                return -1;
              return 1102; /* *bnd64_cn */

            default:
              return -1;
            }

        case 91:
          x11 = XVECEXP (x2, 0, 0);
          if (GET_CODE (x11) != MEM)
            return -1;
          operands[3] = x11;
          x12 = XEXP (x11, 0);
          if (GET_CODE (x12) != UNSPEC
              || XVECLEN (x12, 0) != 2
              || XINT (x12, 1) != 93)
            return -1;
          x13 = XVECEXP (x12, 0, 0);
          operands[0] = x13;
          x14 = XVECEXP (x12, 0, 1);
          operands[1] = x14;
          x15 = XVECEXP (x2, 0, 1);
          operands[2] = x15;
          operands[4] = x9;
          x16 = XVECEXP (x8, 0, 0);
          if (!rtx_equal_p (x16, operands[4]))
            return -1;
          switch (GET_MODE (operands[3]))
            {
            case SImode:
              if (pattern866 (x12, BND32mode, SImode) != 0
                  || !(
#line 19606 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_MPX) && 
#line 1047 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_LP64)))
                return -1;
              return 1105; /* *bnd32_stx */

            case DImode:
              if (pattern866 (x12, BND64mode, DImode) != 0
                  || !(
#line 19606 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_MPX) && 
#line 1048 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LP64)))
                return -1;
              return 1106; /* *bnd64_stx */

            default:
              return -1;
            }

        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;
  rtx x10, x11, x12;
  int res ATTRIBUTE_UNUSED;
  if (pattern656 (x1, 122, 5) != 0)
    return -1;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 1);
  x4 = XVECEXP (x3, 0, 3);
  if (!rtx_equal_p (x4, operands[5]))
    return -1;
  x5 = XVECEXP (x3, 0, 4);
  if (!rtx_equal_p (x5, operands[6]))
    return -1;
  x6 = XVECEXP (x1, 0, 2);
  x7 = XEXP (x6, 1);
  x8 = XVECEXP (x7, 0, 0);
  if (!rtx_equal_p (x8, operands[2]))
    return -1;
  x9 = XVECEXP (x7, 0, 1);
  if (!rtx_equal_p (x9, operands[3]))
    return -1;
  x10 = XVECEXP (x7, 0, 2);
  if (!rtx_equal_p (x10, operands[4]))
    return -1;
  x11 = XVECEXP (x7, 0, 3);
  if (!rtx_equal_p (x11, operands[5]))
    return -1;
  x12 = XVECEXP (x7, 0, 4);
  if (!rtx_equal_p (x12, operands[6])
      || !
#line 15440 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_2
   && can_create_pseudo_p ()))
    return -1;
  return 3965; /* sse4_2_pcmpestr */
}

static int
recog_245 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24, x25;
  rtx x26, x27;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  switch (XVECLEN (x3, 0))
    {
    case 1:
      switch (XINT (x3, 1))
        {
        case 84:
          switch (pattern247 (x1))
            {
            case 0:
              if (!
#line 12971 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI))
                return -1;
              return 728; /* *bmi_tzcnt_si_falsedep */

            case 1:
              if (!(
#line 12971 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 729; /* *bmi_tzcnt_di_falsedep */

            default:
              return -1;
            }

        case 83:
          switch (pattern247 (x1))
            {
            case 0:
              if (!
#line 13104 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LZCNT))
                return -1;
              return 741; /* *lzcnt_si_falsedep */

            case 1:
              if (!(
#line 13104 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LZCNT) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 742; /* *lzcnt_di_falsedep */

            default:
              return -1;
            }

        case 27:
          if (pattern230 (x2) != 0)
            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 (x3, 0, 0);
          operands[2] = x6;
          if (!register_operand (operands[2], SImode))
            return -1;
          x7 = XEXP (x4, 0);
          operands[0] = x7;
          if (!scratch_operand (operands[0], SImode))
            return -1;
          x8 = XEXP (x5, 0);
          operands[1] = x8;
          if (!scratch_operand (operands[1], HImode)
              || !
#line 13700 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(! TARGET_POPCNT))
            return -1;
          return 807; /* paritysi2_cmp */

        case 55:
          if (GET_MODE (x3) != 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;
          x9 = XEXP (x2, 0);
          operands[0] = x9;
          if (!nonimmediate_operand (operands[0], DImode))
            return -1;
          x6 = XVECEXP (x3, 0, 0);
          operands[1] = x6;
          if (!register_operand (operands[1], XFmode))
            return -1;
          x7 = XEXP (x4, 0);
          operands[2] = x7;
          if (!memory_operand (operands[2], DImode))
            return -1;
          x8 = XEXP (x5, 0);
          operands[3] = x8;
          if (!scratch_operand (operands[3], XFmode)
              || !
#line 15825 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387))
            return -1;
          return 903; /* fistdi2_with_temp */

        case 59:
          if (pattern248 (x1) != 0
              || !
#line 16005 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations))
            return -1;
          return 913; /* frndintxf2_floor_i387 */

        case 60:
          if (pattern248 (x1) != 0
              || !
#line 16005 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations))
            return -1;
          return 914; /* frndintxf2_ceil_i387 */

        case 61:
          if (pattern248 (x1) != 0
              || !
#line 16005 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations))
            return -1;
          return 915; /* frndintxf2_trunc_i387 */

        case 62:
          if (pattern248 (x1) != 0
              || !
#line 16107 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations))
            return -1;
          return 917; /* frndintxf2_mask_pm_i387 */

        case 63:
          switch (pattern250 (x1, pnum_clobbers))
            {
            case 0:
              if (!
#line 16180 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations))
                return -1;
              *pnum_clobbers = 1;
              return 924; /* fistdi2_floor */

            case 1:
              if (!
#line 16239 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations))
                return -1;
              return 928; /* fisthi2_floor */

            case 2:
              if (!
#line 16239 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations))
                return -1;
              return 930; /* fistsi2_floor */

            default:
              return -1;
            }

        case 64:
          switch (pattern250 (x1, pnum_clobbers))
            {
            case 0:
              if (!
#line 16180 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations))
                return -1;
              *pnum_clobbers = 1;
              return 925; /* fistdi2_ceil */

            case 1:
              if (!
#line 16239 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations))
                return -1;
              return 929; /* fisthi2_ceil */

            case 2:
              if (!
#line 16239 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations))
                return -1;
              return 931; /* fistsi2_ceil */

            default:
              return -1;
            }

        case 77:
          if (pattern252 (x1) != 0)
            return -1;
          switch (pattern407 (x1))
            {
            case 0:
              if (!(
#line 18811 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_SSP_TLS_GUARD) && 
#line 1189 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ptr_mode == SImode)))
                return -1;
              return 1015; /* stack_protect_set_si */

            case 1:
              if (!(
#line 18811 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_SSP_TLS_GUARD) && 
#line 1189 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ptr_mode == DImode)))
                return -1;
              return 1016; /* stack_protect_set_di */

            default:
              return -1;
            }

        case 79:
          if (pattern252 (x1) != 0)
            return -1;
          switch (pattern409 (x1))
            {
            case 0:
              if (!
#line 1189 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ptr_mode == SImode))
                return -1;
              return 1017; /* stack_tls_protect_set_si */

            case 1:
              if (!
#line 1189 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ptr_mode == DImode))
                return -1;
              return 1018; /* stack_tls_protect_set_di */

            default:
              return -1;
            }

        case 200:
          if (GET_MODE (x3) != 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
              || pattern422 (x1) != 0
              || !
#line 180 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
(!TARGET_64BIT && (TARGET_80387 || TARGET_SSE)))
            return -1;
          return 4974; /* atomic_loaddi_fpu */

        case 201:
          if (GET_MODE (x3) != 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
              || pattern423 (x1) != 0
              || !
#line 268 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
(!TARGET_64BIT && (TARGET_80387 || TARGET_SSE)))
            return -1;
          return 4979; /* atomic_storedi_fpu */

        default:
          return -1;
        }

    case 2:
      x4 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x4) != SET)
        return -1;
      x10 = XEXP (x4, 1);
      if (GET_CODE (x10) != UNSPEC
          || XVECLEN (x10, 0) != 2
          || GET_MODE (x10) != XFmode)
        return -1;
      x5 = XVECEXP (x1, 0, 2);
      if (pattern424 (x5, 75, 2, CCFPmode, UNSPEC) != 0
          || pattern654 (x1, XFmode, CCFPmode, 18) != 0
          || pattern647 (x1) != 0)
        return -1;
      x11 = XEXP (x5, 1);
      x12 = XVECEXP (x11, 0, 0);
      if (!rtx_equal_p (x12, operands[2]))
        return -1;
      x13 = XVECEXP (x11, 0, 1);
      if (!rtx_equal_p (x13, operands[3]))
        return -1;
      switch (XINT (x3, 1))
        {
        case 71:
          if (XINT (x10, 1) != 72
              || !
#line 14624 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_finite_math_only))
            return -1;
          return 870; /* fpremxf4_i387 */

        case 73:
          if (XINT (x10, 1) != 74
              || !
#line 14699 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_finite_math_only))
            return -1;
          return 871; /* fprem1xf4_i387 */

        default:
          return -1;
        }

    case 4:
      if (XINT (x3, 1) != 24)
        return -1;
      x6 = XVECEXP (x3, 0, 0);
      if (GET_CODE (x6) != MEM
          || GET_MODE (x6) != BLKmode
          || pattern121 (x1, CLOBBER) != 0)
        return -1;
      switch (pattern514 (x1))
        {
        case 0:
          if (!(
#line 17080 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(fixed_regs[AX_REG] || fixed_regs[CX_REG] || fixed_regs[DI_REG])
   && ix86_check_no_addr_space (insn)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
            return -1;
          return 975; /* *strlenqi_1 */

        case 1:
          if (!(
#line 17080 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(fixed_regs[AX_REG] || fixed_regs[CX_REG] || fixed_regs[DI_REG])
   && ix86_check_no_addr_space (insn)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
            return -1;
          return 976; /* *strlenqi_1 */

        default:
          return -1;
        }

    case 5:
      if (XINT (x3, 1) != 122
          || pattern253 (x3) != 0)
        return -1;
      x14 = XVECEXP (x3, 0, 2);
      switch (pattern655 (x14))
        {
        case 0:
          x4 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x4) == SET)
            {
              res = recog_244 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
            }
          x9 = XEXP (x2, 0);
          if (GET_CODE (x9) != REG
              || pattern657 (x1) != 0
              || !
#line 15608 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_2))
            return -1;
          return 3969; /* sse4_2_pcmpestr_cconly */

        case 1:
          x4 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x4) != SET)
            return -1;
          x10 = XEXP (x4, 1);
          if (pattern154 (x10, 122, 5, V16QImode, UNSPEC) != 0)
            return -1;
          x15 = XVECEXP (x10, 0, 2);
          if (pattern874 (x15) != 0)
            return -1;
          x5 = XVECEXP (x1, 0, 2);
          if (pattern424 (x5, 122, 5, CCmode, UNSPEC) != 0)
            return -1;
          x11 = XEXP (x5, 1);
          x16 = XVECEXP (x11, 0, 2);
          if (pattern936 (x16) != 0
              || pattern654 (x1, SImode, CCmode, 17) != 0)
            return -1;
          x17 = XVECEXP (x14, 0, 0);
          operands[4] = x17;
          if (!memory_operand (operands[4], V16QImode))
            return -1;
          x7 = XEXP (x4, 0);
          operands[1] = x7;
          if (!register_operand (operands[1], V16QImode))
            return -1;
          x18 = XVECEXP (x10, 0, 0);
          if (!rtx_equal_p (x18, operands[2]))
            return -1;
          x19 = XVECEXP (x10, 0, 1);
          if (!rtx_equal_p (x19, operands[3]))
            return -1;
          x20 = XVECEXP (x15, 0, 0);
          if (!rtx_equal_p (x20, operands[4])
              || pattern942 (x1) != 0)
            return -1;
          x21 = XVECEXP (x16, 0, 0);
          if (!rtx_equal_p (x21, operands[4]))
            return -1;
          x22 = XVECEXP (x11, 0, 3);
          if (!rtx_equal_p (x22, operands[5]))
            return -1;
          x23 = XVECEXP (x11, 0, 4);
          if (!rtx_equal_p (x23, operands[6])
              || !
#line 15503 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_2
   && can_create_pseudo_p ()))
            return -1;
          return 3966; /* *sse4_2_pcmpestr_unaligned */

        default:
          return -1;
        }

    case 3:
      if (XINT (x3, 1) != 123)
        return -1;
      x6 = XVECEXP (x3, 0, 0);
      operands[2] = x6;
      if (!register_operand (operands[2], V16QImode))
        return -1;
      x14 = XVECEXP (x3, 0, 2);
      operands[4] = x14;
      if (!const_0_to_255_operand (operands[4], SImode))
        return -1;
      x24 = XVECEXP (x3, 0, 1);
      switch (pattern475 (x24))
        {
        case 0:
          x4 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x4) == SET
              && pattern656 (x1, 123, 3) == 0)
            {
              x5 = XVECEXP (x1, 0, 2);
              x11 = XEXP (x5, 1);
              x12 = XVECEXP (x11, 0, 0);
              if (rtx_equal_p (x12, operands[2]))
                {
                  x13 = XVECEXP (x11, 0, 1);
                  if (rtx_equal_p (x13, operands[3]))
                    {
                      x16 = XVECEXP (x11, 0, 2);
                      if (rtx_equal_p (x16, operands[4])
                          && 
#line 15643 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_2
   && can_create_pseudo_p ()))
                        return 3970; /* sse4_2_pcmpistr */
                    }
                }
            }
          x9 = XEXP (x2, 0);
          if (GET_CODE (x9) != REG
              || pattern657 (x1) != 0
              || !
#line 15789 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_2))
            return -1;
          return 3974; /* sse4_2_pcmpistr_cconly */

        case 1:
          x4 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x4) != SET)
            return -1;
          x10 = XEXP (x4, 1);
          if (pattern154 (x10, 123, 3, V16QImode, UNSPEC) != 0)
            return -1;
          x19 = XVECEXP (x10, 0, 1);
          if (pattern785 (x19) != 0)
            return -1;
          x5 = XVECEXP (x1, 0, 2);
          if (pattern424 (x5, 123, 3, CCmode, UNSPEC) != 0)
            return -1;
          x11 = XEXP (x5, 1);
          x13 = XVECEXP (x11, 0, 1);
          if (pattern919 (x13) != 0
              || pattern654 (x1, SImode, CCmode, 17) != 0)
            return -1;
          x25 = XVECEXP (x24, 0, 0);
          operands[3] = x25;
          if (!memory_operand (operands[3], V16QImode))
            return -1;
          x7 = XEXP (x4, 0);
          operands[1] = x7;
          if (!register_operand (operands[1], V16QImode))
            return -1;
          x18 = XVECEXP (x10, 0, 0);
          if (!rtx_equal_p (x18, operands[2]))
            return -1;
          x26 = XVECEXP (x19, 0, 0);
          if (!rtx_equal_p (x26, operands[3]))
            return -1;
          x15 = XVECEXP (x10, 0, 2);
          if (!rtx_equal_p (x15, operands[4]))
            return -1;
          x12 = XVECEXP (x11, 0, 0);
          if (!rtx_equal_p (x12, operands[2]))
            return -1;
          x27 = XVECEXP (x13, 0, 0);
          if (!rtx_equal_p (x27, operands[3]))
            return -1;
          x16 = XVECEXP (x11, 0, 2);
          if (!rtx_equal_p (x16, operands[4])
              || !
#line 15697 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_2
   && can_create_pseudo_p ()))
            return -1;
          return 3971; /* *sse4_2_pcmpistr_unaligned */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_246 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  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);
  operands[0] = x4;
  x5 = XEXP (x3, 1);
  switch (XVECLEN (x5, 0))
    {
    case 1:
      if (XINT (x5, 1) != 9
          || GET_MODE (x5) != DImode)
        return -1;
      x6 = XVECEXP (x5, 0, 0);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x7 = XEXP (x2, 1);
      if (pattern154 (x7, 9, 1, DImode, UNSPEC_VOLATILE) != 0)
        return -1;
      x8 = XVECEXP (x7, 0, 0);
      if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        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) != 1
          || XINT (x10, 1) != 9
          || GET_MODE (x10) != SImode)
        return -1;
      x11 = XVECEXP (x10, 0, 0);
      if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || !register_operand (operands[0], DImode))
        return -1;
      x12 = XEXP (x2, 0);
      operands[1] = x12;
      if (!register_operand (operands[1], DImode))
        return -1;
      x13 = XEXP (x9, 0);
      operands[2] = x13;
      if (!register_operand (operands[2], SImode)
          || !
#line 18962 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
        return -1;
      return 1032; /* rdtscp_rex64 */

    case 5:
      if (pattern290 (x1) != 0)
        return -1;
      x14 = XVECEXP (x5, 0, 4);
      operands[5] = x14;
      if (!const_int_operand (operands[5], SImode))
        return -1;
      x12 = XEXP (x2, 0);
      if (!rtx_equal_p (x12, operands[1]))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case DImode:
          if (pattern926 (x1, DImode, SImode) != 0
              || !(
#line 405 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
(TARGET_CMPXCHG8B) && 
#line 1043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT)))
            return -1;
          return 4982; /* atomic_compare_and_swapdi_doubleword */

        case TImode:
          if (pattern926 (x1, TImode, DImode) != 0
              || !(
#line 405 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
(TARGET_CMPXCHG16B) && 
#line 1044 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          return 4983; /* atomic_compare_and_swapti_doubleword */

        default:
          return -1;
        }

    case 4:
      if (pattern290 (x1) != 0
          || !const_int_operand (operands[4], SImode))
        return -1;
      x12 = XEXP (x2, 0);
      if (!rtx_equal_p (x12, operands[1]))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case QImode:
          if (pattern920 (x1, QImode) != 0
              || !
#line 420 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
(TARGET_CMPXCHG))
            return -1;
          return 4984; /* atomic_compare_and_swapqi_1 */

        case HImode:
          if (pattern920 (x1, HImode) != 0
              || !
#line 420 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
(TARGET_CMPXCHG))
            return -1;
          return 4985; /* atomic_compare_and_swaphi_1 */

        case SImode:
          if (pattern920 (x1, SImode) != 0
              || !
#line 420 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
(TARGET_CMPXCHG))
            return -1;
          return 4986; /* atomic_compare_and_swapsi_1 */

        case DImode:
          if (pattern920 (x1, DImode) != 0
              || !(
#line 420 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
(TARGET_CMPXCHG) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          return 4987; /* atomic_compare_and_swapdi_1 */

        default:
          return -1;
        }

    case 2:
      if (XINT (x5, 1) != 62)
        return -1;
      x7 = XEXP (x2, 1);
      if (GET_CODE (x7) != PLUS)
        return -1;
      x9 = XVECEXP (x1, 0, 2);
      if (pattern251 (x9, CCmode) != 0)
        return -1;
      x6 = XVECEXP (x5, 0, 0);
      operands[1] = x6;
      x15 = XVECEXP (x5, 0, 1);
      operands[3] = x15;
      if (!const_int_operand (operands[3], SImode))
        return -1;
      x16 = XEXP (x7, 1);
      operands[2] = x16;
      x17 = XEXP (x7, 0);
      if (!rtx_equal_p (x17, operands[1]))
        return -1;
      x12 = XEXP (x2, 0);
      if (!rtx_equal_p (x12, operands[1]))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case QImode:
          if (pattern735 (x1, QImode) != 0
              || !
#line 436 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
(TARGET_XADD))
            return -1;
          return 4988; /* atomic_fetch_addqi */

        case HImode:
          if (pattern735 (x1, HImode) != 0
              || !
#line 436 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
(TARGET_XADD))
            return -1;
          return 4989; /* atomic_fetch_addhi */

        case SImode:
          if (pattern735 (x1, SImode) != 0
              || !
#line 436 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
(TARGET_XADD))
            return -1;
          return 4990; /* atomic_fetch_addsi */

        case DImode:
          if (pattern735 (x1, DImode) != 0
              || !(
#line 436 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
(TARGET_XADD) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          return 4991; /* atomic_fetch_adddi */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_247 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  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);
  if (GET_MODE (x3) != CCOmode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != MULT)
    return -1;
  x5 = XEXP (x4, 0);
  if (GET_CODE (x5) != ZERO_EXTEND)
    return -1;
  x6 = XEXP (x4, 1);
  if (GET_CODE (x6) != ZERO_EXTEND)
    return -1;
  x7 = XEXP (x3, 1);
  if (GET_CODE (x7) != ZERO_EXTEND)
    return -1;
  x8 = XEXP (x7, 0);
  if (GET_CODE (x8) != MULT)
    return -1;
  x9 = XEXP (x2, 0);
  if (GET_CODE (x9) != REG
      || REGNO (x9) != 17
      || GET_MODE (x9) != CCOmode)
    return -1;
  x10 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x10) != SET)
    return -1;
  x11 = XEXP (x10, 1);
  if (GET_CODE (x11) != MULT)
    return -1;
  x12 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x12) != CLOBBER)
    return -1;
  x13 = XEXP (x5, 0);
  operands[1] = x13;
  x14 = XEXP (x6, 0);
  operands[2] = x14;
  x15 = XEXP (x10, 0);
  operands[0] = x15;
  x16 = XEXP (x12, 0);
  operands[3] = x16;
  x17 = XEXP (x8, 0);
  if (!rtx_equal_p (x17, operands[1]))
    return -1;
  x18 = XEXP (x8, 1);
  if (!rtx_equal_p (x18, operands[2]))
    return -1;
  x19 = XEXP (x11, 0);
  if (!rtx_equal_p (x19, operands[1]))
    return -1;
  x20 = XEXP (x11, 1);
  if (!rtx_equal_p (x20, operands[2]))
    return -1;
  switch (GET_MODE (x4))
    {
    case SImode:
      if (pattern902 (x1, HImode, SImode) != 0
          || !
#line 7119 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))))
        return -1;
      return 328; /* *umulvhi4 */

    case DImode:
      if (pattern902 (x1, SImode, DImode) != 0
          || !
#line 7119 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))))
        return -1;
      return 329; /* *umulvsi4 */

    case TImode:
      if (pattern902 (x1, DImode, TImode) != 0
          || !(
#line 7119 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))) && 
#line 991 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
        return -1;
      return 330; /* *umulvdi4 */

    default:
      return -1;
    }
}

static int
recog_248 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24, x25;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  switch (GET_CODE (x2))
    {
    case SET:
      x3 = XEXP (x2, 1);
      switch (GET_CODE (x3))
        {
        case SIGN_EXTEND:
          if (GET_MODE (x3) != DImode)
            return -1;
          x4 = XVECEXP (x1, 0, 1);
          if (pattern95 (x4, CCmode, 17) != 0)
            return -1;
          x5 = XVECEXP (x1, 0, 2);
          if (GET_CODE (x5) != CLOBBER)
            return -1;
          x6 = XEXP (x2, 0);
          operands[0] = x6;
          if (!nonimmediate_operand (operands[0], DImode))
            return -1;
          x7 = XEXP (x3, 0);
          operands[1] = x7;
          if (!register_operand (operands[1], SImode))
            return -1;
          x8 = XEXP (x5, 0);
          operands[2] = x8;
          if (!scratch_operand (operands[2], SImode)
              || !
#line 3987 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT))
            return -1;
          return 148; /* extendsidi2_1 */

        case FIX:
          x6 = XEXP (x2, 0);
          operands[0] = x6;
          x7 = XEXP (x3, 0);
          operands[1] = x7;
          if (!register_operand (operands[1], VOIDmode))
            return -1;
          x4 = XVECEXP (x1, 0, 1);
          switch (GET_CODE (x4))
            {
            case CLOBBER:
              x5 = XVECEXP (x1, 0, 2);
              if (GET_CODE (x5) != CLOBBER)
                return -1;
              x9 = XEXP (x4, 0);
              operands[2] = x9;
              x8 = XEXP (x5, 0);
              operands[3] = x8;
              if (!scratch_operand (operands[3], XFmode))
                return -1;
              switch (pattern542 (x3))
                {
                case 0:
                  if (!
#line 4874 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(X87_FLOAT_MODE_P (GET_MODE (operands[1]))
   && TARGET_FISTTP
   && !((SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
	&& (TARGET_64BIT || HImode != DImode))
	&& TARGET_SSE_MATH)))
                    return -1;
                  return 183; /* fix_trunchi_i387_fisttp_with_temp */

                case 1:
                  if (!
#line 4874 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(X87_FLOAT_MODE_P (GET_MODE (operands[1]))
   && TARGET_FISTTP
   && !((SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
	&& (TARGET_64BIT || SImode != DImode))
	&& TARGET_SSE_MATH)))
                    return -1;
                  return 184; /* fix_truncsi_i387_fisttp_with_temp */

                case 2:
                  if (!
#line 4874 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(X87_FLOAT_MODE_P (GET_MODE (operands[1]))
   && TARGET_FISTTP
   && !((SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
	&& (TARGET_64BIT || DImode != DImode))
	&& TARGET_SSE_MATH)))
                    return -1;
                  return 185; /* fix_truncdi_i387_fisttp_with_temp */

                default:
                  return -1;
                }

            case USE:
              x5 = XVECEXP (x1, 0, 2);
              if (GET_CODE (x5) != USE)
                return -1;
              switch (pattern249 (x1, pnum_clobbers))
                {
                case 0:
                  if (!
#line 4946 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(X87_FLOAT_MODE_P (GET_MODE (operands[1]))
   && !TARGET_FISTTP
   && !(TARGET_64BIT && SSE_FLOAT_MODE_P (GET_MODE (operands[1])))))
                    return -1;
                  *pnum_clobbers = 1;
                  return 189; /* fix_truncdi_i387 */

                case 1:
                  if (!
#line 5001 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(X87_FLOAT_MODE_P (GET_MODE (operands[1]))
   && !TARGET_FISTTP
   && !SSE_FLOAT_MODE_P (GET_MODE (operands[1]))))
                    return -1;
                  return 191; /* fix_trunchi_i387 */

                case 2:
                  if (!
#line 5001 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(X87_FLOAT_MODE_P (GET_MODE (operands[1]))
   && !TARGET_FISTTP
   && !SSE_FLOAT_MODE_P (GET_MODE (operands[1]))))
                    return -1;
                  return 192; /* fix_truncsi_i387 */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case UNSIGNED_FLOAT:
          switch (pattern107 (x1))
            {
            case 0:
              if (!
#line 5359 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT
   && TARGET_80387 && X87_ENABLE_FLOAT (SFmode, DImode)
   && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_TO_VEC))
                return -1;
              return 213; /* *floatunssisf2_i387_with_xmm */

            case 1:
              if (!
#line 5359 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT
   && TARGET_80387 && X87_ENABLE_FLOAT (DFmode, DImode)
   && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_TO_VEC))
                return -1;
              return 214; /* *floatunssidf2_i387_with_xmm */

            case 2:
              if (!
#line 5359 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT
   && TARGET_80387 && X87_ENABLE_FLOAT (XFmode, DImode)
   && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_TO_VEC))
                return -1;
              return 215; /* *floatunssixf2_i387_with_xmm */

            default:
              return -1;
            }

        case EQ:
          return recog_247 (x1, insn, pnum_clobbers);

        case TRUNCATE:
          x7 = XEXP (x3, 0);
          if (GET_CODE (x7) != LSHIFTRT)
            return -1;
          x10 = XEXP (x7, 0);
          if (GET_CODE (x10) != MULT)
            return -1;
          x11 = XEXP (x7, 1);
          if (GET_CODE (x11) != CONST_INT
              || pattern121 (x1, CLOBBER) != 0)
            return -1;
          x4 = XVECEXP (x1, 0, 1);
          x9 = XEXP (x4, 0);
          operands[3] = x9;
          x12 = XEXP (x10, 0);
          switch (GET_CODE (x12))
            {
            case SIGN_EXTEND:
              switch (pattern685 (x3, SIGN_EXTEND))
                {
                case 0:
                  if (!
#line 7332 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                    return -1;
                  return 341; /* *smuldi3_highpart_1 */

                case 1:
                  if (!
#line 7357 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))))
                    return -1;
                  return 343; /* *smulsi3_highpart_1 */

                default:
                  return -1;
                }

            case ZERO_EXTEND:
              switch (pattern685 (x3, ZERO_EXTEND))
                {
                case 0:
                  if (!
#line 7332 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                    return -1;
                  return 342; /* *umuldi3_highpart_1 */

                case 1:
                  if (!
#line 7357 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))))
                    return -1;
                  return 344; /* *umulsi3_highpart_1 */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case ZERO_EXTEND:
          if (GET_MODE (x3) != DImode)
            return -1;
          x7 = XEXP (x3, 0);
          if (GET_CODE (x7) != TRUNCATE
              || GET_MODE (x7) != SImode)
            return -1;
          x10 = XEXP (x7, 0);
          if (GET_CODE (x10) != LSHIFTRT
              || GET_MODE (x10) != DImode)
            return -1;
          x12 = XEXP (x10, 0);
          if (GET_CODE (x12) != MULT
              || GET_MODE (x12) != DImode)
            return -1;
          x13 = XEXP (x10, 1);
          if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 32])
            return -1;
          x4 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x4) != CLOBBER)
            return -1;
          x5 = XVECEXP (x1, 0, 2);
          if (GET_CODE (x5) != CLOBBER
              || pattern166 (x1, DImode) != 0)
            return -1;
          x14 = XEXP (x12, 0);
          if (GET_MODE (x14) != DImode)
            return -1;
          x15 = XEXP (x12, 1);
          if (GET_MODE (x15) != DImode)
            return -1;
          x9 = XEXP (x4, 0);
          operands[3] = x9;
          if (!scratch_operand (operands[3], SImode))
            return -1;
          switch (GET_CODE (x14))
            {
            case SIGN_EXTEND:
              if (GET_CODE (x15) != SIGN_EXTEND)
                return -1;
              x16 = XEXP (x14, 0);
              operands[1] = x16;
              if (!nonimmediate_operand (operands[1], SImode))
                return -1;
              x17 = XEXP (x15, 0);
              operands[2] = x17;
              if (!nonimmediate_operand (operands[2], SImode)
                  || !
#line 7380 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                return -1;
              return 345; /* *smulsi3_highpart_zext */

            case ZERO_EXTEND:
              if (GET_CODE (x15) != ZERO_EXTEND)
                return -1;
              x16 = XEXP (x14, 0);
              operands[1] = x16;
              if (!nonimmediate_operand (operands[1], SImode))
                return -1;
              x17 = XEXP (x15, 0);
              operands[2] = x17;
              if (!nonimmediate_operand (operands[2], SImode)
                  || !
#line 7380 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                return -1;
              return 346; /* *umulsi3_highpart_zext */

            default:
              return -1;
            }

        case DIV:
          x4 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x4) != SET)
            return -1;
          x18 = XEXP (x4, 1);
          if (GET_CODE (x18) != MOD)
            return -1;
          x6 = XEXP (x2, 0);
          operands[0] = x6;
          x7 = XEXP (x3, 0);
          operands[2] = x7;
          x19 = XEXP (x3, 1);
          operands[3] = x19;
          x9 = XEXP (x4, 0);
          operands[1] = x9;
          x20 = XEXP (x18, 0);
          if (!rtx_equal_p (x20, operands[2]))
            return -1;
          x21 = XEXP (x18, 1);
          if (!rtx_equal_p (x21, operands[3]))
            return -1;
          switch (pattern550 (x1, pnum_clobbers))
            {
            case 0:
              *pnum_clobbers = 1;
              return 347; /* divmodsi4_1 */

            case 1:
              if (!
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                return -1;
              *pnum_clobbers = 1;
              return 348; /* divmoddi4_1 */

            case 2:
              if (!
#line 1017 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_HIMODE_MATH))
                return -1;
              return 349; /* *divmodhi4 */

            case 3:
              return 350; /* *divmodsi4 */

            case 4:
              if (!
#line 1018 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                return -1;
              return 351; /* *divmoddi4 */

            case 5:
              if (!
#line 1017 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_HIMODE_MATH))
                return -1;
              *pnum_clobbers = 1;
              return 352; /* *divmodhi4_noext */

            case 6:
              *pnum_clobbers = 1;
              return 353; /* *divmodsi4_noext */

            case 7:
              if (!
#line 1018 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                return -1;
              *pnum_clobbers = 1;
              return 354; /* *divmoddi4_noext */

            default:
              return -1;
            }

        case UDIV:
          switch (pattern108 (x1))
            {
            case 0:
              switch (pattern550 (x1, pnum_clobbers))
                {
                case 0:
                  *pnum_clobbers = 1;
                  return 356; /* udivmodsi4_1 */

                case 1:
                  if (!
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                    return -1;
                  *pnum_clobbers = 1;
                  return 357; /* udivmoddi4_1 */

                case 2:
                  if (!
#line 1017 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_HIMODE_MATH))
                    return -1;
                  return 358; /* *udivmodhi4 */

                case 3:
                  return 359; /* *udivmodsi4 */

                case 4:
                  if (!
#line 1018 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                    return -1;
                  return 360; /* *udivmoddi4 */

                case 5:
                  if (!
#line 1017 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_HIMODE_MATH))
                    return -1;
                  *pnum_clobbers = 1;
                  return 363; /* *udivmodhi4_noext */

                case 6:
                  *pnum_clobbers = 1;
                  return 364; /* *udivmodsi4_noext */

                case 7:
                  if (!
#line 1018 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                    return -1;
                  *pnum_clobbers = 1;
                  return 365; /* *udivmoddi4_noext */

                default:
                  return -1;
                }

            case 1:
              x5 = XVECEXP (x1, 0, 2);
              if (pattern251 (x5, CCmode) != 0)
                return -1;
              switch (GET_MODE (operands[0]))
                {
                case SImode:
                  if (pattern678 (x1, SImode) != 0
                      || !
#line 7699 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(IN_RANGE (INTVAL (operands[3]), 2, HOST_WIDE_INT_UC (0x80000000))
   && (UINTVAL (operands[3]) & (UINTVAL (operands[3]) - 1)) == 0))
                    return -1;
                  return 361; /* *udivmodsi4_pow2 */

                case DImode:
                  if (pattern678 (x1, DImode) != 0
                      || !(
#line 7699 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(IN_RANGE (INTVAL (operands[3]), 2, HOST_WIDE_INT_UC (0x80000000))
   && (UINTVAL (operands[3]) & (UINTVAL (operands[3]) - 1)) == 0) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                    return -1;
                  return 362; /* *udivmoddi4_pow2 */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case NEG:
        case ABS:
          operands[3] = x3;
          x4 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x4) != USE)
            return -1;
          x5 = XVECEXP (x1, 0, 2);
          if (pattern119 (x5) != 0)
            return -1;
          x6 = XEXP (x2, 0);
          operands[0] = x6;
          x7 = XEXP (x3, 0);
          operands[1] = x7;
          x9 = XEXP (x4, 0);
          operands[2] = x9;
          switch (GET_MODE (operands[0]))
            {
            case SFmode:
              if (!register_operand (operands[0], SFmode)
                  || !absneg_operator (operands[3], SFmode)
                  || !register_operand (operands[1], SFmode))
                return -1;
              if (nonimmediate_operand (operands[2], V4SFmode)
                  && 
#line 9310 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH))
                return 481; /* *absnegsf2_mixed */
              if (!
#line 9324 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)))
                return -1;
              return 483; /* *absnegsf2_i387 */

            case DFmode:
              if (!register_operand (operands[0], DFmode)
                  || !absneg_operator (operands[3], DFmode)
                  || !register_operand (operands[1], DFmode))
                return -1;
              if (nonimmediate_operand (operands[2], V2DFmode)
                  && 
#line 9310 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH))
                return 482; /* *absnegdf2_mixed */
              if (!
#line 9324 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)))
                return -1;
              return 484; /* *absnegdf2_i387 */

            case XFmode:
              if (!register_operand (operands[0], XFmode)
                  || !absneg_operator (operands[3], XFmode)
                  || !register_operand (operands[1], XFmode)
                  || !
#line 9324 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !(SSE_FLOAT_MODE_P (XFmode) && TARGET_SSE_MATH)))
                return -1;
              return 485; /* *absnegxf2_i387 */

            case TFmode:
              if (pattern511 () != 0
                  || !
#line 9339 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_SSE))
                return -1;
              return 486; /* *absnegtf2_sse */

            default:
              return -1;
            }

        case ROTATE:
          switch (pattern109 (x1))
            {
            case 0:
              if (!
#line 1043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT))
                return -1;
              return 600; /* ix86_rotldi3_doubleword */

            case 1:
              if (!
#line 1044 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                return -1;
              return 601; /* ix86_rotlti3_doubleword */

            default:
              return -1;
            }

        case ROTATERT:
          switch (pattern109 (x1))
            {
            case 0:
              if (!
#line 1043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT))
                return -1;
              return 602; /* ix86_rotrdi3_doubleword */

            case 1:
              if (!
#line 1044 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                return -1;
              return 603; /* ix86_rotrti3_doubleword */

            default:
              return -1;
            }

        case CALL:
          x7 = XEXP (x3, 0);
          if (GET_CODE (x7) != MEM
              || GET_MODE (x7) != QImode
              || pattern156 (x1) != 0)
            return -1;
          x6 = XEXP (x2, 0);
          operands[0] = x6;
          x10 = XEXP (x7, 0);
          operands[1] = x10;
          if (!memory_operand (operands[1], SImode))
            return -1;
          x19 = XEXP (x3, 1);
          operands[2] = x19;
          x4 = XVECEXP (x1, 0, 1);
          x18 = XEXP (x4, 1);
          x21 = XEXP (x18, 1);
          operands[3] = x21;
          if (!immediate_operand (operands[3], SImode)
              || !
#line 12312 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT))
            return -1;
          return 695; /* *sibcall_value_pop_memory */

        case PLUS:
          x5 = XVECEXP (x1, 0, 2);
          if (pattern110 (x5) != 0)
            return -1;
          x7 = XEXP (x3, 0);
          if (GET_CODE (x7) == REG
              && REGNO (x7) == 6)
            {
              x19 = XEXP (x3, 1);
              if (GET_CODE (x19) == CONST_INT)
                {
                  x6 = XEXP (x2, 0);
                  if (GET_CODE (x6) == REG
                      && REGNO (x6) == 7)
                    {
                      x4 = XVECEXP (x1, 0, 1);
                      if (pattern294 (x4, 6, MEM) == 0)
                        {
                          switch (XWINT (x19, 0))
                            {
                            case 4LL:
                              if (pattern819 (x1, SImode) == 0
                                  && 
#line 12691 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT))
                                return 712; /* leave */
                              break;

                            case 8LL:
                              if (pattern819 (x1, DImode) == 0
                                  && 
#line 12699 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                                return 713; /* leave_rex64 */
                              break;

                            default:
                              break;
                            }
                        }
                    }
                }
            }
          x4 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x4) != CLOBBER)
            return -1;
          x9 = XEXP (x4, 0);
          if (GET_CODE (x9) != REG
              || REGNO (x9) != 17
              || GET_MODE (x9) != CCmode)
            return -1;
          x6 = XEXP (x2, 0);
          operands[0] = x6;
          operands[1] = x7;
          x19 = XEXP (x3, 1);
          operands[2] = x19;
          switch (GET_MODE (operands[0]))
            {
            case SImode:
              if (pattern662 (x3, SImode) != 0
                  || !
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))
                return -1;
              return 1001; /* pro_epilogue_adjust_stack_si_add */

            case DImode:
              if (pattern662 (x3, DImode) != 0
                  || !
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))
                return -1;
              return 1002; /* pro_epilogue_adjust_stack_di_add */

            default:
              return -1;
            }

        case FFS:
          if (pattern111 (x1) != 0
              || !
#line 12798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_CMOVE))
            return -1;
          return 715; /* ffssi2_no_cmove */

        case CTZ:
          switch (pattern112 (x1))
            {
            case 0:
              return 722; /* *ctzsi2_falsedep */

            case 1:
              if (!
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                return -1;
              return 723; /* *ctzdi2_falsedep */

            default:
              return -1;
            }

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

        case CLZ:
          switch (pattern112 (x1))
            {
            case 0:
              if (!
#line 13045 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LZCNT))
                return -1;
              return 735; /* *clzsi2_lzcnt_falsedep */

            case 1:
              if (!(
#line 13045 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LZCNT) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 736; /* *clzdi2_lzcnt_falsedep */

            default:
              return -1;
            }

        case POPCOUNT:
          switch (pattern112 (x1))
            {
            case 0:
              if (!
#line 13513 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_POPCNT))
                return -1;
              return 795; /* *popcountsi2_falsedep */

            case 1:
              if (!(
#line 13513 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_POPCNT) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 796; /* *popcountdi2_falsedep */

            default:
              return -1;
            }

        case MEM:
          if (pattern113 (x1) != 0)
            return -1;
          x5 = XVECEXP (x1, 0, 2);
          if (GET_CODE (x5) != SET)
            return -1;
          x22 = XEXP (x5, 1);
          if (GET_CODE (x22) != PLUS)
            return -1;
          x23 = XEXP (x22, 1);
          if (GET_CODE (x23) != CONST_INT)
            return -1;
          x6 = XEXP (x2, 0);
          x24 = XEXP (x6, 0);
          operands[2] = x24;
          x7 = XEXP (x3, 0);
          operands[3] = x7;
          x4 = XVECEXP (x1, 0, 1);
          x9 = XEXP (x4, 0);
          operands[0] = x9;
          x8 = XEXP (x5, 0);
          operands[1] = x8;
          x18 = XEXP (x4, 1);
          x20 = XEXP (x18, 0);
          if (!rtx_equal_p (x20, operands[2]))
            return -1;
          x25 = XEXP (x22, 0);
          if (!rtx_equal_p (x25, operands[3]))
            return -1;
          x21 = XEXP (x18, 1);
          switch (XWINT (x21, 0))
            {
            case 8LL:
              if (XWINT (x23, 0) != 8LL)
                return -1;
              switch (pattern787 (x1, DImode))
                {
                case 0:
                  if (!(
#line 16561 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT
   && !(fixed_regs[SI_REG] || fixed_regs[DI_REG])
   && ix86_check_no_addr_space (insn)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 943; /* *strmovdi_rex_1 */

                case 1:
                  if (!(
#line 16561 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT
   && !(fixed_regs[SI_REG] || fixed_regs[DI_REG])
   && ix86_check_no_addr_space (insn)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 944; /* *strmovdi_rex_1 */

                default:
                  return -1;
                }

            case 4LL:
              if (XWINT (x23, 0) != 4LL)
                return -1;
              switch (pattern787 (x1, SImode))
                {
                case 0:
                  if (!(
#line 16578 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(fixed_regs[SI_REG] || fixed_regs[DI_REG])
   && ix86_check_no_addr_space (insn)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 945; /* *strmovsi_1 */

                case 1:
                  if (!(
#line 16578 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(fixed_regs[SI_REG] || fixed_regs[DI_REG])
   && ix86_check_no_addr_space (insn)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 946; /* *strmovsi_1 */

                default:
                  return -1;
                }

            case 2LL:
              if (XWINT (x23, 0) != 2LL)
                return -1;
              switch (pattern787 (x1, HImode))
                {
                case 0:
                  if (!(
#line 16594 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(fixed_regs[SI_REG] || fixed_regs[DI_REG])
   && ix86_check_no_addr_space (insn)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 947; /* *strmovhi_1 */

                case 1:
                  if (!(
#line 16594 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(fixed_regs[SI_REG] || fixed_regs[DI_REG])
   && ix86_check_no_addr_space (insn)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 948; /* *strmovhi_1 */

                default:
                  return -1;
                }

            case 1LL:
              if (XWINT (x23, 0) != 1LL)
                return -1;
              switch (pattern787 (x1, QImode))
                {
                case 0:
                  if (!(
#line 16610 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(fixed_regs[SI_REG] || fixed_regs[DI_REG])
   && ix86_check_no_addr_space (insn)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 949; /* *strmovqi_1 */

                case 1:
                  if (!(
#line 16610 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(fixed_regs[SI_REG] || fixed_regs[DI_REG])
   && ix86_check_no_addr_space (insn)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 950; /* *strmovqi_1 */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case REG:
        case SUBREG:
          operands[2] = x3;
          if (pattern113 (x1) != 0)
            return -1;
          x5 = XVECEXP (x1, 0, 2);
          if (pattern155 (x5, 37) != 0)
            return -1;
          x6 = XEXP (x2, 0);
          x24 = XEXP (x6, 0);
          operands[1] = x24;
          x4 = XVECEXP (x1, 0, 1);
          x9 = XEXP (x4, 0);
          operands[0] = x9;
          x18 = XEXP (x4, 1);
          x20 = XEXP (x18, 0);
          if (!rtx_equal_p (x20, operands[1]))
            return -1;
          x21 = XEXP (x18, 1);
          switch (XWINT (x21, 0))
            {
            case 8LL:
              switch (pattern738 (x1, DImode))
                {
                case 0:
                  if (!(
#line 16764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT
   && !(fixed_regs[AX_REG] || fixed_regs[DI_REG])
   && ix86_check_no_addr_space (insn)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 957; /* *strsetdi_rex_1 */

                case 1:
                  if (!(
#line 16764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT
   && !(fixed_regs[AX_REG] || fixed_regs[DI_REG])
   && ix86_check_no_addr_space (insn)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 958; /* *strsetdi_rex_1 */

                default:
                  return -1;
                }

            case 4LL:
              switch (pattern738 (x1, SImode))
                {
                case 0:
                  if (!(
#line 16779 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(fixed_regs[AX_REG] || fixed_regs[DI_REG])
   && ix86_check_no_addr_space (insn)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 959; /* *strsetsi_1 */

                case 1:
                  if (!(
#line 16779 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(fixed_regs[AX_REG] || fixed_regs[DI_REG])
   && ix86_check_no_addr_space (insn)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 960; /* *strsetsi_1 */

                default:
                  return -1;
                }

            case 2LL:
              switch (pattern738 (x1, HImode))
                {
                case 0:
                  if (!(
#line 16793 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(fixed_regs[AX_REG] || fixed_regs[DI_REG])
   && ix86_check_no_addr_space (insn)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 961; /* *strsethi_1 */

                case 1:
                  if (!(
#line 16793 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(fixed_regs[AX_REG] || fixed_regs[DI_REG])
   && ix86_check_no_addr_space (insn)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 962; /* *strsethi_1 */

                default:
                  return -1;
                }

            case 1LL:
              switch (pattern738 (x1, QImode))
                {
                case 0:
                  if (!(
#line 16807 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(fixed_regs[AX_REG] || fixed_regs[DI_REG])
   && ix86_check_no_addr_space (insn)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 963; /* *strsetqi_1 */

                case 1:
                  if (!(
#line 16807 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(fixed_regs[AX_REG] || fixed_regs[DI_REG])
   && ix86_check_no_addr_space (insn)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 964; /* *strsetqi_1 */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case MINUS:
          if (pattern114 (x1) != 0)
            return -1;
          x6 = XEXP (x2, 0);
          operands[0] = x6;
          x7 = XEXP (x3, 0);
          operands[1] = x7;
          x19 = XEXP (x3, 1);
          operands[2] = x19;
          switch (GET_MODE (operands[0]))
            {
            case SImode:
              if (pattern103 (x3, SImode) != 0
                  || !
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))
                return -1;
              return 1003; /* pro_epilogue_adjust_stack_si_sub */

            case DImode:
              if (pattern103 (x3, DImode) != 0
                  || !
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))
                return -1;
              return 1004; /* pro_epilogue_adjust_stack_di_sub */

            default:
              return -1;
            }

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

        default:
          return -1;
        }

    case CALL:
      x6 = XEXP (x2, 0);
      if (GET_CODE (x6) != MEM
          || GET_MODE (x6) != QImode
          || pattern156 (x1) != 0)
        return -1;
      x24 = XEXP (x6, 0);
      operands[0] = x24;
      if (!memory_operand (operands[0], SImode))
        return -1;
      x3 = XEXP (x2, 1);
      operands[1] = x3;
      x4 = XVECEXP (x1, 0, 1);
      x18 = XEXP (x4, 1);
      x21 = XEXP (x18, 1);
      operands[2] = x21;
      if (!immediate_operand (operands[2], SImode)
          || !
#line 12108 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT))
        return -1;
      return 684; /* *sibcall_pop_memory */

    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, x16, x17;
  rtx x18, x19, x20, x21, x22, x23;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XVECEXP (x1, 0, 3);
  if (GET_CODE (x3) != CLOBBER)
    return -1;
  x4 = XEXP (x2, 1);
  switch (GET_CODE (x4))
    {
    case UNSIGNED_FIX:
      switch (pattern158 (x1))
        {
        case 0:
          if (!
#line 4777 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_SSE2 && TARGET_SSE_MATH
   && optimize_function_for_speed_p (cfun)))
            return -1;
          return 171; /* *fixuns_truncsf_1 */

        case 1:
          if (!
#line 4777 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_SSE2 && TARGET_SSE_MATH
   && optimize_function_for_speed_p (cfun)))
            return -1;
          return 172; /* *fixuns_truncdf_1 */

        default:
          return -1;
        }

    case FIX:
      x5 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x5) != USE)
        return -1;
      x6 = XVECEXP (x1, 0, 2);
      if (GET_CODE (x6) != USE)
        return -1;
      x7 = XEXP (x2, 0);
      operands[0] = x7;
      x8 = XEXP (x4, 0);
      operands[1] = x8;
      if (!register_operand (operands[1], VOIDmode))
        return -1;
      switch (pattern292 (x1, pnum_clobbers))
        {
        case 0:
          if (!
#line 4946 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(X87_FLOAT_MODE_P (GET_MODE (operands[1]))
   && !TARGET_FISTTP
   && !(TARGET_64BIT && SSE_FLOAT_MODE_P (GET_MODE (operands[1])))))
            return -1;
          return 189; /* fix_truncdi_i387 */

        case 1:
          if (!
#line 4961 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(X87_FLOAT_MODE_P (GET_MODE (operands[1]))
   && !TARGET_FISTTP
   && !(TARGET_64BIT && SSE_FLOAT_MODE_P (GET_MODE (operands[1])))))
            return -1;
          *pnum_clobbers = 1;
          return 190; /* fix_truncdi_i387_with_temp */

        case 2:
          if (!
#line 5015 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(X87_FLOAT_MODE_P (GET_MODE (operands[1]))
   && !TARGET_FISTTP
   && !SSE_FLOAT_MODE_P (GET_MODE (operands[1]))))
            return -1;
          return 193; /* fix_trunchi_i387_with_temp */

        case 3:
          if (!
#line 5015 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(X87_FLOAT_MODE_P (GET_MODE (operands[1]))
   && !TARGET_FISTTP
   && !SSE_FLOAT_MODE_P (GET_MODE (operands[1]))))
            return -1;
          return 194; /* fix_truncsi_i387_with_temp */

        default:
          return -1;
        }

    case FLOAT:
      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 (x2, 0);
      operands[0] = x7;
      x8 = XEXP (x4, 0);
      operands[1] = x8;
      if (!nonimmediate_operand (operands[1], DImode))
        return -1;
      x9 = XEXP (x5, 0);
      operands[3] = x9;
      if (!scratch_operand (operands[3], V4SImode))
        return -1;
      x10 = XEXP (x6, 0);
      operands[4] = x10;
      if (!scratch_operand (operands[4], V4SImode))
        return -1;
      x11 = XEXP (x3, 0);
      operands[2] = x11;
      if (!memory_operand (operands[2], DImode))
        return -1;
      switch (pattern106 (x4))
        {
        case 0:
          if (!
#line 5291 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && X87_ENABLE_FLOAT (SFmode, DImode)
   && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_TO_VEC
   && !TARGET_64BIT && optimize_function_for_speed_p (cfun)))
            return -1;
          return 210; /* floatdisf2_i387_with_xmm */

        case 1:
          if (!
#line 5291 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && X87_ENABLE_FLOAT (DFmode, DImode)
   && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_TO_VEC
   && !TARGET_64BIT && optimize_function_for_speed_p (cfun)))
            return -1;
          return 211; /* floatdidf2_i387_with_xmm */

        case 2:
          if (!
#line 5291 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && X87_ENABLE_FLOAT (XFmode, DImode)
   && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_TO_VEC
   && !TARGET_64BIT && optimize_function_for_speed_p (cfun)))
            return -1;
          return 212; /* floatdixf2_i387_with_xmm */

        default:
          return -1;
        }

    case DIV:
      switch (pattern163 (x1, MOD))
        {
        case 0:
          return 347; /* divmodsi4_1 */

        case 1:
          if (!
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
            return -1;
          return 348; /* divmoddi4_1 */

        case 2:
          if (!
#line 1017 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_HIMODE_MATH))
            return -1;
          return 352; /* *divmodhi4_noext */

        case 3:
          return 353; /* *divmodsi4_noext */

        case 4:
          if (!
#line 1018 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
            return -1;
          return 354; /* *divmoddi4_noext */

        default:
          return -1;
        }

    case UDIV:
      switch (pattern163 (x1, UMOD))
        {
        case 0:
          return 356; /* udivmodsi4_1 */

        case 1:
          if (!
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
            return -1;
          return 357; /* udivmoddi4_1 */

        case 2:
          if (!
#line 1017 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_HIMODE_MATH))
            return -1;
          return 363; /* *udivmodhi4_noext */

        case 3:
          return 364; /* *udivmodsi4_noext */

        case 4:
          if (!
#line 1018 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
            return -1;
          return 365; /* *udivmoddi4_noext */

        default:
          return -1;
        }

    case IF_THEN_ELSE:
      switch (pattern164 (x1))
        {
        case 0:
          x8 = XEXP (x4, 0);
          x12 = XEXP (x8, 1);
          operands[2] = x12;
          x11 = XEXP (x3, 0);
          operands[4] = x11;
          switch (GET_CODE (operands[2]))
            {
            case CONST_INT:
            case CONST_WIDE_INT:
            case CONST_DOUBLE:
            case CONST_VECTOR:
              if (!ix86_fp_comparison_operator (operands[0], CCFPmode))
                return -1;
              x13 = XEXP (x4, 1);
              switch (GET_CODE (x13))
                {
                case LABEL_REF:
                  x14 = XEXP (x4, 2);
                  if (GET_CODE (x14) != PC)
                    return -1;
                  x15 = XEXP (x13, 0);
                  operands[3] = x15;
                  switch (pattern910 ())
                    {
                    case 0:
                      if (!
#line 11594 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE))
                        return -1;
                      return 639; /* *jccsf_0_i387 */

                    case 1:
                      if (!
#line 11594 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE))
                        return -1;
                      return 640; /* *jccdf_0_i387 */

                    case 2:
                      if (!
#line 11594 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE))
                        return -1;
                      return 641; /* *jccxf_0_i387 */

                    default:
                      return -1;
                    }

                case PC:
                  x14 = XEXP (x4, 2);
                  if (GET_CODE (x14) != LABEL_REF)
                    return -1;
                  x16 = XEXP (x14, 0);
                  operands[3] = x16;
                  switch (pattern910 ())
                    {
                    case 0:
                      if (!
#line 11607 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE))
                        return -1;
                      return 642; /* *jccsf_0_r_i387 */

                    case 1:
                      if (!
#line 11607 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE))
                        return -1;
                      return 643; /* *jccdf_0_r_i387 */

                    case 2:
                      if (!
#line 11607 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE))
                        return -1;
                      return 644; /* *jccxf_0_r_i387 */

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            case REG:
            case SUBREG:
            case MEM:
              x13 = XEXP (x4, 1);
              switch (GET_CODE (x13))
                {
                case LABEL_REF:
                  x14 = XEXP (x4, 2);
                  if (GET_CODE (x14) != PC)
                    return -1;
                  x15 = XEXP (x13, 0);
                  operands[3] = x15;
                  switch (pattern903 ())
                    {
                    case 0:
                      if (!
#line 11620 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE))
                        return -1;
                      return 645; /* *jccxf_i387 */

                    case 1:
                      if (!
#line 11646 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE))
                        return -1;
                      return 647; /* *jccsf_i387 */

                    case 2:
                      if (!
#line 11646 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE))
                        return -1;
                      return 648; /* *jccdf_i387 */

                    case 3:
                      if (!
#line 11672 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE))
                        return -1;
                      return 651; /* *jccusf_i387 */

                    case 4:
                      if (!
#line 11672 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE))
                        return -1;
                      return 652; /* *jccudf_i387 */

                    case 5:
                      if (!
#line 11672 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE))
                        return -1;
                      return 653; /* *jccuxf_i387 */

                    default:
                      return -1;
                    }

                case PC:
                  x14 = XEXP (x4, 2);
                  if (GET_CODE (x14) != LABEL_REF)
                    return -1;
                  x16 = XEXP (x14, 0);
                  operands[3] = x16;
                  switch (pattern903 ())
                    {
                    case 0:
                      if (!
#line 11633 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE))
                        return -1;
                      return 646; /* *jccxf_r_i387 */

                    case 1:
                      if (!
#line 11659 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE))
                        return -1;
                      return 649; /* *jccsf_r_i387 */

                    case 2:
                      if (!
#line 11659 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE))
                        return -1;
                      return 650; /* *jccdf_r_i387 */

                    case 3:
                      if (!
#line 11685 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE))
                        return -1;
                      return 654; /* *jccusf_r_i387 */

                    case 4:
                      if (!
#line 11685 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE))
                        return -1;
                      return 655; /* *jccudf_r_i387 */

                    case 5:
                      if (!
#line 11685 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE))
                        return -1;
                      return 656; /* *jccuxf_r_i387 */

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case 1:
          if (!ix86_swapped_fp_comparison_operator (operands[0], CCFPmode))
            return -1;
          x8 = XEXP (x4, 0);
          x17 = XEXP (x8, 0);
          x18 = XEXP (x17, 0);
          operands[2] = x18;
          x12 = XEXP (x8, 1);
          operands[3] = x12;
          x11 = XEXP (x3, 0);
          operands[5] = x11;
          x13 = XEXP (x4, 1);
          switch (GET_CODE (x13))
            {
            case LABEL_REF:
              x14 = XEXP (x4, 2);
              if (GET_CODE (x14) != PC)
                return -1;
              x15 = XEXP (x13, 0);
              operands[4] = x15;
              switch (GET_MODE (operands[1]))
                {
                case SFmode:
                  switch (pattern917 (SFmode))
                    {
                    case 0:
                      if (!
#line 11742 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE
   && (TARGET_USE_HIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                        return -1;
                      return 657; /* *jccsf_hi_i387 */

                    case 1:
                      if (!
#line 11742 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE
   && (TARGET_USE_SIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                        return -1;
                      return 660; /* *jccsf_si_i387 */

                    default:
                      return -1;
                    }

                case DFmode:
                  switch (pattern917 (DFmode))
                    {
                    case 0:
                      if (!
#line 11742 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE
   && (TARGET_USE_HIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                        return -1;
                      return 658; /* *jccdf_hi_i387 */

                    case 1:
                      if (!
#line 11742 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE
   && (TARGET_USE_SIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                        return -1;
                      return 661; /* *jccdf_si_i387 */

                    default:
                      return -1;
                    }

                case XFmode:
                  switch (pattern917 (XFmode))
                    {
                    case 0:
                      if (!
#line 11742 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE
   && (TARGET_USE_HIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                        return -1;
                      return 659; /* *jccxf_hi_i387 */

                    case 1:
                      if (!
#line 11742 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE
   && (TARGET_USE_SIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                        return -1;
                      return 662; /* *jccxf_si_i387 */

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            case PC:
              x14 = XEXP (x4, 2);
              if (GET_CODE (x14) != LABEL_REF)
                return -1;
              x16 = XEXP (x14, 0);
              operands[4] = x16;
              switch (GET_MODE (operands[1]))
                {
                case SFmode:
                  switch (pattern917 (SFmode))
                    {
                    case 0:
                      if (!
#line 11759 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE
   && (TARGET_USE_HIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                        return -1;
                      return 663; /* *jccsf_hi_r_i387 */

                    case 1:
                      if (!
#line 11759 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE
   && (TARGET_USE_SIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                        return -1;
                      return 666; /* *jccsf_si_r_i387 */

                    default:
                      return -1;
                    }

                case DFmode:
                  switch (pattern917 (DFmode))
                    {
                    case 0:
                      if (!
#line 11759 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE
   && (TARGET_USE_HIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                        return -1;
                      return 664; /* *jccdf_hi_r_i387 */

                    case 1:
                      if (!
#line 11759 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE
   && (TARGET_USE_SIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                        return -1;
                      return 667; /* *jccdf_si_r_i387 */

                    default:
                      return -1;
                    }

                case XFmode:
                  switch (pattern917 (XFmode))
                    {
                    case 0:
                      if (!
#line 11759 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE
   && (TARGET_USE_HIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                        return -1;
                      return 665; /* *jccxf_hi_r_i387 */

                    case 1:
                      if (!
#line 11759 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE
   && (TARGET_USE_SIMODE_FIOP
       || optimize_function_for_size_p (cfun))))
                        return -1;
                      return 668; /* *jccxf_si_r_i387 */

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    case UNSPEC:
      switch (XVECLEN (x4, 0))
        {
        case 1:
          switch (XINT (x4, 1))
            {
            case 27:
              if (pattern291 (x1) != 0
                  || !
#line 13670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(! TARGET_POPCNT))
                return -1;
              return 806; /* paritydi2_cmp */

            case 63:
              switch (pattern293 (x1, pnum_clobbers))
                {
                case 0:
                  if (!
#line 16180 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations))
                    return -1;
                  return 924; /* fistdi2_floor */

                case 1:
                  if (!
#line 16195 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations))
                    return -1;
                  *pnum_clobbers = 1;
                  return 926; /* fistdi2_floor_with_temp */

                case 2:
                  if (!
#line 16253 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations))
                    return -1;
                  return 932; /* fisthi2_floor_with_temp */

                case 3:
                  if (!
#line 16253 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations))
                    return -1;
                  return 934; /* fistsi2_floor_with_temp */

                default:
                  return -1;
                }

            case 64:
              switch (pattern293 (x1, pnum_clobbers))
                {
                case 0:
                  if (!
#line 16180 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations))
                    return -1;
                  return 925; /* fistdi2_ceil */

                case 1:
                  if (!
#line 16195 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations))
                    return -1;
                  *pnum_clobbers = 1;
                  return 927; /* fistdi2_ceil_with_temp */

                case 2:
                  if (!
#line 16253 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations))
                    return -1;
                  return 933; /* fisthi2_ceil_with_temp */

                case 3:
                  if (!
#line 16253 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations))
                    return -1;
                  return 935; /* fistsi2_ceil_with_temp */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case 4:
          if (XINT (x4, 1) != 20
              || pattern286 (x4) != 0
              || pattern517 (x1) != 0
              || !tls_symbolic_operand (operands[2], VOIDmode))
            return -1;
          x19 = XVECEXP (x4, 0, 2);
          operands[3] = x19;
          if (!constant_call_address_operand (operands[3], VOIDmode))
            return -1;
          x5 = XVECEXP (x1, 0, 1);
          x9 = XEXP (x5, 0);
          operands[4] = x9;
          if (!scratch_operand (operands[4], SImode))
            return -1;
          x6 = XVECEXP (x1, 0, 2);
          x10 = XEXP (x6, 0);
          operands[5] = x10;
          if (!scratch_operand (operands[5], SImode)
              || !
#line 13745 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_GNU_TLS))
            return -1;
          return 809; /* *tls_global_dynamic_32_gnu */

        case 3:
          if (XINT (x4, 1) != 21
              || pattern287 (x4, SImode) != 0
              || pattern517 (x1) != 0
              || !constant_call_address_operand (operands[2], VOIDmode))
            return -1;
          x5 = XVECEXP (x1, 0, 1);
          x9 = XEXP (x5, 0);
          operands[3] = x9;
          if (!scratch_operand (operands[3], SImode))
            return -1;
          x6 = XVECEXP (x1, 0, 2);
          x10 = XEXP (x6, 0);
          operands[4] = x10;
          if (!scratch_operand (operands[4], SImode)
              || !
#line 13843 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_GNU_TLS))
            return -1;
          return 812; /* *tls_local_dynamic_base_32_gnu */

        default:
          return -1;
        }

    case PLUS:
      if (pattern165 (x1) != 0)
        return -1;
      return 815; /* *tls_local_dynamic_32_once */

    case UNSPEC_VOLATILE:
      if (XVECLEN (x4, 0) != 1
          || XINT (x4, 1) != 2)
        return -1;
      x5 = XVECEXP (x1, 0, 1);
      if (pattern294 (x5, 7, MINUS) != 0)
        return -1;
      x6 = XVECEXP (x1, 0, 2);
      if (pattern251 (x6, CCmode) != 0)
        return -1;
      x11 = XEXP (x3, 0);
      if (GET_CODE (x11) != MEM
          || GET_MODE (x11) != BLKmode)
        return -1;
      x20 = XEXP (x11, 0);
      if (GET_CODE (x20) != SCRATCH)
        return -1;
      x7 = XEXP (x2, 0);
      operands[0] = x7;
      x21 = XVECEXP (x4, 0, 0);
      operands[1] = x21;
      x22 = XEXP (x5, 1);
      x23 = XEXP (x22, 1);
      operands[2] = x23;
      switch (GET_MODE (operands[0]))
        {
        case SImode:
          if (pattern888 (x1, SImode) != 0
              || !
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))
            return -1;
          return 1007; /* adjust_stack_and_probesi */

        case DImode:
          if (pattern888 (x1, DImode) != 0
              || !
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))
            return -1;
          return 1008; /* adjust_stack_and_probedi */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_250 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24, x25;
  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 FIX:
      if (GET_MODE (x3) != DImode)
        return -1;
      x4 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x4) != USE)
        return -1;
      x5 = XVECEXP (x1, 0, 2);
      if (GET_CODE (x5) != USE)
        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 (x2, 0);
      operands[0] = x8;
      if (!nonimmediate_operand (operands[0], DImode))
        return -1;
      x9 = XEXP (x3, 0);
      operands[1] = x9;
      if (!register_operand (operands[1], VOIDmode)
          || pattern425 (x1, XFmode) != 0
          || !
#line 4961 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(X87_FLOAT_MODE_P (GET_MODE (operands[1]))
   && !TARGET_FISTTP
   && !(TARGET_64BIT && SSE_FLOAT_MODE_P (GET_MODE (operands[1])))))
        return -1;
      return 190; /* fix_truncdi_i387_with_temp */

    case UNSPEC:
      if (XVECLEN (x3, 0) != 1
          || pattern28 (x1) != 0
          || !nonimmediate_operand (operands[0], DImode)
          || GET_MODE (x3) != DImode)
        return -1;
      x10 = XVECEXP (x3, 0, 0);
      operands[1] = x10;
      if (!register_operand (operands[1], XFmode)
          || pattern425 (x1, XFmode) != 0)
        return -1;
      switch (XINT (x3, 1))
        {
        case 63:
          if (!
#line 16195 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations))
            return -1;
          return 926; /* fistdi2_floor_with_temp */

        case 64:
          if (!
#line 16195 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations))
            return -1;
          return 927; /* fistdi2_ceil_with_temp */

        default:
          return -1;
        }

    case CONST_INT:
      if (XWINT (x3, 0) != 0LL)
        return -1;
      x4 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x4) != SET)
        return -1;
      x11 = XEXP (x4, 1);
      if (GET_CODE (x11) != PLUS)
        return -1;
      x5 = XVECEXP (x1, 0, 2);
      if (GET_CODE (x5) != SET)
        return -1;
      x7 = XVECEXP (x1, 0, 4);
      if (GET_CODE (x7) != USE)
        return -1;
      x12 = XEXP (x4, 0);
      operands[0] = x12;
      x13 = XEXP (x11, 0);
      switch (GET_CODE (x13))
        {
        case ASHIFT:
          x14 = XEXP (x13, 1);
          if (GET_CODE (x14) != CONST_INT)
            return -1;
          x15 = XEXP (x11, 1);
          operands[3] = x15;
          switch (XWINT (x14, 0))
            {
            case 3LL:
              switch (pattern660 (x1, 3, DImode))
                {
                case 0:
                  if (!(
#line 16646 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT
   && !(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])
   && ix86_check_no_addr_space (insn)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 951; /* *rep_movdi_rex64 */

                case 1:
                  if (!(
#line 16646 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT
   && !(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])
   && ix86_check_no_addr_space (insn)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 952; /* *rep_movdi_rex64 */

                case 2:
                  if (!(
#line 16839 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT
   && !(fixed_regs[AX_REG] || fixed_regs[CX_REG] || fixed_regs[DI_REG])
   && ix86_check_no_addr_space (insn)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 965; /* *rep_stosdi_rex64 */

                case 3:
                  if (!(
#line 16839 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT
   && !(fixed_regs[AX_REG] || fixed_regs[CX_REG] || fixed_regs[DI_REG])
   && ix86_check_no_addr_space (insn)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 966; /* *rep_stosdi_rex64 */

                default:
                  return -1;
                }

            case 2LL:
              switch (pattern660 (x1, 2, SImode))
                {
                case 0:
                  if (!(
#line 16667 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])
   && ix86_check_no_addr_space (insn)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 953; /* *rep_movsi */

                case 1:
                  if (!(
#line 16667 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])
   && ix86_check_no_addr_space (insn)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 954; /* *rep_movsi */

                case 2:
                  if (!(
#line 16858 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(fixed_regs[AX_REG] || fixed_regs[CX_REG] || fixed_regs[DI_REG])
   && ix86_check_no_addr_space (insn)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 967; /* *rep_stossi */

                case 3:
                  if (!(
#line 16858 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(fixed_regs[AX_REG] || fixed_regs[CX_REG] || fixed_regs[DI_REG])
   && ix86_check_no_addr_space (insn)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 968; /* *rep_stossi */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case REG:
        case SUBREG:
          operands[3] = x13;
          x16 = XEXP (x5, 1);
          switch (GET_CODE (x16))
            {
            case PLUS:
              x6 = XVECEXP (x1, 0, 3);
              if (GET_CODE (x6) != SET)
                return -1;
              x17 = XEXP (x6, 1);
              if (GET_CODE (x17) != MEM
                  || GET_MODE (x17) != BLKmode)
                return -1;
              x18 = XEXP (x6, 0);
              if (GET_CODE (x18) != MEM
                  || GET_MODE (x18) != BLKmode)
                return -1;
              x8 = XEXP (x2, 0);
              operands[2] = x8;
              x15 = XEXP (x11, 1);
              operands[5] = x15;
              x19 = XEXP (x5, 0);
              operands[1] = x19;
              x20 = XEXP (x16, 0);
              operands[4] = x20;
              x21 = XEXP (x16, 1);
              if (!rtx_equal_p (x21, operands[5]))
                return -1;
              x22 = XEXP (x17, 0);
              if (!rtx_equal_p (x22, operands[4]))
                return -1;
              x23 = XEXP (x18, 0);
              if (!rtx_equal_p (x23, operands[3]))
                return -1;
              x24 = XEXP (x7, 0);
              if (!rtx_equal_p (x24, operands[5]))
                return -1;
              switch (GET_MODE (operands[2]))
                {
                case SImode:
                  if (pattern918 (x1, SImode) != 0
                      || !(
#line 16685 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])
   && ix86_check_no_addr_space (insn)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 955; /* *rep_movqi */

                case DImode:
                  if (pattern918 (x1, DImode) != 0
                      || !(
#line 16685 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])
   && ix86_check_no_addr_space (insn)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 956; /* *rep_movqi */

                default:
                  return -1;
                }

            case CONST_INT:
              if (XWINT (x16, 0) != 0LL)
                return -1;
              x19 = XEXP (x5, 0);
              if (GET_CODE (x19) != MEM
                  || GET_MODE (x19) != BLKmode)
                return -1;
              x6 = XVECEXP (x1, 0, 3);
              if (GET_CODE (x6) != USE)
                return -1;
              x8 = XEXP (x2, 0);
              operands[1] = x8;
              x15 = XEXP (x11, 1);
              operands[4] = x15;
              x18 = XEXP (x6, 0);
              operands[2] = x18;
              if (!register_operand (operands[2], QImode))
                return -1;
              x25 = XEXP (x19, 0);
              if (!rtx_equal_p (x25, operands[3]))
                return -1;
              x24 = XEXP (x7, 0);
              if (!rtx_equal_p (x24, operands[4]))
                return -1;
              switch (GET_MODE (operands[1]))
                {
                case SImode:
                  if (pattern889 (x11, SImode) != 0
                      || !(
#line 16875 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(fixed_regs[AX_REG] || fixed_regs[CX_REG] || fixed_regs[DI_REG])
   && ix86_check_no_addr_space (insn)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 969; /* *rep_stosqi */

                case DImode:
                  if (pattern889 (x11, DImode) != 0
                      || !(
#line 16875 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(fixed_regs[AX_REG] || fixed_regs[CX_REG] || fixed_regs[DI_REG])
   && ix86_check_no_addr_space (insn)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 970; /* *rep_stosqi */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_251 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16;
  int res ATTRIBUTE_UNUSED;
  if (pattern16 (x1) != 0)
    return -1;
  x2 = XVECEXP (x1, 0, 4);
  x3 = XEXP (x2, 0);
  operands[1] = x3;
  x4 = XVECEXP (x1, 0, 5);
  x5 = XEXP (x4, 0);
  operands[2] = x5;
  switch (pattern686 (x1))
    {
    case 0:
      x6 = XVECEXP (x1, 0, 0);
      x7 = XEXP (x6, 1);
      x8 = XEXP (x7, 1);
      x9 = XEXP (x8, 0);
      operands[5] = x9;
      x10 = XVECEXP (x1, 0, 1);
      x11 = XEXP (x10, 0);
      operands[6] = x11;
      x12 = XVECEXP (x1, 0, 2);
      x13 = XEXP (x12, 0);
      operands[3] = x13;
      if (!immediate_operand (operands[3], SImode))
        return -1;
      switch (GET_MODE (operands[4]))
        {
        case SImode:
          if (pattern911 (SImode) != 0
              || !(
#line 16997 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])
   && ix86_check_no_addr_space (insn)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
            return -1;
          return 971; /* *cmpstrnqi_nz_1 */

        case DImode:
          if (pattern911 (DImode) != 0
              || !(
#line 16997 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])
   && ix86_check_no_addr_space (insn)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
            return -1;
          return 972; /* *cmpstrnqi_nz_1 */

        default:
          return -1;
        }

    case 1:
      x6 = XVECEXP (x1, 0, 0);
      x7 = XEXP (x6, 1);
      x8 = XEXP (x7, 1);
      x9 = XEXP (x8, 0);
      x14 = XEXP (x9, 0);
      operands[4] = x14;
      x15 = XEXP (x8, 1);
      x16 = XEXP (x15, 0);
      operands[5] = x16;
      x10 = XVECEXP (x1, 0, 1);
      x11 = XEXP (x10, 0);
      operands[3] = x11;
      if (!immediate_operand (operands[3], SImode))
        return -1;
      switch (GET_MODE (operands[6]))
        {
        case SImode:
          if (pattern941 (SImode) != 0
              || !(
#line 17038 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])
   && ix86_check_no_addr_space (insn)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
            return -1;
          return 973; /* *cmpstrnqi_1 */

        case DImode:
          if (pattern941 (DImode) != 0
              || !(
#line 17038 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])
   && ix86_check_no_addr_space (insn)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
            return -1;
          return 974; /* *cmpstrnqi_1 */

        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;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != UNSPEC_VOLATILE
      || XVECLEN (x3, 0) != 1
      || XINT (x3, 1) != 35
      || GET_MODE (x3) != BLKmode)
    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) != CLOBBER)
    return -1;
  x6 = XEXP (x5, 0);
  if (GET_CODE (x6) != REG
      || REGNO (x6) != 19
      || pattern350 (x1, 10, 9, XFmode, 8, HImode) != 0
      || pattern820 (x1, 15, 14, 13, 12, 11) != 0)
    return -1;
  x7 = XEXP (x2, 0);
  operands[0] = x7;
  if (!memory_operand (operands[0], BLKmode)
      || !
#line 19145 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
    return -1;
  return 1055; /* fnstenv */
}

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;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_CODE (x2) != UNSPEC_VOLATILE
      || XVECLEN (x2, 0) != 1
      || XINT (x2, 1) != 36)
    return -1;
  x3 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x3) != CLOBBER)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != REG
      || REGNO (x4) != 18
      || pattern350 (x1, 9, 8, HImode, 19, CCFPmode) != 0
      || pattern820 (x1, 14, 13, 12, 11, 10) != 0)
    return -1;
  x5 = XVECEXP (x1, 0, 10);
  if (GET_CODE (x5) != CLOBBER)
    return -1;
  x6 = XEXP (x5, 0);
  if (GET_CODE (x6) != REG
      || REGNO (x6) != 15
      || GET_MODE (x6) != XFmode)
    return -1;
  x7 = XVECEXP (x2, 0, 0);
  operands[0] = x7;
  if (!memory_operand (operands[0], BLKmode)
      || !
#line 19165 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
    return -1;
  return 1056; /* fldenv */
}

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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    case COMPARE:
      res = recog_1 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

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

    case CONST_INT:
    case CONST_WIDE_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:
      res = recog_40 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    case POPCOUNT:
      if (pattern6 (x1, pnum_clobbers, HImode) == 0
          && 
#line 13530 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_POPCNT))
        {
          *pnum_clobbers = 1;
          return 797; /* *popcounthi2 */
        }
      break;

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

    case PLUS:
    case MINUS:
    case MULT:
    case DIV:
      res = recog_70 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

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

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

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

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

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

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

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

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

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

    case US_PLUS:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      switch (pattern24 (x2))
        {
        case 0:
          if (
#line 703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX && ix86_binary_operator_ok (US_PLUS, V8QImode, operands)))
            return 1153; /* *mmx_usaddv8qi3 */
          break;

        case 1:
          if (
#line 703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX && ix86_binary_operator_ok (US_PLUS, V4HImode, operands)))
            return 1157; /* *mmx_usaddv4hi3 */
          break;

        case 2:
          if ((
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1
   && ix86_binary_operator_ok (US_PLUS, V64QImode, operands)) && 
#line 381 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return 3036; /* *avx512bw_usaddv64qi3 */
          break;

        case 3:
          if ((
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1
   && ix86_binary_operator_ok (US_PLUS, V32QImode, operands)) && 
#line 381 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
            return 3044; /* *avx2_usaddv32qi3 */
          break;

        case 4:
          if (
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1
   && ix86_binary_operator_ok (US_PLUS, V16QImode, operands)))
            return 3052; /* *sse2_usaddv16qi3 */
          break;

        case 5:
          if ((
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1
   && ix86_binary_operator_ok (US_PLUS, V32HImode, operands)) && 
#line 382 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return 3060; /* *avx512bw_usaddv32hi3 */
          break;

        case 6:
          if ((
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1
   && ix86_binary_operator_ok (US_PLUS, V16HImode, operands)) && 
#line 382 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
            return 3068; /* *avx2_usaddv16hi3 */
          break;

        case 7:
          if (
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1
   && ix86_binary_operator_ok (US_PLUS, V8HImode, operands)))
            return 3076; /* *sse2_usaddv8hi3 */
          break;

        default:
          break;
        }
      break;

    case SS_MINUS:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      switch (pattern24 (x2))
        {
        case 0:
          if (
#line 703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX && ix86_binary_operator_ok (SS_MINUS, V8QImode, operands)))
            return 1154; /* *mmx_sssubv8qi3 */
          break;

        case 1:
          if (
#line 703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX && ix86_binary_operator_ok (SS_MINUS, V4HImode, operands)))
            return 1158; /* *mmx_sssubv4hi3 */
          break;

        case 2:
          if ((
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1
   && ix86_binary_operator_ok (SS_MINUS, V64QImode, operands)) && 
#line 381 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return 3038; /* *avx512bw_sssubv64qi3 */
          break;

        case 3:
          if ((
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1
   && ix86_binary_operator_ok (SS_MINUS, V32QImode, operands)) && 
#line 381 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
            return 3046; /* *avx2_sssubv32qi3 */
          break;

        case 4:
          if (
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1
   && ix86_binary_operator_ok (SS_MINUS, V16QImode, operands)))
            return 3054; /* *sse2_sssubv16qi3 */
          break;

        case 5:
          if ((
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1
   && ix86_binary_operator_ok (SS_MINUS, V32HImode, operands)) && 
#line 382 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return 3062; /* *avx512bw_sssubv32hi3 */
          break;

        case 6:
          if ((
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1
   && ix86_binary_operator_ok (SS_MINUS, V16HImode, operands)) && 
#line 382 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
            return 3070; /* *avx2_sssubv16hi3 */
          break;

        case 7:
          if (
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1
   && ix86_binary_operator_ok (SS_MINUS, V8HImode, operands)))
            return 3078; /* *sse2_sssubv8hi3 */
          break;

        default:
          break;
        }
      break;

    case US_MINUS:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      switch (pattern24 (x2))
        {
        case 0:
          if (
#line 703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX && ix86_binary_operator_ok (US_MINUS, V8QImode, operands)))
            return 1155; /* *mmx_ussubv8qi3 */
          break;

        case 1:
          if (
#line 703 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX && ix86_binary_operator_ok (US_MINUS, V4HImode, operands)))
            return 1159; /* *mmx_ussubv4hi3 */
          break;

        case 2:
          if ((
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1
   && ix86_binary_operator_ok (US_MINUS, V64QImode, operands)) && 
#line 381 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return 3040; /* *avx512bw_ussubv64qi3 */
          break;

        case 3:
          if ((
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1
   && ix86_binary_operator_ok (US_MINUS, V32QImode, operands)) && 
#line 381 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
            return 3048; /* *avx2_ussubv32qi3 */
          break;

        case 4:
          if (
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1
   && ix86_binary_operator_ok (US_MINUS, V16QImode, operands)))
            return 3056; /* *sse2_ussubv16qi3 */
          break;

        case 5:
          if ((
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1
   && ix86_binary_operator_ok (US_MINUS, V32HImode, operands)) && 
#line 382 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return 3064; /* *avx512bw_ussubv32hi3 */
          break;

        case 6:
          if ((
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1
   && ix86_binary_operator_ok (US_MINUS, V16HImode, operands)) && 
#line 382 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2)))
            return 3072; /* *avx2_ussubv16hi3 */
          break;

        case 7:
          if (
#line 9851 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && 1 && 1
   && ix86_binary_operator_ok (US_MINUS, V8HImode, operands)))
            return 3080; /* *sse2_ussubv8hi3 */
          break;

        default:
          break;
        }
      break;

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

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

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

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

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

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

    case SS_TRUNCATE:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      switch (pattern25 (x2))
        {
        case 0:
          if (
#line 9003 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return 2764; /* *avx512f_ss_truncatev16siv16qi2 */
          break;

        case 1:
          if ((
#line 9076 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 9068 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return 2800; /* *avx512vl_ss_truncatev16hiv16qi2 */
          break;

        case 2:
          if (
#line 9003 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return 2767; /* *avx512f_ss_truncatev16siv16hi2 */
          break;

        case 3:
          if (
#line 9003 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return 2770; /* *avx512f_ss_truncatev8div8si2 */
          break;

        case 4:
          if (
#line 9003 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return 2773; /* *avx512f_ss_truncatev8div8hi2 */
          break;

        case 5:
          if (
#line 9076 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return 2797; /* *avx512vl_ss_truncatev8siv8hi2 */
          break;

        case 6:
          if (
#line 9037 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
            return 2788; /* avx512bw_ss_truncatev32hiv32qi2 */
          break;

        case 7:
          if (
#line 9076 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return 2794; /* *avx512vl_ss_truncatev4div4si2 */
          break;

        default:
          break;
        }
      break;

    case US_TRUNCATE:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      switch (pattern25 (x2))
        {
        case 0:
          if (
#line 9003 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return 2766; /* *avx512f_us_truncatev16siv16qi2 */
          break;

        case 1:
          if ((
#line 9076 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL) && 
#line 9068 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW)))
            return 2802; /* *avx512vl_us_truncatev16hiv16qi2 */
          break;

        case 2:
          if (
#line 9003 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return 2769; /* *avx512f_us_truncatev16siv16hi2 */
          break;

        case 3:
          if (
#line 9003 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return 2772; /* *avx512f_us_truncatev8div8si2 */
          break;

        case 4:
          if (
#line 9003 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return 2775; /* *avx512f_us_truncatev8div8hi2 */
          break;

        case 5:
          if (
#line 9076 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return 2799; /* *avx512vl_us_truncatev8siv8hi2 */
          break;

        case 6:
          if (
#line 9037 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512BW))
            return 2790; /* avx512bw_us_truncatev32hiv32qi2 */
          break;

        case 7:
          if (
#line 9076 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512VL))
            return 2796; /* *avx512vl_us_truncatev4div4si2 */
          break;

        default:
          break;
        }
      break;

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

    default:
      break;
    }
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  operands[1] = x2;
  switch (GET_MODE (operands[0]))
    {
    case SImode:
      if (register_operand (operands[0], SImode)
          && address_no_seg_operand (operands[1], SImode))
        return 216; /* *leasi */
      break;

    case DImode:
      if (register_operand (operands[0], DImode)
          && address_no_seg_operand (operands[1], DImode)
          && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
        return 217; /* *leadi */
      break;

    default:
      break;
    }
  switch (GET_CODE (x2))
    {
    case PLUS:
      return recog_174 (x1, insn, pnum_clobbers);

    case ZERO_EXTEND:
      return recog_171 (x1, insn, pnum_clobbers);

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

    case IOR:
      return recog_177 (x1, insn, pnum_clobbers);

    case XOR:
      return recog_185 (x1, insn, pnum_clobbers);

    case MINUS:
      if (pnum_clobbers == NULL)
        return -1;
      operands[0] = x3;
      x4 = XEXP (x2, 0);
      switch (GET_CODE (x4))
        {
        case REG:
        case SUBREG:
        case MEM:
          switch (pattern138 (x2))
            {
            case 0:
              if ((
#line 6414 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (MINUS, SImode, operands)) && 
#line 1043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT)))
                {
                  *pnum_clobbers = 1;
                  return 259; /* *subdi3_doubleword */
                }
              if (!(
#line 6443 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (MINUS, DImode, operands)) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              *pnum_clobbers = 1;
              return 264; /* *subdi_1 */

            case 1:
              if (!
#line 6443 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (MINUS, SImode, operands)))
                return -1;
              *pnum_clobbers = 1;
              return 263; /* *subsi_1 */

            default:
              return -1;
            }

        case MINUS:
          x5 = XEXP (x4, 1);
          switch (GET_CODE (x5))
            {
            case GE:
            case GT:
            case LE:
            case LT:
            case GTU:
            case LTU:
            case UNEQ:
            case UNGE:
            case UNGT:
            case UNLE:
            case UNLT:
            case LTGT:
              operands[4] = x5;
              x6 = XEXP (x5, 1);
              if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x7 = XEXP (x4, 0);
              operands[1] = x7;
              x8 = XEXP (x5, 0);
              operands[3] = x8;
              if (!flags_reg_operand (operands[3], VOIDmode))
                return -1;
              x9 = XEXP (x2, 1);
              operands[2] = x9;
              switch (GET_MODE (operands[0]))
                {
                case SImode:
                  if (pattern576 (x2, SImode) != 0
                      || !
#line 6676 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (MINUS, SImode, operands)))
                    return -1;
                  *pnum_clobbers = 1;
                  return 294; /* subsi3_carry */

                case DImode:
                  if (pattern576 (x2, DImode) != 0
                      || !(
#line 6676 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (MINUS, DImode, operands)) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                    return -1;
                  *pnum_clobbers = 1;
                  return 295; /* subdi3_carry */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case CONST_INT:
          x9 = XEXP (x2, 1);
          if (GET_CODE (x9) != CLZ)
            return -1;
          x10 = XEXP (x9, 0);
          operands[1] = x10;
          switch (XWINT (x4, 0))
            {
            case 63LL:
              if (pattern342 (x2, DImode) != 0
                  || !
#line 13448 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                return -1;
              *pnum_clobbers = 1;
              return 790; /* bsr_rex64 */

            case 31LL:
              if (pattern342 (x2, SImode) != 0)
                return -1;
              *pnum_clobbers = 1;
              return 791; /* bsr */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case MULT:
      if (pnum_clobbers == NULL)
        return -1;
      operands[0] = x3;
      x4 = XEXP (x2, 0);
      switch (GET_CODE (x4))
        {
        case REG:
        case SUBREG:
        case MEM:
          operands[1] = x4;
          x9 = XEXP (x2, 1);
          operands[2] = x9;
          switch (GET_MODE (operands[0]))
            {
            case SImode:
              if (pattern343 (x2, SImode) != 0
                  || !
#line 6875 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))))
                return -1;
              *pnum_clobbers = 1;
              return 318; /* *mulsi3_1 */

            case DImode:
              if (pattern343 (x2, DImode) != 0
                  || !(
#line 6875 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))) && 
#line 1018 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              *pnum_clobbers = 1;
              return 319; /* *muldi3_1 */

            default:
              return -1;
            }

        case ZERO_EXTEND:
          if (pattern142 (x2, ZERO_EXTEND) != 0
              || !(
#line 7221 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))) && 
#line 1043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT)))
            return -1;
          *pnum_clobbers = 1;
          return 335; /* *umulsidi3_1 */

        case SIGN_EXTEND:
          if (pattern142 (x2, SIGN_EXTEND) != 0
              || !(
#line 7272 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))) && 
#line 1043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT)))
            return -1;
          *pnum_clobbers = 1;
          return 337; /* *mulsidi3_1 */

        default:
          return -1;
        }

    case TRUNCATE:
      if (pnum_clobbers == NULL)
        return -1;
      x4 = XEXP (x2, 0);
      if (GET_CODE (x4) != LSHIFTRT)
        return -1;
      x7 = XEXP (x4, 0);
      if (GET_CODE (x7) != MULT)
        return -1;
      x5 = XEXP (x4, 1);
      if (GET_CODE (x5) != CONST_INT)
        return -1;
      operands[0] = x3;
      x11 = XEXP (x7, 0);
      switch (GET_CODE (x11))
        {
        case SIGN_EXTEND:
          switch (pattern344 (x2, SIGN_EXTEND))
            {
            case 0:
              if (!
#line 7332 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                return -1;
              *pnum_clobbers = 2;
              return 341; /* *smuldi3_highpart_1 */

            case 1:
              if (!
#line 7357 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))))
                return -1;
              *pnum_clobbers = 2;
              return 343; /* *smulsi3_highpart_1 */

            default:
              return -1;
            }

        case ZERO_EXTEND:
          switch (pattern344 (x2, ZERO_EXTEND))
            {
            case 0:
              if (!
#line 7332 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT
   && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
                return -1;
              *pnum_clobbers = 2;
              return 342; /* *umuldi3_highpart_1 */

            case 1:
              if (!
#line 7357 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(MEM_P (operands[1]) && MEM_P (operands[2]))))
                return -1;
              *pnum_clobbers = 2;
              return 344; /* *umulsi3_highpart_1 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case AND:
      return recog_175 (x1, insn, pnum_clobbers);

    case NOT:
      operands[0] = x3;
      x4 = XEXP (x2, 0);
      switch (GET_CODE (x4))
        {
        case XOR:
          if (pnum_clobbers == NULL)
            return -1;
          x7 = XEXP (x4, 0);
          operands[1] = x7;
          x5 = XEXP (x4, 1);
          operands[2] = x5;
          switch (GET_MODE (operands[0]))
            {
            case SImode:
              if (pattern319 (x2, SImode) != 0
                  || !
#line 8893 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512BW))
                return -1;
              *pnum_clobbers = 1;
              return 437; /* kxnorsi */

            case DImode:
              if (pattern319 (x2, DImode) != 0
                  || !
#line 8893 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512BW))
                return -1;
              *pnum_clobbers = 1;
              return 438; /* kxnordi */

            default:
              return -1;
            }

        case REG:
        case SUBREG:
        case MEM:
          operands[1] = x4;
          switch (pattern143 (x2))
            {
            case 0:
              if (!
#line 9570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_unary_operator_ok (NOT, SImode, operands)))
                return -1;
              return 505; /* *one_cmplsi2_1 */

            case 1:
              if (!(
#line 9570 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_unary_operator_ok (NOT, DImode, operands)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              return 506; /* *one_cmpldi2_1 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case NEG:
      if (pnum_clobbers == NULL)
        return -1;
      operands[0] = x3;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      switch (GET_CODE (operands[1]))
        {
        case REG:
        case SUBREG:
        case MEM:
          switch (GET_MODE (operands[0]))
            {
            case DImode:
              if (!nonimmediate_operand (operands[0], DImode)
                  || GET_MODE (x2) != DImode
                  || !nonimmediate_operand (operands[1], DImode))
                return -1;
              if ((
#line 9191 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_unary_operator_ok (NEG, DImode, operands)) && 
#line 1043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT)))
                {
                  *pnum_clobbers = 1;
                  return 465; /* *negdi2_doubleword */
                }
              if (!(
#line 9214 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_unary_operator_ok (NEG, DImode, operands)) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return -1;
              *pnum_clobbers = 1;
              return 470; /* *negdi2_1 */

            case SImode:
              if (!nonimmediate_operand (operands[0], SImode)
                  || GET_MODE (x2) != SImode
                  || !nonimmediate_operand (operands[1], SImode)
                  || !
#line 9214 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_unary_operator_ok (NEG, SImode, operands)))
                return -1;
              *pnum_clobbers = 1;
              return 469; /* *negsi2_1 */

            default:
              return -1;
            }

        case GE:
        case GT:
        case LE:
        case LT:
        case GTU:
        case LTU:
        case UNEQ:
        case UNGE:
        case UNGT:
        case UNLE:
        case UNLT:
        case LTGT:
          if (!ix86_carry_flag_operator (operands[1], VOIDmode))
            return -1;
          x7 = XEXP (x4, 0);
          if (GET_CODE (x7) != REG
              || REGNO (x7) != 17)
            return -1;
          x5 = XEXP (x4, 1);
          if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          switch (pattern26 (x2))
            {
            case 0:
              *pnum_clobbers = 1;
              return 981; /* *x86_movsicc_0_m1_neg */

            case 1:
              if (!
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
                return -1;
              *pnum_clobbers = 1;
              return 982; /* *x86_movdicc_0_m1_neg */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case LSHIFTRT:
      return recog_182 (x1, insn, pnum_clobbers);

    case ASHIFT:
      return recog_190 (x1, insn, pnum_clobbers);

    case ASHIFTRT:
      return recog_186 (x1, insn, pnum_clobbers);

    case ROTATE:
      if (pnum_clobbers == NULL)
        return -1;
      operands[0] = x3;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      x9 = XEXP (x2, 1);
      switch (GET_CODE (x9))
        {
        case SUBREG:
          switch (pattern220 (x2))
            {
            case 0:
              if (
#line 10798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ROTATE, SImode, operands)
   && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
      == GET_MODE_BITSIZE (SImode)-1))
                {
                  *pnum_clobbers = 1;
                  return 596; /* *rotlsi3_mask */
                }
              break;

            case 1:
              if ((
#line 10798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ROTATE, DImode, operands)
   && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
      == GET_MODE_BITSIZE (DImode)-1) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                {
                  *pnum_clobbers = 1;
                  return 598; /* *rotldi3_mask */
                }
              break;

            default:
              break;
            }
          break;

        case CONST_INT:
          operands[2] = x9;
          if (const_1_to_31_operand (operands[2], QImode)
              && register_operand (operands[0], DImode)
              && GET_MODE (x2) == DImode
              && register_operand (operands[1], DImode)
              && 
#line 1043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT))
            {
              *pnum_clobbers = 2;
              return 600; /* ix86_rotldi3_doubleword */
            }
          break;

        default:
          break;
        }
      operands[2] = x9;
      if (!nonmemory_operand (operands[2], QImode))
        return -1;
      switch (pattern143 (x2))
        {
        case 0:
          if (!
#line 10881 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ROTATE, SImode, operands)))
            return -1;
          *pnum_clobbers = 1;
          return 606; /* *rotlsi3_1 */

        case 1:
          if (!(
#line 10881 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ROTATE, DImode, operands)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          *pnum_clobbers = 1;
          return 608; /* *rotldi3_1 */

        default:
          return -1;
        }

    case ROTATERT:
      operands[0] = x3;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      x9 = XEXP (x2, 1);
      switch (GET_CODE (x9))
        {
        case SUBREG:
          if (pnum_clobbers != NULL)
            {
              switch (pattern220 (x2))
                {
                case 0:
                  if (
#line 10798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ROTATERT, SImode, operands)
   && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
      == GET_MODE_BITSIZE (SImode)-1))
                    {
                      *pnum_clobbers = 1;
                      return 597; /* *rotrsi3_mask */
                    }
                  break;

                case 1:
                  if ((
#line 10798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ROTATERT, DImode, operands)
   && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
      == GET_MODE_BITSIZE (DImode)-1) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                    {
                      *pnum_clobbers = 1;
                      return 599; /* *rotrdi3_mask */
                    }
                  break;

                default:
                  break;
                }
            }
          break;

        case CONST_INT:
        case CONST_WIDE_INT:
        case CONST_FIXED:
        case CONST_DOUBLE:
        case CONST_VECTOR:
        case CONST:
        case LABEL_REF:
        case SYMBOL_REF:
        case HIGH:
          res = recog_169 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        default:
          break;
        }
      if (pnum_clobbers == NULL)
        return -1;
      operands[2] = x9;
      if (!nonmemory_operand (operands[2], QImode))
        return -1;
      switch (pattern143 (x2))
        {
        case 0:
          if (!
#line 10881 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ROTATERT, SImode, operands)))
            return -1;
          *pnum_clobbers = 1;
          return 607; /* *rotrsi3_1 */

        case 1:
          if (!(
#line 10881 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_binary_operator_ok (ROTATERT, DImode, operands)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          *pnum_clobbers = 1;
          return 609; /* *rotrdi3_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 UNEQ:
    case UNGE:
    case UNGT:
    case UNLE:
    case UNLT:
    case LTGT:
      operands[1] = x2;
      x4 = XEXP (x2, 0);
      if (GET_CODE (x4) != REG
          || REGNO (x4) != 17)
        return -1;
      x9 = XEXP (x2, 1);
      if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      operands[0] = x3;
      switch (pattern281 ())
        {
        case 0:
          if (!
#line 11333 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && !TARGET_PARTIAL_REG_STALL))
            return -1;
          return 630; /* *setcc_di_1 */

        case 1:
          if (pnum_clobbers != NULL
              && 
#line 11349 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_PARTIAL_REG_STALL
   && TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)))
            {
              *pnum_clobbers = 1;
              return 631; /* *setcc_si_1_and */
            }
          if (!
#line 11366 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_PARTIAL_REG_STALL
   && (!TARGET_ZERO_EXTEND_WITH_AND || optimize_function_for_size_p (cfun))))
            return -1;
          return 632; /* *setcc_si_1_movzbl */

        default:
          return -1;
        }

    case CALL:
      return recog_194 (x1, insn, pnum_clobbers);

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

    case FFS:
      if (pattern6 (x1, pnum_clobbers, SImode) != 0
          || !
#line 12798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_CMOVE))
        return -1;
      *pnum_clobbers = 2;
      return 715; /* ffssi2_no_cmove */

    case CTZ:
      switch (pattern13 (x1, pnum_clobbers))
        {
        case 0:
          if (
#line 12865 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_BMI || TARGET_GENERIC)
   && TARGET_AVOID_FALSE_DEP_FOR_BMI && optimize_function_for_speed_p (cfun)))
            {
              *pnum_clobbers = 1;
              return 720; /* *ctzsi2_falsedep_1 */
            }
          *pnum_clobbers = 1;
          return 724; /* *ctzsi2 */

        case 1:
          if ((
#line 12865 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_BMI || TARGET_GENERIC)
   && TARGET_AVOID_FALSE_DEP_FOR_BMI && optimize_function_for_speed_p (cfun)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            {
              *pnum_clobbers = 1;
              return 721; /* *ctzdi2_falsedep_1 */
            }
          if (!
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
            return -1;
          *pnum_clobbers = 1;
          return 725; /* *ctzdi2 */

        default:
          return -1;
        }

    case CLZ:
      switch (pattern13 (x1, pnum_clobbers))
        {
        case 0:
          if (
#line 13024 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LZCNT
   && TARGET_AVOID_FALSE_DEP_FOR_BMI && optimize_function_for_speed_p (cfun)))
            {
              *pnum_clobbers = 1;
              return 733; /* *clzsi2_lzcnt_falsedep_1 */
            }
          if (!
#line 13055 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LZCNT))
            return -1;
          *pnum_clobbers = 1;
          return 737; /* *clzsi2_lzcnt */

        case 1:
          if ((
#line 13024 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LZCNT
   && TARGET_AVOID_FALSE_DEP_FOR_BMI && optimize_function_for_speed_p (cfun)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            {
              *pnum_clobbers = 1;
              return 734; /* *clzdi2_lzcnt_falsedep_1 */
            }
          if (!(
#line 13055 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LZCNT) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          *pnum_clobbers = 1;
          return 738; /* *clzdi2_lzcnt */

        default:
          return -1;
        }

    case ZERO_EXTRACT:
      return recog_193 (x1, insn, pnum_clobbers);

    case POPCOUNT:
      switch (pattern13 (x1, pnum_clobbers))
        {
        case 0:
          if (
#line 13492 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_POPCNT
   && TARGET_AVOID_FALSE_DEP_FOR_BMI && optimize_function_for_speed_p (cfun)))
            {
              *pnum_clobbers = 1;
              return 793; /* *popcountsi2_falsedep_1 */
            }
          if (!
#line 13530 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_POPCNT))
            return -1;
          *pnum_clobbers = 1;
          return 798; /* *popcountsi2 */

        case 1:
          if ((
#line 13492 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_POPCNT
   && TARGET_AVOID_FALSE_DEP_FOR_BMI && optimize_function_for_speed_p (cfun)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            {
              *pnum_clobbers = 1;
              return 794; /* *popcountdi2_falsedep_1 */
            }
          if (!(
#line 13530 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_POPCNT) && 
#line 991 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          *pnum_clobbers = 1;
          return 799; /* *popcountdi2 */

        default:
          return -1;
        }

    case BSWAP:
      operands[0] = x3;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      switch (GET_MODE (operands[0]))
        {
        case SImode:
          if (GET_MODE (x2) != SImode)
            return -1;
          if (nonimmediate_operand (operands[0], SImode)
              && nonimmediate_operand (operands[1], SImode)
              && 
#line 13575 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_MOVBE
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
            return 800; /* *bswapsi2_movbe */
          if (!register_operand (operands[0], SImode)
              || !register_operand (operands[1], SImode)
              || !
#line 13590 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BSWAP))
            return -1;
          return 802; /* *bswapsi2 */

        case DImode:
          if (GET_MODE (x2) != DImode)
            return -1;
          if (nonimmediate_operand (operands[0], DImode)
              && nonimmediate_operand (operands[1], DImode)
              && (
#line 13575 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_MOVBE
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return 801; /* *bswapdi2_movbe */
          if (!register_operand (operands[0], DImode)
              || !register_operand (operands[1], DImode)
              || !(
#line 13590 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BSWAP) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return -1;
          return 803; /* *bswapdi2 */

        default:
          return -1;
        }

    case IF_THEN_ELSE:
      return recog_195 (x1, insn, pnum_clobbers);

    case SIGN_EXTRACT:
      if (pnum_clobbers == NULL)
        return -1;
      switch (pattern27 (x1, 1))
        {
        case 0:
          *pnum_clobbers = 1;
          return 979; /* *x86_movsicc_0_m1_se */

        case 1:
          if (!
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
            return -1;
          *pnum_clobbers = 1;
          return 980; /* *x86_movdicc_0_m1_se */

        default:
          return -1;
        }

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

    case VEC_SELECT:
      return recog_187 (x1, insn, pnum_clobbers);

    case FIX:
      switch (pattern15 (x1))
        {
        case 0:
          if (!
#line 4351 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
            return -1;
          return 2146; /* sse_cvttss2si */

        case 1:
          if (!
#line 4847 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))
            return -1;
          return 2253; /* sse2_cvttsd2si */

        case 2:
          if (!
#line 4367 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && TARGET_64BIT))
            return -1;
          return 2148; /* sse_cvttss2siq */

        case 3:
          if (!
#line 4864 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && TARGET_64BIT))
            return -1;
          return 2255; /* sse2_cvttsd2siq */

        default:
          return -1;
        }

    case UNSIGNED_FIX:
      switch (pattern15 (x1))
        {
        case 0:
          if (!
#line 4712 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2235; /* avx512f_vcvttss2usi */

        case 1:
          if (!
#line 4762 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F))
            return -1;
          return 2243; /* avx512f_vcvttsd2usi */

        case 2:
          if (!
#line 4724 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && TARGET_64BIT))
            return -1;
          return 2237; /* avx512f_vcvttss2usiq */

        case 3:
          if (!
#line 4774 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && TARGET_64BIT))
            return -1;
          return 2245; /* avx512f_vcvttsd2usiq */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

int
recog (rtx x1 ATTRIBUTE_UNUSED,
	rtx uncast_insn ATTRIBUTE_UNUSED,
	int *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;
  recog_data.insn = NULL;
  rtx_insn *insn ATTRIBUTE_UNUSED;
  insn = safe_as_a <rtx_insn *> (uncast_insn);
  switch (GET_CODE (x1))
    {
    case SET:
      return recog_254 (x1, insn, pnum_clobbers);

    case PARALLEL:
      switch (XVECLEN (x1, 0))
        {
        case 2:
          res = recog_243 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

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

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

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

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

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

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

        default:
          break;
        }
      if (XVECLEN (x1, 0) < 1)
        return -1;
      operands[0] = x1;
      x2 = XVECEXP (x1, 0, 0);
      if (GET_CODE (x2) != UNSPEC_VOLATILE
          || XVECLEN (x2, 0) != 1)
        return -1;
      x3 = XVECEXP (x2, 0, 0);
      if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      switch (XINT (x2, 1))
        {
        case 52:
          if (!emms_operation (operands[0], VOIDmode)
              || !
#line 1592 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX))
            return -1;
          return 1221; /* *mmx_emms */

        case 53:
          if (!emms_operation (operands[0], VOIDmode)
              || !
#line 1625 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_3DNOW))
            return -1;
          return 1222; /* *mmx_femms */

        case 59:
          if (!vzeroall_operation (operands[0], VOIDmode)
              || !
#line 17082 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
            return -1;
          return 4125; /* *avx_vzeroall */

        default:
          return -1;
        }

    case CALL:
      x4 = XEXP (x1, 0);
      if (GET_CODE (x4) != MEM
          || GET_MODE (x4) != QImode)
        return -1;
      x5 = XEXP (x4, 0);
      operands[0] = x5;
      x6 = XEXP (x1, 1);
      operands[1] = x6;
      if (call_insn_operand (operands[0], SImode)
          && (
#line 11998 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!SIBLING_CALL_P (insn)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)))
        return 674; /* *call */
      if (call_insn_operand (operands[0], DImode)
          && (
#line 11998 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!SIBLING_CALL_P (insn)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)))
        return 675; /* *call */
      switch (GET_CODE (x5))
        {
        case ZERO_EXTEND:
          if (GET_MODE (x5) == DImode)
            {
              x7 = XEXP (x5, 0);
              operands[0] = x7;
              if (GOT_memory_operand (operands[0], SImode))
                {
                  operands[1] = x6;
                  if (
#line 12007 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_X32))
                    return 676; /* *call_got_x32 */
                }
            }
          break;

        case MEM:
          if (GET_MODE (x5) == SImode)
            {
              x7 = XEXP (x5, 0);
              if (GET_CODE (x7) == PLUS
                  && GET_MODE (x7) == SImode)
                {
                  x8 = XEXP (x7, 0);
                  operands[0] = x8;
                  if (register_no_elim_operand (operands[0], SImode))
                    {
                      x9 = XEXP (x7, 1);
                      operands[1] = x9;
                      if (GOT32_symbol_operand (operands[1], SImode))
                        {
                          operands[2] = x6;
                          if (
#line 12019 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_MACHO && !TARGET_64BIT && SIBLING_CALL_P (insn)))
                            return 677; /* *sibcall_GOT_32 */
                        }
                    }
                }
            }
          break;

        default:
          break;
        }
      operands[0] = x5;
      operands[1] = x6;
      if (sibcall_insn_operand (operands[0], SImode)
          && (
#line 12030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SIBLING_CALL_P (insn)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)))
        return 678; /* *sibcall */
      if (!sibcall_insn_operand (operands[0], DImode)
          || !(
#line 12030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(SIBLING_CALL_P (insn)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)))
        return -1;
      return 679; /* *sibcall */

    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 696; /* blockage */

            case 4:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              return 698; /* prologue_use */

            case 7:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              if (!const_int_operand (operands[0], VOIDmode)
                  || !
#line 12537 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
                return -1;
              return 704; /* nops */

            case 3:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              return 705; /* pad */

            case 5:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              if (!const_int_operand (operands[0], SImode))
                return -1;
              return 714; /* split_stack_return */

            case 6:
              x2 = XVECEXP (x1, 0, 0);
              if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              return 942; /* cld */

            case 20:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              if (!memory_operand (operands[0], BLKmode)
                  || !
#line 18996 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_FXSR))
                return -1;
              return 1035; /* fxrstor */

            case 22:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              if (!memory_operand (operands[0], BLKmode)
                  || !
#line 19006 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && TARGET_FXSR))
                return -1;
              return 1036; /* fxrstor64 */

            case 36:
              if (pnum_clobbers == NULL)
                return -1;
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              if (!memory_operand (operands[0], BLKmode)
                  || !
#line 19165 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
                return -1;
              *pnum_clobbers = 10;
              return 1056; /* fldenv */

            case 38:
              x2 = XVECEXP (x1, 0, 0);
              if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
                  || !
#line 19184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
                return -1;
              return 1058; /* fnclex */

            case 11:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              switch (GET_MODE (operands[0]))
                {
                case SImode:
                  if (!register_operand (operands[0], SImode)
                      || !(
#line 19204 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LWP) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 1059; /* *lwp_llwpcbsi1 */

                case DImode:
                  if (!register_operand (operands[0], DImode)
                      || !(
#line 19204 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LWP) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 1060; /* *lwp_llwpcbdi1 */

                default:
                  return -1;
                }

            case 17:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              switch (GET_MODE (operands[0]))
                {
                case SImode:
                  if (!register_operand (operands[0], SImode)
                      || !
#line 19303 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && TARGET_FSGSBASE))
                    return -1;
                  return 1071; /* wrfsbasesi */

                case DImode:
                  if (!register_operand (operands[0], DImode)
                      || !(
#line 19303 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && TARGET_FSGSBASE) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                    return -1;
                  return 1073; /* wrfsbasedi */

                default:
                  return -1;
                }

            case 18:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              switch (GET_MODE (operands[0]))
                {
                case SImode:
                  if (!register_operand (operands[0], SImode)
                      || !
#line 19303 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && TARGET_FSGSBASE))
                    return -1;
                  return 1072; /* wrgsbasesi */

                case DImode:
                  if (!register_operand (operands[0], DImode)
                      || !(
#line 19303 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && TARGET_FSGSBASE) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                    return -1;
                  return 1074; /* wrgsbasedi */

                default:
                  return -1;
                }

            case 42:
              x2 = XVECEXP (x1, 0, 0);
              if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
                  || !
#line 19384 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_RTM))
                return -1;
              return 1083; /* xend */

            case 43:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              if (!const_0_to_255_operand (operands[0], SImode)
                  || !
#line 19392 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_RTM))
                return -1;
              return 1084; /* xabort */

            case 46:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              if (!address_operand (operands[0], VOIDmode)
                  || !
#line 19420 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_CLWB))
                return -1;
              return 1086; /* clwb */

            case 47:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              if (!address_operand (operands[0], VOIDmode)
                  || !
#line 19429 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_CLFLUSHOPT))
                return -1;
              return 1087; /* clflushopt */

            case 50:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              switch (GET_MODE (operands[0]))
                {
                case SImode:
                  if (!register_operand (operands[0], SImode)
                      || !(
#line 19465 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_CLZERO) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 1091; /* clzero_si */

                case DImode:
                  if (!register_operand (operands[0], DImode)
                      || !(
#line 19465 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_CLZERO) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 1092; /* clzero_di */

                default:
                  return -1;
                }

            case 54:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              if (!memory_operand (operands[0], SImode)
                  || !
#line 13862 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE))
                return -1;
              return 3741; /* sse_ldmxcsr */

            case 56:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              if (!address_operand (operands[0], VOIDmode)
                  || !
#line 13882 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2))
                return -1;
              return 3743; /* sse2_clflush */

            case 60:
              x2 = XVECEXP (x1, 0, 0);
              if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
                  || !
#line 17095 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX))
                return -1;
              return 4126; /* avx_vzeroupper */

            default:
              return -1;
            }

        case 2:
          x2 = XVECEXP (x1, 0, 0);
          operands[0] = x2;
          x10 = XVECEXP (x1, 0, 1);
          operands[1] = x10;
          switch (XINT (x1, 1))
            {
            case 24:
              if (GET_MODE (x1) != BLKmode
                  || !memory_operand (operands[0], BLKmode)
                  || !register_operand (operands[1], DImode)
                  || !
#line 19092 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_XSAVE))
                return -1;
              return 1049; /* xrstor */

            case 30:
              if (GET_MODE (x1) != BLKmode
                  || !memory_operand (operands[0], BLKmode)
                  || !register_operand (operands[1], DImode)
                  || !(
#line 19092 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_XSAVE) && 
#line 19037 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_XSAVES)))
                return -1;
              return 1050; /* xrstors */

            case 58:
              if (!register_operand (operands[0], SImode)
                  || !register_operand (operands[1], SImode)
                  || !
#line 13895 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE3))
                return -1;
              return 3744; /* sse3_mwait */

            default:
              return -1;
            }

        case 3:
          x2 = XVECEXP (x1, 0, 0);
          operands[0] = x2;
          x10 = XVECEXP (x1, 0, 1);
          operands[1] = x10;
          x11 = XVECEXP (x1, 0, 2);
          operands[2] = x11;
          switch (XINT (x1, 1))
            {
            case 24:
              if (pattern254 (x1) != 0
                  || !
#line 19105 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && TARGET_XSAVE))
                return -1;
              return 1051; /* xrstor_rex64 */

            case 30:
              if (pattern254 (x1) != 0
                  || !(
#line 19105 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && TARGET_XSAVE) && 
#line 19037 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_XSAVES)))
                return -1;
              return 1052; /* xrstors_rex64 */

            case 26:
              if (pattern254 (x1) != 0
                  || !
#line 19118 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && TARGET_XSAVE))
                return -1;
              return 1053; /* xrstor64 */

            case 32:
              if (pattern254 (x1) != 0
                  || !(
#line 19118 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && TARGET_XSAVE) && 
#line 19041 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_XSAVES)))
                return -1;
              return 1054; /* xrstors64 */

            case 13:
              if (!nonimmediate_operand (operands[1], SImode)
                  || !const_int_operand (operands[2], SImode))
                return -1;
              switch (GET_MODE (operands[0]))
                {
                case SImode:
                  if (!register_operand (operands[0], SImode)
                      || !
#line 19248 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LWP))
                    return -1;
                  return 1063; /* *lwp_lwpvalsi3_1 */

                case DImode:
                  if (!register_operand (operands[0], DImode)
                      || !(
#line 19248 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LWP) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                    return -1;
                  return 1064; /* *lwp_lwpvaldi3_1 */

                default:
                  return -1;
                }

            case 49:
              if (!register_operand (operands[0], SImode)
                  || !register_operand (operands[1], SImode)
                  || !register_operand (operands[2], SImode)
                  || !
#line 19441 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_MWAITX))
                return -1;
              return 1088; /* mwaitx */

            case 48:
              switch (pattern255 ())
                {
                case 0:
                  if (!(
#line 19453 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_MWAITX) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 1089; /* monitorx_si */

                case 1:
                  if (!(
#line 19453 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_MWAITX) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 1090; /* monitorx_di */

                default:
                  return -1;
                }

            case 51:
              if (GET_MODE (x1) != SImode
                  || !register_operand (operands[0], SImode)
                  || !register_operand (operands[1], SImode)
                  || !register_operand (operands[2], SImode)
                  || !
#line 19663 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_PKU))
                return -1;
              return 1110; /* *wrpkru */

            case 57:
              switch (pattern255 ())
                {
                case 0:
                  if (!(
#line 13907 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE3) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                    return -1;
                  return 3745; /* sse3_monitor_si */

                case 1:
                  if (!(
#line 13907 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE3) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                    return -1;
                  return 3746; /* sse3_monitor_di */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    case SIMPLE_RETURN:
      if (!
#line 12478 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
        return -1;
      return 699; /* simple_return_internal */

    case CONST_INT:
      if (XWINT (x1, 0) != 0LL)
        return -1;
      return 703; /* nop */

    case EH_RETURN:
      return 711; /* eh_return_internal */

    case TRAP_IF:
      x4 = XEXP (x1, 0);
      if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x6 = XEXP (x1, 1);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
        return -1;
      return 1011; /* trap */

    case PREFETCH:
      x6 = XEXP (x1, 1);
      if (GET_CODE (x6) != CONST_INT)
        return -1;
      x4 = XEXP (x1, 0);
      operands[0] = x4;
      if (!address_operand (operands[0], VOIDmode))
        return -1;
      switch (XWINT (x6, 0))
        {
        case 0LL:
          x12 = XEXP (x1, 2);
          operands[1] = x12;
          if (const_int_operand (operands[1], SImode)
              && 
#line 18739 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_PREFETCH_SSE))
            return 1012; /* *prefetch_sse */
          break;

        case 1LL:
          x12 = XEXP (x1, 2);
          if (x12 == const_int_rtx[MAX_SAVED_CONST_INT + 2]
              && 
#line 18776 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_PREFETCHWT1))
            return 1014; /* *prefetch_prefetchwt1 */
          break;

        default:
          break;
        }
      x12 = XEXP (x1, 2);
      if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
        return -1;
      operands[1] = x6;
      if (!const_int_operand (operands[1], SImode)
          || !
#line 18760 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_3DNOW || TARGET_PRFCHW || TARGET_PREFETCHWT1))
        return -1;
      return 1013; /* *prefetch_3dnow */

    case UNSPEC:
      if (XVECLEN (x1, 0) != 3)
        return -1;
      x10 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x10) != MEM)
        return -1;
      operands[5] = x10;
      x13 = XEXP (x10, 0);
      if (GET_CODE (x13) != UNSPEC
          || XVECLEN (x13, 0) != 3
          || XINT (x13, 1) != 147)
        return -1;
      x2 = XVECEXP (x1, 0, 0);
      operands[0] = x2;
      x14 = XVECEXP (x13, 0, 0);
      operands[2] = x14;
      x15 = XVECEXP (x13, 0, 1);
      operands[1] = x15;
      x16 = XVECEXP (x13, 0, 2);
      operands[3] = x16;
      if (!const1248_operand (operands[3], SImode))
        return -1;
      x11 = XVECEXP (x1, 0, 2);
      operands[4] = x11;
      switch (XINT (x1, 1))
        {
        case 171:
          if (!const_2_to_3_operand (operands[4], SImode))
            return -1;
          switch (pattern689 (x13))
            {
            case 0:
              if (!(
#line 15837 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512PF) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              return 3975; /* *avx512pf_gatherpfv16sisf_mask */

            case 1:
              if (!(
#line 15837 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512PF) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              return 3976; /* *avx512pf_gatherpfv16sisf_mask */

            case 2:
              if (!(
#line 15837 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512PF) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              return 3977; /* *avx512pf_gatherpfv8disf_mask */

            case 3:
              if (!(
#line 15837 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512PF) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              return 3978; /* *avx512pf_gatherpfv8disf_mask */

            case 4:
              if (!(
#line 15882 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512PF) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              return 3979; /* *avx512pf_gatherpfv8sidf_mask */

            case 5:
              if (!(
#line 15882 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512PF) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              return 3981; /* *avx512pf_gatherpfv8didf_mask */

            case 6:
              if (!(
#line 15882 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512PF) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              return 3980; /* *avx512pf_gatherpfv8sidf_mask */

            case 7:
              if (!(
#line 15882 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512PF) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              return 3982; /* *avx512pf_gatherpfv8didf_mask */

            default:
              return -1;
            }

        case 172:
          if (!const2367_operand (operands[4], SImode))
            return -1;
          switch (pattern689 (x13))
            {
            case 0:
              if (!(
#line 15927 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512PF) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              return 3983; /* *avx512pf_scatterpfv16sisf_mask */

            case 1:
              if (!(
#line 15927 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512PF) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              return 3984; /* *avx512pf_scatterpfv16sisf_mask */

            case 2:
              if (!(
#line 15927 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512PF) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              return 3985; /* *avx512pf_scatterpfv8disf_mask */

            case 3:
              if (!(
#line 15927 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512PF) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              return 3986; /* *avx512pf_scatterpfv8disf_mask */

            case 4:
              if (!(
#line 15974 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512PF) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              return 3987; /* *avx512pf_scatterpfv8sidf_mask */

            case 5:
              if (!(
#line 15974 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512PF) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
                return -1;
              return 3989; /* *avx512pf_scatterpfv8didf_mask */

            case 6:
              if (!(
#line 15974 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512PF) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              return 3988; /* *avx512pf_scatterpfv8sidf_mask */

            case 7:
              if (!(
#line 15974 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512PF) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
                return -1;
              return 3990; /* *avx512pf_scatterpfv8didf_mask */

            default:
              return -1;
            }

        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_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:
    case MEM:
      operands[1] = x4;
      x5 = XEXP (x3, 1);
      operands[2] = x5;
      switch (GET_MODE (operands[0]))
        {
        case DImode:
          if (GET_MODE (x3) != DImode)
            return NULL;
          if (nonimmediate_operand (operands[0], DImode)
              && nonimmediate_operand (operands[1], DImode)
              && x86_64_general_operand (operands[2], DImode)
              && (
#line 5477 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed) && 
#line 1043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT)))
            return gen_split_104 (insn, operands);
          if (!register_operand (operands[0], DImode)
              || !register_operand (operands[1], DImode)
              || !x86_64_nonmemory_operand (operands[2], DImode))
            return NULL;
          if ((
#line 5754 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed && ix86_avoid_lea_for_add (insn, operands)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return gen_split_107 (insn, operands);
          if (!(
#line 5765 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed && ix86_lea_for_add_ok (insn, operands)) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return NULL;
          return gen_split_111 (insn, operands);

        case TImode:
          if (pattern396 (x3, TImode) != 0
              || !(
#line 5477 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed) && 
#line 1044 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return NULL;
          return gen_split_105 (insn, operands);

        case SImode:
          if (pattern662 (x3, SImode) != 0)
            return NULL;
          if (
#line 5754 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed && ix86_avoid_lea_for_add (insn, operands)))
            return gen_split_106 (insn, operands);
          if (!
#line 5765 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed && ix86_lea_for_add_ok (insn, operands)))
            return NULL;
          return gen_split_110 (insn, operands);

        case QImode:
          if (pattern663 (x3, QImode) != 0
              || !
#line 5765 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed && ix86_lea_for_add_ok (insn, operands)))
            return NULL;
          return gen_split_108 (insn, operands);

        case HImode:
          if (pattern663 (x3, HImode) != 0
              || !
#line 5765 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed && ix86_lea_for_add_ok (insn, operands)))
            return NULL;
          return gen_split_109 (insn, operands);

        default:
          return NULL;
        }

    case UNSPEC:
      if (XINT (x4, 1) != 22)
        return NULL;
      x5 = XEXP (x3, 1);
      if (GET_CODE (x5) != CONST)
        return NULL;
      x6 = XEXP (x5, 0);
      if (GET_CODE (x6) != UNSPEC
          || XVECLEN (x6, 0) != 1
          || XINT (x6, 1) != 6)
        return NULL;
      x7 = XVECEXP (x6, 0, 0);
      operands[1] = x7;
      if (!tls_symbolic_operand (operands[1], VOIDmode))
        return NULL;
      switch (XVECLEN (x4, 0))
        {
        case 4:
          if (pattern543 (x4) != 0
              || pattern856 (x3) != 0
              || GET_MODE (x5) != SImode
              || GET_MODE (x6) != SImode)
            return NULL;
          return gen_split_271 (insn, operands);

        case 3:
          if (pattern544 (x4, DImode) != 0
              || !register_operand (operands[0], DImode)
              || GET_MODE (x3) != DImode)
            return NULL;
          x8 = XVECEXP (x4, 0, 0);
          operands[2] = x8;
          if (!tls_modbase_operand (operands[2], VOIDmode))
            return NULL;
          x9 = XVECEXP (x4, 0, 1);
          operands[3] = x9;
          if (GET_MODE (x5) != DImode
              || GET_MODE (x6) != DImode)
            return NULL;
          return gen_split_272 (insn, operands);

        default:
          return NULL;
        }

    default:
      return NULL;
    }
}

static rtx_insn *
split_2 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != ZERO_EXTEND)
    return NULL;
  x5 = XEXP (x3, 1);
  if (GET_CODE (x5) != ZERO_EXTEND)
    return NULL;
  x6 = XEXP (x4, 0);
  operands[1] = x6;
  x7 = XEXP (x5, 0);
  operands[2] = x7;
  switch (GET_MODE (operands[0]))
    {
    case DImode:
      if (pattern690 (x3, SImode, DImode) != 0
          || !(
#line 7248 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2 && reload_completed
  && true_regnum (operands[1]) == DX_REG) && 
#line 1043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT)))
        return NULL;
      return gen_split_121 (insn, operands);

    case TImode:
      if (pattern690 (x3, DImode, TImode) != 0
          || !(
#line 7248 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2 && reload_completed
  && true_regnum (operands[1]) == DX_REG) && 
#line 1044 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
        return NULL;
      return gen_split_122 (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;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case CONST_INT:
    case CONST_WIDE_INT:
    case CONST_FIXED:
    case CONST_DOUBLE:
    case CONST_VECTOR:
    case CONST:
    case REG:
    case SUBREG:
    case MEM:
    case LABEL_REF:
    case SYMBOL_REF:
    case HIGH:
      operands[1] = x4;
      x5 = XEXP (x3, 1);
      operands[2] = x5;
      switch (GET_MODE (operands[0]))
        {
        case QImode:
          if (pattern606 (x3, QImode) == 0
              && 
#line 8083 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F && reload_completed))
            return gen_split_142 (insn, operands);
          break;

        case HImode:
          if (GET_MODE (x3) == HImode)
            {
              if (mask_reg_operand (operands[0], HImode)
                  && mask_reg_operand (operands[1], HImode)
                  && mask_reg_operand (operands[2], HImode)
                  && 
#line 8083 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F && reload_completed))
                return gen_split_145 (insn, operands);
              if (register_operand (operands[0], HImode)
                  && nonimmediate_operand (operands[1], HImode)
                  && const_int_operand (operands[2], HImode)
                  && 
#line 8394 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed
   && true_regnum (operands[0]) != true_regnum (operands[1])))
                return gen_split_158 (insn, operands);
            }
          break;

        case SImode:
          if (GET_MODE (x3) == SImode)
            {
              if (mask_reg_operand (operands[0], SImode)
                  && mask_reg_operand (operands[1], SImode)
                  && mask_reg_operand (operands[2], SImode)
                  && 
#line 8083 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F && reload_completed))
                return gen_split_148 (insn, operands);
              if (register_operand (operands[0], SImode)
                  && nonimmediate_operand (operands[1], SImode)
                  && const_int_operand (operands[2], SImode)
                  && 
#line 8394 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed
   && true_regnum (operands[0]) != true_regnum (operands[1])))
                return gen_split_159 (insn, operands);
            }
          break;

        case DImode:
          if (GET_MODE (x3) == DImode)
            {
              if (mask_reg_operand (operands[0], DImode)
                  && mask_reg_operand (operands[1], DImode)
                  && mask_reg_operand (operands[2], DImode)
                  && 
#line 8083 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F && reload_completed))
                return gen_split_151 (insn, operands);
              if (nonimmediate_operand (operands[0], DImode)
                  && nonimmediate_operand (operands[1], DImode)
                  && x86_64_szext_general_operand (operands[2], DImode)
                  && (
#line 8197 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_STV && TARGET_SSE2
   && ix86_binary_operator_ok (AND, DImode, operands)) && 
#line 8200 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
                return gen_split_154 (insn, operands);
            }
          break;

        default:
          break;
        }
      if (rtx_equal_p (x4, operands[0])
          && GET_CODE (x5) == CONST_INT)
        {
          switch (XWINT (x5, 0))
            {
            case -65536LL:
              if (register_operand (operands[0], SImode)
                  && GET_MODE (x3) == SImode
                  && 
#line 8437 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_FAST_PREFIX && !TARGET_PARTIAL_REG_STALL)
    || optimize_function_for_size_p (cfun)))
                return gen_split_161 (insn, operands);
              break;

            case -256LL:
              switch (GET_MODE (operands[0]))
                {
                case HImode:
                  if (any_QIreg_operand (operands[0], HImode)
                      && GET_MODE (x3) == HImode
                      && 
#line 8447 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
   && reload_completed))
                    return gen_split_163 (insn, operands);
                  break;

                case SImode:
                  if (any_QIreg_operand (operands[0], SImode)
                      && GET_MODE (x3) == SImode
                      && 
#line 8447 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
   && reload_completed))
                    return gen_split_164 (insn, operands);
                  break;

                default:
                  break;
                }
              break;

            case -65281LL:
              switch (GET_MODE (operands[0]))
                {
                case HImode:
                  if (QIreg_operand (operands[0], HImode)
                      && GET_MODE (x3) == HImode
                      && 
#line 8457 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
   && reload_completed))
                    return gen_split_166 (insn, operands);
                  break;

                case SImode:
                  if (QIreg_operand (operands[0], SImode)
                      && GET_MODE (x3) == SImode
                      && 
#line 8457 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
   && reload_completed))
                    return gen_split_167 (insn, operands);
                  break;

                default:
                  break;
                }
              break;

            default:
              break;
            }
        }
      if (GET_CODE (x4) == SUBREG
          && XINT (x4, 1) == 0
          && GET_MODE (x4) == DImode
          && pattern399 (x3) == 0
          && 
#line 8383 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT))
        return gen_split_157 (insn, operands);
      if (GET_CODE (x5) != CONST_INT)
        return NULL;
      operands[2] = x5;
      if (const_int_operand (operands[2], DImode)
          && register_operand (operands[0], DImode)
          && GET_MODE (x3) == DImode)
        {
          operands[1] = x4;
          if (nonimmediate_operand (operands[1], DImode)
              && (
#line 8394 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed
   && true_regnum (operands[0]) != true_regnum (operands[1])) && 
#line 991 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return gen_split_160 (insn, operands);
        }
      if (GET_MODE (x3) == DImode
          && rtx_equal_p (x4, operands[0]))
        {
          switch (XWINT (x5, 0))
            {
            case -65536LL:
              if (register_operand (operands[0], DImode)
                  && (
#line 8437 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_FAST_PREFIX && !TARGET_PARTIAL_REG_STALL)
    || optimize_function_for_size_p (cfun)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return gen_split_162 (insn, operands);
              break;

            case -256LL:
              if (any_QIreg_operand (operands[0], DImode)
                  && (
#line 8447 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
   && reload_completed) && 
#line 991 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return gen_split_165 (insn, operands);
              break;

            case -65281LL:
              if (QIreg_operand (operands[0], DImode)
                  && (
#line 8457 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
   && reload_completed) && 
#line 991 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return gen_split_168 (insn, operands);
              break;

            default:
              break;
            }
        }
      operands[2] = x5;
      if (!const_int_operand (operands[2], VOIDmode))
        return NULL;
      operands[1] = x4;
      if (register_operand (operands[1], VOIDmode)
          && QIreg_operand (operands[0], VOIDmode)
          && 
#line 8667 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed
    && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
    && !(~INTVAL (operands[2]) & ~(255 << 8))
    && GET_MODE (operands[0]) != QImode))
        return gen_split_169 (insn, operands);
      if (!general_operand (operands[1], VOIDmode)
          || !any_QIreg_operand (operands[0], VOIDmode)
          || !
#line 8689 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed
    && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
    && !(~INTVAL (operands[2]) & ~255)
    && !(INTVAL (operands[2]) & 128)
    && GET_MODE (operands[0]) != QImode))
        return NULL;
      return gen_split_170 (insn, operands);

    case NOT:
      switch (GET_MODE (operands[0]))
        {
        case QImode:
          if (pattern551 (x3, QImode) != 0
              || !
#line 8369 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F && !TARGET_BMI && reload_completed))
            return NULL;
          return gen_split_155 (insn, operands);

        case HImode:
          if (pattern551 (x3, HImode) != 0
              || !
#line 8369 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F && !TARGET_BMI && reload_completed))
            return NULL;
          return gen_split_156 (insn, operands);

        case DImode:
          if (!register_operand (operands[0], DImode)
              || GET_MODE (x3) != DImode
              || GET_MODE (x4) != DImode)
            return NULL;
          x6 = XEXP (x4, 0);
          operands[1] = x6;
          if (!register_operand (operands[1], DImode))
            return NULL;
          x5 = XEXP (x3, 1);
          operands[2] = x5;
          if (!nonimmediate_operand (operands[2], DImode)
              || !(
#line 8778 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI && !TARGET_64BIT && TARGET_STV && TARGET_SSE) && 
#line 8780 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
            return NULL;
          return gen_split_173 (insn, operands);

        default:
          return NULL;
        }

    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;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  operands[1] = x4;
  x5 = XEXP (x3, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case DImode:
      if (register_operand (operands[0], DImode)
          && GET_MODE (x3) == DImode)
        {
          if (nonmemory_operand (operands[1], DImode)
              && nonmemory_operand (operands[2], QImode)
              && (
#line 9733 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize && flag_peephole2) ? epilogue_completed : reload_completed) && 
#line 1021 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT)))
            return gen_split_200 (insn, operands);
          if (nonimmediate_operand (operands[1], DImode)
              && register_operand (operands[2], QImode)
              && (
#line 9914 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2 && reload_completed) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return gen_split_203 (insn, operands);
        }
      break;

    case TImode:
      if (register_operand (operands[0], TImode)
          && GET_MODE (x3) == TImode
          && nonmemory_operand (operands[1], TImode)
          && nonmemory_operand (operands[2], QImode)
          && (
#line 9733 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize && flag_peephole2) ? epilogue_completed : reload_completed) && 
#line 1022 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
        return gen_split_201 (insn, operands);
      break;

    case SImode:
      if (pattern116 (x3) == 0
          && 
#line 9914 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2 && reload_completed))
        return gen_split_202 (insn, operands);
      break;

    default:
      break;
    }
  if (!const_int_operand (operands[2], QImode)
      || !register_operand (operands[0], VOIDmode)
      || !index_register_operand (operands[1], VOIDmode)
      || !
#line 10140 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(GET_MODE (operands[0]) == GET_MODE (operands[1])
   && reload_completed
   && true_regnum (operands[0]) != true_regnum (operands[1])))
    return NULL;
  return gen_split_205 (insn, operands);
}

static rtx_insn *
split_5 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15;
  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;
      x5 = XEXP (x2, 0);
      if (GET_CODE (x5) != REG
          || REGNO (x5) != 17)
        return NULL;
      x6 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x6) != CLOBBER)
        return NULL;
      x7 = XEXP (x6, 0);
      operands[0] = x7;
      if (!register_operand (operands[0], HImode))
        return NULL;
      x8 = XEXP (x3, 1);
      switch (GET_CODE (x8))
        {
        case CONST_INT:
        case CONST_WIDE_INT:
        case CONST_DOUBLE:
        case CONST_VECTOR:
          operands[2] = x8;
          switch (pattern603 (x2))
            {
            case 0:
              if (!(
#line 1486 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_SAHF && !TARGET_CMOVE) && 
#line 1488 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
                return NULL;
              return gen_split_1 (insn, operands);

            case 1:
              if (!(
#line 1486 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_SAHF && !TARGET_CMOVE) && 
#line 1488 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
                return NULL;
              return gen_split_2 (insn, operands);

            case 2:
              if (!(
#line 1486 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_SAHF && !TARGET_CMOVE) && 
#line 1488 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
                return NULL;
              return gen_split_3 (insn, operands);

            default:
              return NULL;
            }

        case REG:
        case SUBREG:
        case MEM:
          operands[2] = x8;
          switch (pattern604 (x2))
            {
            case 0:
              if (!(
#line 1519 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_SAHF && !TARGET_CMOVE) && 
#line 1521 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
                return NULL;
              return gen_split_4 (insn, operands);

            case 1:
              if (!(
#line 1552 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_SAHF && !TARGET_CMOVE) && 
#line 1554 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
                return NULL;
              return gen_split_5 (insn, operands);

            case 2:
              if (!(
#line 1552 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_SAHF && !TARGET_CMOVE) && 
#line 1554 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
                return NULL;
              return gen_split_6 (insn, operands);

            case 3:
              if (!(
#line 1585 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_SAHF && !TARGET_CMOVE) && 
#line 1587 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
                return NULL;
              return gen_split_7 (insn, operands);

            case 4:
              if (!(
#line 1585 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_SAHF && !TARGET_CMOVE) && 
#line 1587 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
                return NULL;
              return gen_split_8 (insn, operands);

            case 5:
              if (!(
#line 1585 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_SAHF && !TARGET_CMOVE) && 
#line 1587 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
                return NULL;
              return gen_split_9 (insn, operands);

            default:
              return NULL;
            }

        case FLOAT:
          operands[3] = x8;
          if (GET_MODE (x5) != CCFPmode
              || GET_MODE (x3) != CCFPmode)
            return NULL;
          x9 = XEXP (x8, 0);
          operands[2] = x9;
          switch (GET_MODE (operands[1]))
            {
            case SFmode:
              switch (pattern730 (SFmode))
                {
                case 0:
                  if (!(
#line 1623 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_SAHF && !TARGET_CMOVE
   && (TARGET_USE_HIMODE_FIOP
       || optimize_function_for_size_p (cfun))) && 
#line 1627 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
                    return NULL;
                  return gen_split_10 (insn, operands);

                case 1:
                  if (!(
#line 1623 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_SAHF && !TARGET_CMOVE
   && (TARGET_USE_SIMODE_FIOP
       || optimize_function_for_size_p (cfun))) && 
#line 1627 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
                    return NULL;
                  return gen_split_13 (insn, operands);

                default:
                  return NULL;
                }

            case DFmode:
              switch (pattern730 (DFmode))
                {
                case 0:
                  if (!(
#line 1623 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_SAHF && !TARGET_CMOVE
   && (TARGET_USE_HIMODE_FIOP
       || optimize_function_for_size_p (cfun))) && 
#line 1627 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
                    return NULL;
                  return gen_split_11 (insn, operands);

                case 1:
                  if (!(
#line 1623 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_SAHF && !TARGET_CMOVE
   && (TARGET_USE_SIMODE_FIOP
       || optimize_function_for_size_p (cfun))) && 
#line 1627 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
                    return NULL;
                  return gen_split_14 (insn, operands);

                default:
                  return NULL;
                }

            case XFmode:
              switch (pattern730 (XFmode))
                {
                case 0:
                  if (!(
#line 1623 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_SAHF && !TARGET_CMOVE
   && (TARGET_USE_HIMODE_FIOP
       || optimize_function_for_size_p (cfun))) && 
#line 1627 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
                    return NULL;
                  return gen_split_12 (insn, operands);

                case 1:
                  if (!(
#line 1623 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && TARGET_SAHF && !TARGET_CMOVE
   && (TARGET_USE_SIMODE_FIOP
       || optimize_function_for_size_p (cfun))) && 
#line 1627 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
                    return NULL;
                  return gen_split_15 (insn, operands);

                default:
                  return NULL;
                }

            default:
              return NULL;
            }

        default:
          return NULL;
        }

    case NOT:
      x8 = XEXP (x3, 1);
      if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return NULL;
      x6 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x6) != SET)
        return NULL;
      x5 = XEXP (x2, 0);
      operands[0] = x5;
      if (!flags_reg_operand (operands[0], VOIDmode))
        return NULL;
      operands[2] = x3;
      if (!compare_operator (operands[2], VOIDmode))
        return NULL;
      x10 = XEXP (x4, 0);
      operands[3] = x10;
      x7 = XEXP (x6, 0);
      operands[1] = x7;
      x11 = XEXP (x6, 1);
      switch (GET_CODE (x11))
        {
        case NOT:
          x12 = XEXP (x11, 0);
          if (!rtx_equal_p (x12, operands[3]))
            return NULL;
          switch (GET_MODE (x4))
            {
            case QImode:
              if (!nonimmediate_operand (operands[3], QImode)
                  || !nonimmediate_operand (operands[1], QImode)
                  || GET_MODE (x11) != QImode
                  || !
#line 9645 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)))
                return NULL;
              return gen_split_195 (insn, operands);

            case HImode:
              if (!nonimmediate_operand (operands[3], HImode)
                  || !nonimmediate_operand (operands[1], HImode)
                  || GET_MODE (x11) != HImode
                  || !
#line 9645 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)))
                return NULL;
              return gen_split_196 (insn, operands);

            case SImode:
              if (!nonimmediate_operand (operands[3], SImode)
                  || !nonimmediate_operand (operands[1], SImode)
                  || GET_MODE (x11) != SImode
                  || !
#line 9645 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)))
                return NULL;
              return gen_split_197 (insn, operands);

            case DImode:
              if (!nonimmediate_operand (operands[3], DImode)
                  || !nonimmediate_operand (operands[1], DImode)
                  || GET_MODE (x11) != DImode
                  || !(
#line 9645 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return NULL;
              return gen_split_198 (insn, operands);

            default:
              return NULL;
            }

        case ZERO_EXTEND:
          if (pattern539 (x1, NOT) != 0
              || !register_operand (operands[3], SImode)
              || !register_operand (operands[1], DImode))
            return NULL;
          x12 = XEXP (x11, 0);
          x13 = XEXP (x12, 0);
          if (!rtx_equal_p (x13, operands[3])
              || !
#line 9672 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)))
            return NULL;
          return gen_split_199 (insn, operands);

        default:
          return NULL;
        }

    case AND:
      x8 = XEXP (x3, 1);
      if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return NULL;
      x6 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x6) != SET)
        return NULL;
      x11 = XEXP (x6, 1);
      if (GET_CODE (x11) != AND)
        return NULL;
      x5 = XEXP (x2, 0);
      operands[0] = x5;
      if (!flags_reg_operand (operands[0], VOIDmode))
        return NULL;
      operands[2] = x3;
      if (!compare_operator (operands[2], VOIDmode))
        return NULL;
      x10 = XEXP (x4, 0);
      operands[3] = x10;
      if (!aligned_operand (operands[3], VOIDmode))
        return NULL;
      x14 = XEXP (x4, 1);
      operands[4] = x14;
      if (!const_int_operand (operands[4], VOIDmode))
        return NULL;
      x7 = XEXP (x6, 0);
      operands[1] = x7;
      if (!register_operand (operands[1], VOIDmode))
        return NULL;
      x12 = XEXP (x11, 0);
      if (!rtx_equal_p (x12, operands[3]))
        return NULL;
      x15 = XEXP (x11, 1);
      if (!rtx_equal_p (x15, operands[4])
          || !
#line 17821 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(! TARGET_PARTIAL_REG_STALL && reload_completed
   && optimize_insn_for_speed_p ()
   && ((GET_MODE (operands[1]) == HImode && ! TARGET_FAST_PREFIX)
       || (GET_MODE (operands[1]) == QImode && TARGET_PROMOTE_QImode))
   /* Ensure that the operand will remain sign-extended immediate.  */
   && ix86_match_ccmode (insn, INTVAL (operands[4]) >= 0 ? CCNOmode : CCZmode)))
        return NULL;
      return gen_split_321 (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;
  rtx_insn *res ATTRIBUTE_UNUSED;
  if (pattern94 (x1) != 0)
    return NULL;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  switch (GET_CODE (x3))
    {
    case PLUS:
      res = split_1 (x1, insn);
      if (res != NULL_RTX)
        return res;
      break;

    case MINUS:
      x4 = XEXP (x3, 0);
      operands[1] = x4;
      x5 = XEXP (x3, 1);
      operands[2] = x5;
      switch (GET_MODE (operands[0]))
        {
        case DImode:
          if (pattern396 (x3, DImode) == 0
              && (
#line 6416 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed) && 
#line 1043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT)))
            return gen_split_119 (insn, operands);
          break;

        case TImode:
          if (pattern396 (x3, TImode) == 0
              && (
#line 6416 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed) && 
#line 1044 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return gen_split_120 (insn, operands);
          break;

        default:
          break;
        }
      break;

    case MULT:
      res = split_2 (x1, insn);
      if (res != NULL_RTX)
        return res;
      break;

    case AND:
      res = split_3 (x1, insn);
      if (res != NULL_RTX)
        return res;
      break;

    case IOR:
      x4 = XEXP (x3, 0);
      operands[1] = x4;
      x5 = XEXP (x3, 1);
      operands[2] = x5;
      switch (GET_MODE (operands[0]))
        {
        case QImode:
          if (pattern606 (x3, QImode) == 0
              && 
#line 8083 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F && reload_completed))
            return gen_split_143 (insn, operands);
          break;

        case HImode:
          if (pattern606 (x3, HImode) == 0
              && 
#line 8083 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F && reload_completed))
            return gen_split_146 (insn, operands);
          break;

        case SImode:
          if (pattern606 (x3, SImode) == 0
              && 
#line 8083 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F && reload_completed))
            return gen_split_149 (insn, operands);
          break;

        case DImode:
          if (GET_MODE (x3) == DImode)
            {
              if (mask_reg_operand (operands[0], DImode)
                  && mask_reg_operand (operands[1], DImode)
                  && mask_reg_operand (operands[2], DImode)
                  && 
#line 8083 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F && reload_completed))
                return gen_split_152 (insn, operands);
              if (nonimmediate_operand (operands[0], DImode)
                  && nonimmediate_operand (operands[1], DImode)
                  && x86_64_szext_general_operand (operands[2], DImode)
                  && (
#line 8736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_STV && TARGET_SSE2
   && ix86_binary_operator_ok (IOR, DImode, operands)) && 
#line 8739 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
                return gen_split_171 (insn, operands);
            }
          break;

        default:
          break;
        }
      if (const_int_operand (operands[2], VOIDmode))
        {
          if (QIreg_operand (operands[0], VOIDmode)
              && register_operand (operands[1], VOIDmode)
              && 
#line 9095 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed
    && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
    && !(INTVAL (operands[2]) & ~(255 << 8))
    && GET_MODE (operands[0]) != QImode))
            return gen_split_178 (insn, operands);
          if (any_QIreg_operand (operands[0], VOIDmode)
              && general_operand (operands[1], VOIDmode)
              && 
#line 9117 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed
    && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
    && !(INTVAL (operands[2]) & ~255)
    && (INTVAL (operands[2]) & 128)
    && GET_MODE (operands[0]) != QImode))
            return gen_split_180 (insn, operands);
        }
      break;

    case XOR:
      x4 = XEXP (x3, 0);
      operands[1] = x4;
      x5 = XEXP (x3, 1);
      operands[2] = x5;
      switch (GET_MODE (operands[0]))
        {
        case QImode:
          if (pattern606 (x3, QImode) == 0
              && 
#line 8083 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F && reload_completed))
            return gen_split_144 (insn, operands);
          break;

        case HImode:
          if (pattern606 (x3, HImode) == 0
              && 
#line 8083 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F && reload_completed))
            return gen_split_147 (insn, operands);
          break;

        case SImode:
          if (pattern606 (x3, SImode) == 0
              && 
#line 8083 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F && reload_completed))
            return gen_split_150 (insn, operands);
          break;

        case DImode:
          if (GET_MODE (x3) == DImode)
            {
              if (mask_reg_operand (operands[0], DImode)
                  && mask_reg_operand (operands[1], DImode)
                  && mask_reg_operand (operands[2], DImode)
                  && 
#line 8083 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F && reload_completed))
                return gen_split_153 (insn, operands);
              if (nonimmediate_operand (operands[0], DImode)
                  && nonimmediate_operand (operands[1], DImode)
                  && x86_64_szext_general_operand (operands[2], DImode)
                  && (
#line 8736 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_STV && TARGET_SSE2
   && ix86_binary_operator_ok (XOR, DImode, operands)) && 
#line 8739 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
                return gen_split_172 (insn, operands);
            }
          break;

        default:
          break;
        }
      if (const_int_operand (operands[2], VOIDmode))
        {
          if (QIreg_operand (operands[0], VOIDmode)
              && register_operand (operands[1], VOIDmode)
              && 
#line 9095 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed
    && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
    && !(INTVAL (operands[2]) & ~(255 << 8))
    && GET_MODE (operands[0]) != QImode))
            return gen_split_179 (insn, operands);
          if (any_QIreg_operand (operands[0], VOIDmode)
              && general_operand (operands[1], VOIDmode)
              && 
#line 9117 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed
    && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
    && !(INTVAL (operands[2]) & ~255)
    && (INTVAL (operands[2]) & 128)
    && GET_MODE (operands[0]) != QImode))
            return gen_split_181 (insn, operands);
        }
      break;

    case ASHIFT:
      res = split_4 (x1, insn);
      if (res != NULL_RTX)
        return res;
      break;

    default:
      break;
    }
  if (!general_reg_operand (operands[0], VOIDmode))
    return NULL;
  operands[3] = x3;
  if (!promotable_binary_operator (operands[3], VOIDmode))
    return NULL;
  x4 = XEXP (x3, 0);
  operands[1] = x4;
  if (!general_reg_operand (operands[1], VOIDmode))
    return NULL;
  x5 = XEXP (x3, 1);
  operands[2] = x5;
  if (!aligned_operand (operands[2], VOIDmode)
      || !
#line 17789 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(! TARGET_PARTIAL_REG_STALL && reload_completed
   && ((GET_MODE (operands[0]) == HImode
	&& ((optimize_function_for_speed_p (cfun) && !TARGET_FAST_PREFIX)
            /* ??? next two lines just !satisfies_constraint_K (...) */
	    || !CONST_INT_P (operands[2])
	    || satisfies_constraint_K (operands[2])))
       || (GET_MODE (operands[0]) == QImode
	   && (TARGET_PROMOTE_QImode || optimize_function_for_size_p (cfun))))))
    return NULL;
  return gen_split_320 (insn, operands);
}

static rtx_insn *
split_7 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 0);
  operands[0] = x3;
  x4 = XEXP (x2, 1);
  switch (XVECLEN (x4, 0))
    {
    case 4:
      if (XINT (x4, 1) != 46)
        return NULL;
      x5 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x5) != CLOBBER)
        return NULL;
      x6 = XVECEXP (x4, 0, 0);
      operands[2] = x6;
      x7 = XVECEXP (x4, 0, 1);
      operands[3] = x7;
      x8 = XVECEXP (x4, 0, 2);
      operands[4] = x8;
      x9 = XVECEXP (x4, 0, 3);
      operands[5] = x9;
      x10 = XEXP (x5, 0);
      operands[1] = x10;
      switch (GET_MODE (operands[0]))
        {
        case SFmode:
          if (pattern661 (x4, V4SFmode, SFmode) != 0
              || !
#line 9553 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(((SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)
    || (TARGET_SSE && (SFmode == TFmode)))
   && reload_completed))
            return NULL;
          return gen_split_192 (insn, operands);

        case DFmode:
          if (pattern661 (x4, V2DFmode, DFmode) != 0
              || !
#line 9553 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(((SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)
    || (TARGET_SSE && (DFmode == TFmode)))
   && reload_completed))
            return NULL;
          return gen_split_193 (insn, operands);

        case TFmode:
          if (pattern645 (x4) != 0
              || !scratch_operand (operands[1], TFmode)
              || !
#line 9553 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(((SSE_FLOAT_MODE_P (TFmode) && TARGET_SSE_MATH)
    || (TARGET_SSE && (TFmode == TFmode)))
   && reload_completed))
            return NULL;
          return gen_split_194 (insn, operands);

        default:
          return NULL;
        }

    case 1:
      switch (XINT (x4, 1))
        {
        case 84:
          switch (pattern295 (x1))
            {
            case 0:
              if (!(
#line 12949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI
   && TARGET_AVOID_FALSE_DEP_FOR_BMI && optimize_function_for_speed_p (cfun)) && 
#line 12952 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
                return NULL;
              return gen_split_260 (insn, operands);

            case 1:
              if (!((
#line 12949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI
   && TARGET_AVOID_FALSE_DEP_FOR_BMI && optimize_function_for_speed_p (cfun)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)) && 
#line 12952 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
                return NULL;
              return gen_split_261 (insn, operands);

            default:
              return NULL;
            }

        case 83:
          switch (pattern295 (x1))
            {
            case 0:
              if (!(
#line 13082 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LZCNT
   && TARGET_AVOID_FALSE_DEP_FOR_BMI && optimize_function_for_speed_p (cfun)) && 
#line 13085 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
                return NULL;
              return gen_split_264 (insn, operands);

            case 1:
              if (!((
#line 13082 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LZCNT
   && TARGET_AVOID_FALSE_DEP_FOR_BMI && optimize_function_for_speed_p (cfun)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)) && 
#line 13085 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
                return NULL;
              return gen_split_265 (insn, operands);

            default:
              return NULL;
            }

        case 65:
          if (pattern240 (x1, 66, XFmode, UNSPEC, 1) != 0)
            return NULL;
          switch (pattern231 (x1))
            {
            case 0:
              if (
#line 14822 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(find_regno_note (insn, REG_UNUSED, REGNO (operands[0]))
   && can_create_pseudo_p ()))
                return gen_split_273 (insn, operands);
              if (!
#line 14832 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(find_regno_note (insn, REG_UNUSED, REGNO (operands[1]))
   && can_create_pseudo_p ()))
                return NULL;
              return gen_split_274 (insn, operands);

            case 1:
              if (
#line 14859 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(find_regno_note (insn, REG_UNUSED, REGNO (operands[0]))
   && can_create_pseudo_p ()))
                return gen_split_275 (insn, operands);
              if (!
#line 14871 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(find_regno_note (insn, REG_UNUSED, REGNO (operands[1]))
   && can_create_pseudo_p ()))
                return NULL;
              return gen_split_277 (insn, operands);

            case 2:
              if (
#line 14859 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(find_regno_note (insn, REG_UNUSED, REGNO (operands[0]))
   && can_create_pseudo_p ()))
                return gen_split_276 (insn, operands);
              if (!
#line 14871 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(find_regno_note (insn, REG_UNUSED, REGNO (operands[1]))
   && can_create_pseudo_p ()))
                return NULL;
              return gen_split_278 (insn, operands);

            default:
              return NULL;
            }

        case 55:
          x5 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x5) != CLOBBER)
            return NULL;
          x6 = XVECEXP (x4, 0, 0);
          operands[1] = x6;
          if (!register_operand (operands[1], XFmode))
            return NULL;
          x10 = XEXP (x5, 0);
          operands[2] = x10;
          switch (GET_MODE (operands[0]))
            {
            case HImode:
              if (GET_MODE (x4) != HImode
                  || !memory_operand (operands[2], HImode))
                return NULL;
              if (register_operand (operands[0], HImode)
                  && 
#line 15893 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
                return gen_split_284 (insn, operands);
              if (!memory_operand (operands[0], HImode)
                  || !
#line 15902 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
                return NULL;
              return gen_split_286 (insn, operands);

            case SImode:
              if (GET_MODE (x4) != SImode
                  || !memory_operand (operands[2], SImode))
                return NULL;
              if (register_operand (operands[0], SImode)
                  && 
#line 15893 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
                return gen_split_285 (insn, operands);
              if (!memory_operand (operands[0], SImode)
                  || !
#line 15902 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
                return NULL;
              return gen_split_287 (insn, operands);

            default:
              return NULL;
            }

        case 59:
          if (pattern296 (x1) != 0
              || !(
#line 15979 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations
   && can_create_pseudo_p ()) && 
#line 15983 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( 1)))
            return NULL;
          return gen_split_288 (insn, operands);

        case 60:
          if (pattern296 (x1) != 0
              || !(
#line 15979 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations
   && can_create_pseudo_p ()) && 
#line 15983 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( 1)))
            return NULL;
          return gen_split_289 (insn, operands);

        case 61:
          if (pattern296 (x1) != 0
              || !(
#line 15979 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations
   && can_create_pseudo_p ()) && 
#line 15983 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( 1)))
            return NULL;
          return gen_split_290 (insn, operands);

        case 62:
          if (pattern296 (x1) != 0
              || !(
#line 16081 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations
   && can_create_pseudo_p ()) && 
#line 16085 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( 1)))
            return NULL;
          return gen_split_291 (insn, operands);

        case 63:
          switch (pattern297 (x1))
            {
            case 0:
              if (!(
#line 16146 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations
   && can_create_pseudo_p ()) && 
#line 16150 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( 1)))
                return NULL;
              return gen_split_292 (insn, operands);

            case 1:
              if (!(
#line 16146 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations
   && can_create_pseudo_p ()) && 
#line 16150 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( 1)))
                return NULL;
              return gen_split_294 (insn, operands);

            case 2:
              if (!(
#line 16146 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations
   && can_create_pseudo_p ()) && 
#line 16150 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( 1)))
                return NULL;
              return gen_split_296 (insn, operands);

            default:
              return NULL;
            }

        case 64:
          switch (pattern297 (x1))
            {
            case 0:
              if (!(
#line 16146 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations
   && can_create_pseudo_p ()) && 
#line 16150 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( 1)))
                return NULL;
              return gen_split_293 (insn, operands);

            case 1:
              if (!(
#line 16146 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations
   && can_create_pseudo_p ()) && 
#line 16150 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( 1)))
                return NULL;
              return gen_split_295 (insn, operands);

            case 2:
              if (!(
#line 16146 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && flag_unsafe_math_optimizations
   && can_create_pseudo_p ()) && 
#line 16150 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( 1)))
                return NULL;
              return gen_split_297 (insn, operands);

            default:
              return NULL;
            }

        default:
          return NULL;
        }

    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, 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;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_CODE (x2) != SET)
    return NULL;
  x3 = XEXP (x2, 1);
  switch (GET_CODE (x3))
    {
    case SIGN_EXTEND:
      if (GET_MODE (x3) != DImode)
        return NULL;
      x4 = XVECEXP (x1, 0, 1);
      if (pattern95 (x4, CCmode, 17) != 0)
        return NULL;
      x5 = XVECEXP (x1, 0, 2);
      if (GET_CODE (x5) != CLOBBER)
        return NULL;
      x6 = XEXP (x2, 0);
      operands[0] = x6;
      x7 = XEXP (x3, 0);
      operands[1] = x7;
      if (!register_operand (operands[1], SImode))
        return NULL;
      x8 = XEXP (x5, 0);
      operands[2] = x8;
      if (register_operand (operands[2], SImode)
          && memory_operand (operands[0], DImode)
          && 
#line 3997 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
        return gen_split_52 (insn, operands);
      if (!scratch_operand (operands[2], SImode)
          || !register_operand (operands[0], DImode)
          || !
#line 4065 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
        return NULL;
      return gen_split_53 (insn, operands);

    case FIX:
      x4 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x4) != CLOBBER)
        return NULL;
      x5 = XVECEXP (x1, 0, 2);
      if (GET_CODE (x5) != CLOBBER)
        return NULL;
      x6 = XEXP (x2, 0);
      operands[0] = x6;
      x7 = XEXP (x3, 0);
      operands[1] = x7;
      if (!register_operand (operands[1], VOIDmode))
        return NULL;
      x9 = XEXP (x4, 0);
      operands[2] = x9;
      x8 = XEXP (x5, 0);
      operands[3] = x8;
      if (!scratch_operand (operands[3], VOIDmode))
        return NULL;
      switch (GET_MODE (operands[0]))
        {
        case HImode:
          if (GET_MODE (x3) != HImode
              || !memory_operand (operands[2], HImode))
            return NULL;
          if (register_operand (operands[0], HImode)
              && 
#line 4888 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
            return gen_split_72 (insn, operands);
          if (!memory_operand (operands[0], HImode)
              || !
#line 4898 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
            return NULL;
          return gen_split_75 (insn, operands);

        case SImode:
          if (GET_MODE (x3) != SImode
              || !memory_operand (operands[2], SImode))
            return NULL;
          if (register_operand (operands[0], SImode)
              && 
#line 4888 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
            return gen_split_73 (insn, operands);
          if (!memory_operand (operands[0], SImode)
              || !
#line 4898 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
            return NULL;
          return gen_split_76 (insn, operands);

        case DImode:
          if (GET_MODE (x3) != DImode
              || !memory_operand (operands[2], DImode))
            return NULL;
          if (register_operand (operands[0], DImode)
              && 
#line 4888 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
            return gen_split_74 (insn, operands);
          if (!memory_operand (operands[0], DImode)
              || !
#line 4898 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
            return NULL;
          return gen_split_77 (insn, operands);

        default:
          return NULL;
        }

    case UNSIGNED_FLOAT:
      switch (pattern107 (x1))
        {
        case 0:
          if (!(
#line 5359 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT
   && TARGET_80387 && X87_ENABLE_FLOAT (SFmode, DImode)
   && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_TO_VEC) && 
#line 5363 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
            return NULL;
          return gen_split_99 (insn, operands);

        case 1:
          if (!(
#line 5359 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT
   && TARGET_80387 && X87_ENABLE_FLOAT (DFmode, DImode)
   && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_TO_VEC) && 
#line 5363 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
            return NULL;
          return gen_split_100 (insn, operands);

        case 2:
          if (!(
#line 5359 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT
   && TARGET_80387 && X87_ENABLE_FLOAT (XFmode, DImode)
   && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_TO_VEC) && 
#line 5363 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
            return NULL;
          return gen_split_101 (insn, operands);

        default:
          return NULL;
        }

    case DIV:
      if (pattern120 (x1, MOD) != 0)
        return NULL;
      x6 = XEXP (x2, 0);
      operands[0] = x6;
      x7 = XEXP (x3, 0);
      operands[2] = x7;
      x10 = XEXP (x3, 1);
      operands[3] = x10;
      x4 = XVECEXP (x1, 0, 1);
      x9 = XEXP (x4, 0);
      operands[1] = x9;
      x11 = XEXP (x4, 1);
      x12 = XEXP (x11, 0);
      if (!rtx_equal_p (x12, operands[2]))
        return NULL;
      x13 = XEXP (x11, 1);
      if (!rtx_equal_p (x13, operands[3]))
        return NULL;
      switch (GET_MODE (operands[0]))
        {
        case SImode:
          if (pattern159 (x1, SImode) != 0)
            return NULL;
          if (
#line 7467 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_8BIT_IDIV
   && TARGET_QIMODE_MATH
   && can_create_pseudo_p ()
   && !optimize_insn_for_size_p ()))
            return gen_split_123 (insn, operands);
          if (!
#line 7518 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
            return NULL;
          return gen_split_128 (insn, operands);

        case DImode:
          if (pattern159 (x1, DImode) != 0)
            return NULL;
          if ((
#line 7467 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_8BIT_IDIV
   && TARGET_QIMODE_MATH
   && can_create_pseudo_p ()
   && !optimize_insn_for_size_p ()) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return gen_split_124 (insn, operands);
          if (!(
#line 7518 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed) && 
#line 1018 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return NULL;
          return gen_split_129 (insn, operands);

        case HImode:
          if (pattern159 (x1, HImode) != 0
              || !(
#line 7518 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed) && 
#line 1017 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_HIMODE_MATH)))
            return NULL;
          return gen_split_127 (insn, operands);

        default:
          return NULL;
        }

    case UDIV:
      if (pattern120 (x1, UMOD) != 0)
        return NULL;
      x6 = XEXP (x2, 0);
      operands[0] = x6;
      x7 = XEXP (x3, 0);
      operands[2] = x7;
      x10 = XEXP (x3, 1);
      operands[3] = x10;
      x4 = XVECEXP (x1, 0, 1);
      x9 = XEXP (x4, 0);
      operands[1] = x9;
      x11 = XEXP (x4, 1);
      x12 = XEXP (x11, 0);
      if (!rtx_equal_p (x12, operands[2]))
        return NULL;
      x13 = XEXP (x11, 1);
      if (!rtx_equal_p (x13, operands[3]))
        return NULL;
      switch (GET_CODE (operands[3]))
        {
        case REG:
        case SUBREG:
        case MEM:
          switch (GET_MODE (operands[0]))
            {
            case SImode:
              if (pattern159 (x1, SImode) != 0)
                return NULL;
              if (
#line 7640 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_8BIT_IDIV
   && TARGET_QIMODE_MATH
   && can_create_pseudo_p ()
   && !optimize_insn_for_size_p ()))
                return gen_split_130 (insn, operands);
              if (!
#line 7678 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
                return NULL;
              return gen_split_135 (insn, operands);

            case DImode:
              if (pattern159 (x1, DImode) != 0)
                return NULL;
              if ((
#line 7640 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_8BIT_IDIV
   && TARGET_QIMODE_MATH
   && can_create_pseudo_p ()
   && !optimize_insn_for_size_p ()) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return gen_split_131 (insn, operands);
              if (!(
#line 7678 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed) && 
#line 1018 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return NULL;
              return gen_split_136 (insn, operands);

            case HImode:
              if (pattern159 (x1, HImode) != 0
                  || !(
#line 7678 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed) && 
#line 1017 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_HIMODE_MATH)))
                return NULL;
              return gen_split_134 (insn, operands);

            default:
              return NULL;
            }

        case CONST_INT:
          switch (GET_MODE (operands[0]))
            {
            case SImode:
              if (pattern678 (x1, SImode) != 0
                  || !(
#line 7699 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(IN_RANGE (INTVAL (operands[3]), 2, HOST_WIDE_INT_UC (0x80000000))
   && (UINTVAL (operands[3]) & (UINTVAL (operands[3]) - 1)) == 0) && 
#line 7702 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( 1)))
                return NULL;
              return gen_split_137 (insn, operands);

            case DImode:
              if (pattern678 (x1, DImode) != 0
                  || !((
#line 7699 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(IN_RANGE (INTVAL (operands[3]), 2, HOST_WIDE_INT_UC (0x80000000))
   && (UINTVAL (operands[3]) & (UINTVAL (operands[3]) - 1)) == 0) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)) && 
#line 7702 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( 1)))
                return NULL;
              return gen_split_138 (insn, operands);

            default:
              return NULL;
            }

        default:
          return NULL;
        }

    case NEG:
    case ABS:
      if (pattern121 (x1, USE) != 0)
        return NULL;
      if (absneg_operator (x3, VOIDmode))
        {
          operands[1] = x3;
          if (fp_register_operand (operands[0], VOIDmode))
            {
              x4 = XVECEXP (x1, 0, 1);
              x9 = XEXP (x4, 0);
              operands[2] = x9;
              x7 = XEXP (x3, 0);
              if (rtx_equal_p (x7, operands[0])
                  && 
#line 9349 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
                return gen_split_184 (insn, operands);
            }
          operands[3] = x3;
          if (register_operand (operands[0], VOIDmode))
            {
              x7 = XEXP (x3, 0);
              operands[1] = x7;
              if (register_operand (operands[1], VOIDmode))
                {
                  x4 = XVECEXP (x1, 0, 1);
                  x9 = XEXP (x4, 0);
                  operands[2] = x9;
                  if (nonimmediate_operand (operands[2], VOIDmode)
                      && 
#line 9358 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed && SSE_REG_P (operands[0])))
                    return gen_split_185 (insn, operands);
                }
            }
        }
      operands[1] = x3;
      if (absneg_operator (operands[1], SFmode)
          && general_reg_operand (operands[0], SFmode))
        {
          x4 = XVECEXP (x1, 0, 1);
          x9 = XEXP (x4, 0);
          operands[2] = x9;
          x7 = XEXP (x3, 0);
          if (rtx_equal_p (x7, operands[0])
              && 
#line 9381 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
            return gen_split_186 (insn, operands);
        }
      if (absneg_operator (operands[1], DFmode)
          && general_reg_operand (operands[0], DFmode))
        {
          x4 = XVECEXP (x1, 0, 1);
          x9 = XEXP (x4, 0);
          operands[2] = x9;
          x7 = XEXP (x3, 0);
          if (rtx_equal_p (x7, operands[0])
              && 
#line 9405 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
            return gen_split_187 (insn, operands);
        }
      if (!absneg_operator (operands[1], XFmode)
          || !general_reg_operand (operands[0], XFmode))
        return NULL;
      x4 = XVECEXP (x1, 0, 1);
      x9 = XEXP (x4, 0);
      operands[2] = x9;
      x7 = XEXP (x3, 0);
      if (!rtx_equal_p (x7, operands[0])
          || !
#line 9443 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
        return NULL;
      return gen_split_188 (insn, operands);

    case ROTATE:
      switch (pattern109 (x1))
        {
        case 0:
          if (!(
#line 10818 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed) && 
#line 1043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT)))
            return NULL;
          return gen_split_217 (insn, operands);

        case 1:
          if (!(
#line 10818 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed) && 
#line 1044 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return NULL;
          return gen_split_218 (insn, operands);

        default:
          return NULL;
        }

    case ROTATERT:
      switch (pattern109 (x1))
        {
        case 0:
          if (!(
#line 10846 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed) && 
#line 1043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT)))
            return NULL;
          return gen_split_219 (insn, operands);

        case 1:
          if (!(
#line 10846 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed) && 
#line 1044 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return NULL;
          return gen_split_220 (insn, operands);

        default:
          return NULL;
        }

    case IF_THEN_ELSE:
      x7 = XEXP (x3, 0);
      if (!ix86_fp_comparison_operator (x7, VOIDmode))
        return NULL;
      operands[0] = x7;
      x6 = XEXP (x2, 0);
      if (GET_CODE (x6) != PC)
        return NULL;
      x4 = XVECEXP (x1, 0, 1);
      if (pattern95 (x4, CCFPmode, 18) != 0)
        return NULL;
      x5 = XVECEXP (x1, 0, 2);
      if (pattern251 (x5, CCFPmode) != 0)
        return NULL;
      x14 = XEXP (x7, 0);
      operands[1] = x14;
      x15 = XEXP (x7, 1);
      operands[2] = x15;
      x10 = XEXP (x3, 1);
      operands[3] = x10;
      x16 = XEXP (x3, 2);
      operands[4] = x16;
      switch (GET_MODE (operands[1]))
        {
        case SFmode:
          if (!register_operand (operands[1], SFmode)
              || !nonimmediate_operand (operands[2], SFmode)
              || !
#line 11697 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE
   && reload_completed))
            return NULL;
          return gen_split_244 (insn, operands);

        case DFmode:
          if (!register_operand (operands[1], DFmode)
              || !nonimmediate_operand (operands[2], DFmode)
              || !
#line 11697 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE
   && reload_completed))
            return NULL;
          return gen_split_245 (insn, operands);

        case XFmode:
          if (!register_operand (operands[1], XFmode)
              || !nonimmediate_operand (operands[2], XFmode)
              || !
#line 11697 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE
   && reload_completed))
            return NULL;
          return gen_split_246 (insn, operands);

        default:
          return NULL;
        }

    case FFS:
      if (pattern111 (x1) != 0
          || !(
#line 12798 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_CMOVE) && 
#line 12800 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
        return NULL;
      return gen_split_257 (insn, operands);

    case UNSPEC:
      switch (XVECLEN (x3, 0))
        {
        case 1:
          x4 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x4) != CLOBBER)
            return NULL;
          x5 = XVECEXP (x1, 0, 2);
          if (GET_CODE (x5) != CLOBBER)
            return NULL;
          switch (XINT (x3, 1))
            {
            case 27:
              if (pattern230 (x2) != 0)
                return NULL;
              x17 = XVECEXP (x3, 0, 0);
              operands[2] = x17;
              if (!register_operand (operands[2], SImode))
                return NULL;
              x9 = XEXP (x4, 0);
              operands[0] = x9;
              if (!scratch_operand (operands[0], SImode))
                return NULL;
              x8 = XEXP (x5, 0);
              operands[1] = x8;
              if (!scratch_operand (operands[1], HImode)
                  || !(
#line 13700 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(! TARGET_POPCNT) && 
#line 13702 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
                return NULL;
              return gen_split_269 (insn, operands);

            case 55:
              if (GET_MODE (x3) != DImode)
                return NULL;
              x6 = XEXP (x2, 0);
              operands[0] = x6;
              x17 = XVECEXP (x3, 0, 0);
              operands[1] = x17;
              if (!register_operand (operands[1], XFmode))
                return NULL;
              x9 = XEXP (x4, 0);
              operands[2] = x9;
              if (!memory_operand (operands[2], DImode))
                return NULL;
              x8 = XEXP (x5, 0);
              operands[3] = x8;
              if (!scratch_operand (operands[3], VOIDmode))
                return NULL;
              if (register_operand (operands[0], DImode)
                  && 
#line 15836 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
                return gen_split_280 (insn, operands);
              if (!memory_operand (operands[0], DImode)
                  || !
#line 15847 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
                return NULL;
              return gen_split_281 (insn, operands);

            case 200:
              if (GET_MODE (x3) != DImode
                  || pattern422 (x1) != 0
                  || !(
#line 180 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
(!TARGET_64BIT && (TARGET_80387 || TARGET_SSE)) && 
#line 182 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_418 (insn, operands);

            case 201:
              if (GET_MODE (x3) != DImode
                  || pattern423 (x1) != 0
                  || !(
#line 268 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
(!TARGET_64BIT && (TARGET_80387 || TARGET_SSE)) && 
#line 270 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_419 (insn, operands);

            default:
              return NULL;
            }

        case 5:
          if (pattern167 (x1, 122, 5) != 0
              || pattern253 (x3) != 0)
            return NULL;
          x4 = XVECEXP (x1, 0, 1);
          x9 = XEXP (x4, 0);
          operands[1] = x9;
          if (!register_operand (operands[1], V16QImode))
            return NULL;
          x11 = XEXP (x4, 1);
          x18 = XVECEXP (x11, 0, 0);
          if (!rtx_equal_p (x18, operands[2]))
            return NULL;
          x19 = XVECEXP (x11, 0, 1);
          if (!rtx_equal_p (x19, operands[3])
              || pattern942 (x1) != 0)
            return NULL;
          x5 = XVECEXP (x1, 0, 2);
          x20 = XEXP (x5, 1);
          x21 = XVECEXP (x20, 0, 3);
          if (!rtx_equal_p (x21, operands[5]))
            return NULL;
          x22 = XVECEXP (x20, 0, 4);
          if (!rtx_equal_p (x22, operands[6]))
            return NULL;
          x23 = XVECEXP (x3, 0, 2);
          switch (pattern655 (x23))
            {
            case 0:
              x24 = XVECEXP (x11, 0, 2);
              if (!rtx_equal_p (x24, operands[4]))
                return NULL;
              x25 = XVECEXP (x20, 0, 2);
              if (!rtx_equal_p (x25, operands[4])
                  || !(
#line 15440 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_2
   && can_create_pseudo_p ()) && 
#line 15443 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
( 1)))
                return NULL;
              return gen_split_393 (insn, operands);

            case 1:
              x24 = XVECEXP (x11, 0, 2);
              if (pattern874 (x24) != 0)
                return NULL;
              x25 = XVECEXP (x20, 0, 2);
              if (pattern936 (x25) != 0)
                return NULL;
              x26 = XVECEXP (x23, 0, 0);
              operands[4] = x26;
              if (!memory_operand (operands[4], V16QImode))
                return NULL;
              x27 = XVECEXP (x24, 0, 0);
              if (!rtx_equal_p (x27, operands[4]))
                return NULL;
              x28 = XVECEXP (x25, 0, 0);
              if (!rtx_equal_p (x28, operands[4])
                  || !(
#line 15503 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_2
   && can_create_pseudo_p ()) && 
#line 15506 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
( 1)))
                return NULL;
              return gen_split_394 (insn, operands);

            default:
              return NULL;
            }

        case 3:
          if (pattern167 (x1, 123, 3) != 0)
            return NULL;
          x17 = XVECEXP (x3, 0, 0);
          operands[2] = x17;
          if (!register_operand (operands[2], V16QImode))
            return NULL;
          x23 = XVECEXP (x3, 0, 2);
          operands[4] = x23;
          if (!const_0_to_255_operand (operands[4], SImode))
            return NULL;
          x4 = XVECEXP (x1, 0, 1);
          x9 = XEXP (x4, 0);
          operands[1] = x9;
          if (!register_operand (operands[1], V16QImode))
            return NULL;
          x11 = XEXP (x4, 1);
          x18 = XVECEXP (x11, 0, 0);
          if (!rtx_equal_p (x18, operands[2]))
            return NULL;
          x24 = XVECEXP (x11, 0, 2);
          if (!rtx_equal_p (x24, operands[4]))
            return NULL;
          x5 = XVECEXP (x1, 0, 2);
          x20 = XEXP (x5, 1);
          x29 = XVECEXP (x20, 0, 0);
          if (!rtx_equal_p (x29, operands[2]))
            return NULL;
          x25 = XVECEXP (x20, 0, 2);
          if (!rtx_equal_p (x25, operands[4]))
            return NULL;
          x30 = XVECEXP (x3, 0, 1);
          switch (pattern475 (x30))
            {
            case 0:
              x19 = XVECEXP (x11, 0, 1);
              if (!rtx_equal_p (x19, operands[3]))
                return NULL;
              x31 = XVECEXP (x20, 0, 1);
              if (!rtx_equal_p (x31, operands[3])
                  || !(
#line 15643 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_2
   && can_create_pseudo_p ()) && 
#line 15646 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
( 1)))
                return NULL;
              return gen_split_395 (insn, operands);

            case 1:
              x19 = XVECEXP (x11, 0, 1);
              if (pattern785 (x19) != 0)
                return NULL;
              x31 = XVECEXP (x20, 0, 1);
              if (pattern919 (x31) != 0)
                return NULL;
              x32 = XVECEXP (x30, 0, 0);
              operands[3] = x32;
              if (!memory_operand (operands[3], V16QImode))
                return NULL;
              x33 = XVECEXP (x19, 0, 0);
              if (!rtx_equal_p (x33, operands[3]))
                return NULL;
              x34 = XVECEXP (x31, 0, 0);
              if (!rtx_equal_p (x34, operands[3])
                  || !(
#line 15697 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_2
   && can_create_pseudo_p ()) && 
#line 15700 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
( 1)))
                return NULL;
              return gen_split_396 (insn, operands);

            default:
              return NULL;
            }

        default:
          return NULL;
        }

    default:
      return NULL;
    }
}

static rtx_insn *
split_9 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_CODE (x2) != SET)
    return NULL;
  x3 = XEXP (x2, 1);
  switch (GET_CODE (x3))
    {
    case COMPARE:
      return split_5 (x1, insn);

    case ZERO_EXTEND:
      if (pattern94 (x1) != 0)
        return NULL;
      x4 = XEXP (x3, 0);
      switch (GET_CODE (x4))
        {
        case REG:
        case SUBREG:
        case MEM:
          switch (pattern469 (x3))
            {
            case 0:
              if (!(
#line 3840 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)) && 
#line 3842 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
                return NULL;
              return gen_split_44 (insn, operands);

            case 1:
              if (!(
#line 3840 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)) && 
#line 3842 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
                return NULL;
              return gen_split_45 (insn, operands);

            case 2:
              if (!(
#line 3887 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)) && 
#line 3889 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
                return NULL;
              return gen_split_46 (insn, operands);

            default:
              return NULL;
            }

        case PLUS:
          if (GET_MODE (x4) != SImode
              || !register_operand (operands[0], DImode)
              || GET_MODE (x3) != DImode)
            return NULL;
          x5 = XEXP (x4, 0);
          operands[1] = x5;
          if (!register_operand (operands[1], SImode))
            return NULL;
          x6 = XEXP (x4, 1);
          operands[2] = x6;
          if (!x86_64_nonmemory_operand (operands[2], SImode))
            return NULL;
          if (
#line 5792 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT
   && reload_completed && ix86_avoid_lea_for_add (insn, operands)))
            return gen_split_112 (insn, operands);
          if (!
#line 5807 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && reload_completed && ix86_lea_for_add_ok (insn, operands)))
            return NULL;
          return gen_split_113 (insn, operands);

        case ASHIFT:
          if (GET_MODE (x4) != SImode
              || !register_operand (operands[0], DImode)
              || GET_MODE (x3) != DImode)
            return NULL;
          x5 = XEXP (x4, 0);
          operands[1] = x5;
          x6 = XEXP (x4, 1);
          operands[2] = x6;
          switch (GET_CODE (operands[2]))
            {
            case REG:
            case SUBREG:
              if (!register_operand (operands[2], QImode)
                  || !nonimmediate_operand (operands[1], SImode)
                  || !
#line 9984 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && TARGET_BMI2 && reload_completed))
                return NULL;
              return gen_split_204 (insn, operands);

            case CONST_INT:
              if (!const_int_operand (operands[2], QImode)
                  || !index_register_operand (operands[1], SImode)
                  || !
#line 10170 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && reload_completed
   && true_regnum (operands[0]) != true_regnum (operands[1])))
                return NULL;
              return gen_split_206 (insn, operands);

            default:
              return NULL;
            }

        case LSHIFTRT:
          if (pattern476 (x3) != 0
              || !
#line 10595 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && TARGET_BMI2 && reload_completed))
            return NULL;
          return gen_split_215 (insn, operands);

        case ASHIFTRT:
          if (pattern476 (x3) != 0
              || !
#line 10595 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && TARGET_BMI2 && reload_completed))
            return NULL;
          return gen_split_216 (insn, operands);

        case ROTATE:
          if (pattern477 (x3) != 0
              || !
#line 10982 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && TARGET_BMI2 && reload_completed))
            return NULL;
          return gen_split_225 (insn, operands);

        case ROTATERT:
          if (pattern477 (x3) != 0
              || !
#line 10997 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && TARGET_BMI2 && reload_completed))
            return NULL;
          return gen_split_226 (insn, operands);

        default:
          return NULL;
        }

    case FLOAT_TRUNCATE:
      x7 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x7) != CLOBBER)
        return NULL;
      x8 = XEXP (x2, 0);
      operands[0] = x8;
      x4 = XEXP (x3, 0);
      operands[1] = x4;
      x9 = XEXP (x7, 0);
      operands[2] = x9;
      switch (GET_MODE (operands[0]))
        {
        case SFmode:
          if (GET_MODE (x3) != SFmode)
            return NULL;
          if (register_operand (operands[0], SFmode))
            {
              switch (GET_MODE (operands[1]))
                {
                case DFmode:
                  if (fp_register_operand (operands[1], DFmode)
                      && 
#line 4564 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
                    return gen_split_62 (insn, operands);
                  break;

                case XFmode:
                  if (register_operand (operands[1], XFmode)
                      && memory_operand (operands[2], SFmode)
                      && 
#line 4642 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && reload_completed))
                    return gen_split_63 (insn, operands);
                  break;

                default:
                  break;
                }
            }
          if (!memory_operand (operands[0], SFmode)
              || !register_operand (operands[1], XFmode)
              || !memory_operand (operands[2], SFmode)
              || !
#line 4651 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
            return NULL;
          return gen_split_65 (insn, operands);

        case DFmode:
          if (GET_MODE (x3) != DFmode
              || !register_operand (operands[1], XFmode)
              || !memory_operand (operands[2], DFmode))
            return NULL;
          if (register_operand (operands[0], DFmode)
              && 
#line 4642 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && reload_completed))
            return gen_split_64 (insn, operands);
          if (!memory_operand (operands[0], DFmode)
              || !
#line 4651 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387))
            return NULL;
          return gen_split_66 (insn, operands);

        default:
          return NULL;
        }

    case FIX:
      x7 = XVECEXP (x1, 0, 1);
      if (pattern101 (x7) != 0)
        return NULL;
      x8 = XEXP (x2, 0);
      operands[0] = x8;
      x4 = XEXP (x3, 0);
      operands[1] = x4;
      if (!register_operand (operands[1], VOIDmode))
        return NULL;
      switch (pattern234 (x3))
        {
        case 0:
          if (!(
#line 4911 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(X87_FLOAT_MODE_P (GET_MODE (operands[1]))
   && !TARGET_FISTTP
   && !(SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
	 && (TARGET_64BIT || HImode != DImode))
   && can_create_pseudo_p ()) && 
#line 4917 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( 1)))
            return NULL;
          return gen_split_78 (insn, operands);

        case 1:
          if (!(
#line 4911 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(X87_FLOAT_MODE_P (GET_MODE (operands[1]))
   && !TARGET_FISTTP
   && !(SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
	 && (TARGET_64BIT || SImode != DImode))
   && can_create_pseudo_p ()) && 
#line 4917 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( 1)))
            return NULL;
          return gen_split_79 (insn, operands);

        case 2:
          if (!(
#line 4911 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(X87_FLOAT_MODE_P (GET_MODE (operands[1]))
   && !TARGET_FISTTP
   && !(SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
	 && (TARGET_64BIT || DImode != DImode))
   && can_create_pseudo_p ()) && 
#line 4917 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( 1)))
            return NULL;
          return gen_split_80 (insn, operands);

        default:
          return NULL;
        }

    case NOT:
      x4 = XEXP (x3, 0);
      if (GET_CODE (x4) != XOR
          || pattern94 (x1) != 0)
        return NULL;
      x6 = XEXP (x4, 1);
      operands[1] = x6;
      x5 = XEXP (x4, 0);
      if (!rtx_equal_p (x5, operands[0]))
        return NULL;
      switch (GET_MODE (operands[0]))
        {
        case QImode:
          if (pattern605 (x3, QImode) != 0
              || !
#line 8908 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F && reload_completed))
            return NULL;
          return gen_split_174 (insn, operands);

        case HImode:
          if (pattern605 (x3, HImode) != 0
              || !
#line 8908 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F && reload_completed))
            return NULL;
          return gen_split_175 (insn, operands);

        case SImode:
          if (pattern605 (x3, SImode) != 0
              || !
#line 8908 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F && reload_completed))
            return NULL;
          return gen_split_176 (insn, operands);

        case DImode:
          if (pattern605 (x3, DImode) != 0
              || !
#line 8908 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVX512F && reload_completed))
            return NULL;
          return gen_split_177 (insn, operands);

        default:
          return NULL;
        }

    case NEG:
    case ABS:
      x8 = XEXP (x2, 0);
      operands[0] = x8;
      x4 = XEXP (x3, 0);
      operands[1] = x4;
      if (GET_CODE (x3) == NEG)
        {
          x7 = XVECEXP (x1, 0, 1);
          if (pattern95 (x7, CCmode, 17) == 0)
            {
              switch (GET_MODE (operands[0]))
                {
                case DImode:
                  if (nonimmediate_operand (operands[0], DImode)
                      && GET_MODE (x3) == DImode
                      && nonimmediate_operand (operands[1], DImode)
                      && (
#line 9193 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed) && 
#line 1043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT)))
                    return gen_split_182 (insn, operands);
                  break;

                case TImode:
                  if (nonimmediate_operand (operands[0], TImode)
                      && GET_MODE (x3) == TImode
                      && nonimmediate_operand (operands[1], TImode)
                      && (
#line 9193 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed) && 
#line 1044 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                    return gen_split_183 (insn, operands);
                  break;

                default:
                  break;
                }
              if (register_operand (operands[0], VOIDmode)
                  && register_operand (operands[1], VOIDmode)
                  && 
#line 17869 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(! TARGET_PARTIAL_REG_STALL && reload_completed
   && (GET_MODE (operands[0]) == HImode
       || (GET_MODE (operands[0]) == QImode
	   && (TARGET_PROMOTE_QImode
	       || optimize_insn_for_size_p ())))))
                return gen_split_323 (insn, operands);
            }
        }
      x7 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x7) != USE)
        return NULL;
      operands[3] = x3;
      x9 = XEXP (x7, 0);
      operands[2] = x9;
      switch (GET_MODE (operands[0]))
        {
        case V16SFmode:
          if (pattern474 (V16SFmode) != 0
              || !((
#line 1624 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)) && 
#line 1626 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
( reload_completed)))
            return NULL;
          return gen_split_338 (insn, operands);

        case V8SFmode:
          if (pattern474 (V8SFmode) != 0
              || !((
#line 1624 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 216 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)) && 
#line 1626 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
( reload_completed)))
            return NULL;
          return gen_split_339 (insn, operands);

        case V4SFmode:
          if (pattern474 (V4SFmode) != 0
              || !(
#line 1624 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 1626 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
( reload_completed)))
            return NULL;
          return gen_split_340 (insn, operands);

        case V8DFmode:
          if (pattern474 (V8DFmode) != 0
              || !((
#line 1624 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F)) && 
#line 1626 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
( reload_completed)))
            return NULL;
          return gen_split_341 (insn, operands);

        case V4DFmode:
          if (pattern474 (V4DFmode) != 0
              || !((
#line 1624 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)) && 
#line 1626 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
( reload_completed)))
            return NULL;
          return gen_split_342 (insn, operands);

        case V2DFmode:
          if (pattern474 (V2DFmode) != 0
              || !((
#line 1624 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 217 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)) && 
#line 1626 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
( reload_completed)))
            return NULL;
          return gen_split_343 (insn, operands);

        default:
          return NULL;
        }

    case UNSPEC:
      return split_7 (x1, insn);

    case LSHIFTRT:
      switch (pattern117 (x1))
        {
        case 0:
          if (register_operand (operands[1], DImode)
              && nonmemory_operand (operands[2], QImode)
              && (
#line 10359 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize && flag_peephole2) ? epilogue_completed : reload_completed) && 
#line 1021 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT)))
            return gen_split_207 (insn, operands);
          if (!nonimmediate_operand (operands[1], DImode)
              || !register_operand (operands[2], QImode)
              || !(
#line 10541 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2 && reload_completed) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return NULL;
          return gen_split_213 (insn, operands);

        case 1:
          if (!(
#line 10359 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize && flag_peephole2) ? epilogue_completed : reload_completed) && 
#line 1022 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return NULL;
          return gen_split_209 (insn, operands);

        case 2:
          if (!
#line 10541 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2 && reload_completed))
            return NULL;
          return gen_split_211 (insn, operands);

        default:
          return NULL;
        }

    case ASHIFTRT:
      switch (pattern117 (x1))
        {
        case 0:
          if (register_operand (operands[1], DImode)
              && nonmemory_operand (operands[2], QImode)
              && (
#line 10359 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize && flag_peephole2) ? epilogue_completed : reload_completed) && 
#line 1021 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT)))
            return gen_split_208 (insn, operands);
          if (!nonimmediate_operand (operands[1], DImode)
              || !register_operand (operands[2], QImode)
              || !(
#line 10541 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2 && reload_completed) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return NULL;
          return gen_split_214 (insn, operands);

        case 1:
          if (!(
#line 10359 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize && flag_peephole2) ? epilogue_completed : reload_completed) && 
#line 1022 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return NULL;
          return gen_split_210 (insn, operands);

        case 2:
          if (!
#line 10541 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2 && reload_completed))
            return NULL;
          return gen_split_212 (insn, operands);

        default:
          return NULL;
        }

    case ROTATE:
      if (pattern94 (x1) != 0)
        return NULL;
      x4 = XEXP (x3, 0);
      operands[1] = x4;
      switch (pattern478 (x3))
        {
        case 0:
          if (
#line 10914 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2 && reload_completed))
            return gen_split_221 (insn, operands);
          break;

        case 1:
          if ((
#line 10914 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2 && reload_completed) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return gen_split_222 (insn, operands);
          break;

        default:
          break;
        }
      if (!register_operand (operands[0], HImode))
        return NULL;
      x10 = XEXP (x3, 1);
      if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 8]
          || GET_MODE (x3) != HImode
          || !rtx_equal_p (x4, operands[0])
          || !
#line 11054 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed
  && (TARGET_USE_XCHGB || optimize_function_for_size_p (cfun))))
        return NULL;
      return gen_split_227 (insn, operands);

    case ROTATERT:
      if (pattern94 (x1) != 0)
        return NULL;
      x4 = XEXP (x3, 0);
      operands[1] = x4;
      switch (pattern478 (x3))
        {
        case 0:
          if (
#line 10928 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2 && reload_completed))
            return gen_split_223 (insn, operands);
          break;

        case 1:
          if ((
#line 10928 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_BMI2 && reload_completed) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return gen_split_224 (insn, operands);
          break;

        default:
          break;
        }
      if (!register_operand (operands[0], HImode))
        return NULL;
      x10 = XEXP (x3, 1);
      if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 8]
          || GET_MODE (x3) != HImode
          || !rtx_equal_p (x4, operands[0])
          || !
#line 11054 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed
  && (TARGET_USE_XCHGB || optimize_function_for_size_p (cfun))))
        return NULL;
      return gen_split_228 (insn, operands);

    case IF_THEN_ELSE:
      x4 = XEXP (x3, 0);
      if (!bt_comparison_operator (x4, VOIDmode))
        return NULL;
      operands[0] = x4;
      switch (pattern256 (x1))
        {
        case 0:
          if (!(
#line 11231 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_USE_BT || optimize_function_for_size_p (cfun))
   && (CONST_INT_P (operands[2])
       ? (INTVAL (operands[2]) < GET_MODE_BITSIZE (SImode)
	  && INTVAL (operands[2])
	       >= (optimize_function_for_size_p (cfun) ? 8 : 32))
       : register_operand (operands[2], SImode))
   && can_create_pseudo_p ()) && 
#line 11239 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( 1)))
            return NULL;
          return gen_split_229 (insn, operands);

        case 1:
          if (!((
#line 11231 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_USE_BT || optimize_function_for_size_p (cfun))
   && (CONST_INT_P (operands[2])
       ? (INTVAL (operands[2]) < GET_MODE_BITSIZE (DImode)
	  && INTVAL (operands[2])
	       >= (optimize_function_for_size_p (cfun) ? 8 : 32))
       : register_operand (operands[2], SImode))
   && can_create_pseudo_p ()) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)) && 
#line 11239 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( 1)))
            return NULL;
          return gen_split_230 (insn, operands);

        case 2:
          if (!(
#line 11268 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_USE_BT || optimize_function_for_size_p (cfun))
   && can_create_pseudo_p ()) && 
#line 11271 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( 1)))
            return NULL;
          return gen_split_231 (insn, operands);

        case 3:
          if (!((
#line 11268 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_USE_BT || optimize_function_for_size_p (cfun))
   && can_create_pseudo_p ()) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)) && 
#line 11271 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( 1)))
            return NULL;
          return gen_split_232 (insn, operands);

        case 4:
          if (!(
#line 11302 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_USE_BT || optimize_function_for_size_p (cfun))
   && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
      == GET_MODE_BITSIZE (SImode)-1
   && can_create_pseudo_p ()) && 
#line 11307 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( 1)))
            return NULL;
          return gen_split_233 (insn, operands);

        case 5:
          if (!((
#line 11302 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_USE_BT || optimize_function_for_size_p (cfun))
   && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
      == GET_MODE_BITSIZE (DImode)-1
   && can_create_pseudo_p ()) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)) && 
#line 11307 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( 1)))
            return NULL;
          return gen_split_234 (insn, operands);

        default:
          return NULL;
        }

    case NE:
    case EQ:
    case GE:
    case GT:
    case LE:
    case LT:
    case GEU:
    case GTU:
    case LEU:
    case LTU:
    case UNORDERED:
    case ORDERED:
    case UNEQ:
    case UNGE:
    case UNGT:
    case UNLE:
    case UNLT:
    case LTGT:
      operands[1] = x3;
      if (pattern153 (x1) != 0
          || !(
#line 11349 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_PARTIAL_REG_STALL
   && TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)) && 
#line 11352 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
        return NULL;
      return gen_split_236 (insn, operands);

    case CTZ:
      switch (pattern118 (x1))
        {
        case 0:
          if (!(
#line 12865 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_BMI || TARGET_GENERIC)
   && TARGET_AVOID_FALSE_DEP_FOR_BMI && optimize_function_for_speed_p (cfun)) && 
#line 12868 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
            return NULL;
          return gen_split_258 (insn, operands);

        case 1:
          if (!((
#line 12865 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_BMI || TARGET_GENERIC)
   && TARGET_AVOID_FALSE_DEP_FOR_BMI && optimize_function_for_speed_p (cfun)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)) && 
#line 12868 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
            return NULL;
          return gen_split_259 (insn, operands);

        default:
          return NULL;
        }

    case CLZ:
      switch (pattern118 (x1))
        {
        case 0:
          if (!(
#line 13024 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LZCNT
   && TARGET_AVOID_FALSE_DEP_FOR_BMI && optimize_function_for_speed_p (cfun)) && 
#line 13027 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
            return NULL;
          return gen_split_262 (insn, operands);

        case 1:
          if (!((
#line 13024 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_LZCNT
   && TARGET_AVOID_FALSE_DEP_FOR_BMI && optimize_function_for_speed_p (cfun)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)) && 
#line 13027 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
            return NULL;
          return gen_split_263 (insn, operands);

        default:
          return NULL;
        }

    case POPCOUNT:
      switch (pattern118 (x1))
        {
        case 0:
          if (!(
#line 13492 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_POPCNT
   && TARGET_AVOID_FALSE_DEP_FOR_BMI && optimize_function_for_speed_p (cfun)) && 
#line 13495 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
            return NULL;
          return gen_split_266 (insn, operands);

        case 1:
          if (!((
#line 13492 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_POPCNT
   && TARGET_AVOID_FALSE_DEP_FOR_BMI && optimize_function_for_speed_p (cfun)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)) && 
#line 13495 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
            return NULL;
          return gen_split_267 (insn, operands);

        default:
          return NULL;
        }

    case PLUS:
    case MINUS:
    case MULT:
    case AND:
    case IOR:
    case XOR:
    case ASHIFT:
      return split_6 (x1, insn);

    case SUBREG:
      if (XINT (x3, 1) != 0
          || GET_MODE (x3) != V4SImode)
        return NULL;
      x7 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x7) != CLOBBER)
        return NULL;
      x8 = XEXP (x2, 0);
      operands[0] = x8;
      if (!register_operand (operands[0], V4SImode))
        return NULL;
      x4 = XEXP (x3, 0);
      operands[1] = x4;
      if (!nonimmediate_operand (operands[1], DImode))
        return NULL;
      x9 = XEXP (x7, 0);
      operands[2] = x9;
      if (!scratch_operand (operands[2], V4SImode)
          || !(
#line 1098 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(!TARGET_64BIT && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_TO_VEC) && 
#line 1100 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
( reload_completed)))
        return NULL;
      return gen_split_335 (insn, operands);

    default:
      return NULL;
    }
}

static rtx_insn *
split_10 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  switch (GET_MODE (operands[0]))
    {
    case TImode:
      if (!general_operand (operands[1], TImode))
        return NULL;
      if (push_operand (operands[0], TImode)
          && 
#line 1741 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && reload_completed
   && !SSE_REG_P (operands[1])))
        return gen_split_16 (insn, operands);
      if (!nonimmediate_operand (operands[0], TImode)
          || !
#line 2130 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed
   && !SSE_REG_P (operands[0]) && !SSE_REG_P (operands[1])))
        return NULL;
      return gen_split_19 (insn, operands);

    case DImode:
      if (push_operand (operands[0], DImode))
        {
          if (immediate_operand (operands[1], DImode)
              && 
#line 1790 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && ((optimize > 0 && flag_peephole2)
		    ? epilogue_completed : reload_completed)
   && !symbolic_operand (operands[1], DImode)
   && !x86_64_immediate_operand (operands[1], DImode)))
            return gen_split_17 (insn, operands);
          if (general_operand (operands[1], DImode)
              && 
#line 1807 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && reload_completed
   && !(MMX_REG_P (operands[1]) || SSE_REG_P (operands[1]))))
            return gen_split_18 (insn, operands);
        }
      if (!nonimmediate_operand (operands[0], DImode)
          || !general_operand (operands[1], DImode)
          || !
#line 2312 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && reload_completed
   && !(MMX_REG_P (operands[0])
	|| SSE_REG_P (operands[0])
	|| MASK_REG_P (operands[0]))
   && !(MMX_REG_P (operands[1])
	|| SSE_REG_P (operands[1])
	|| MASK_REG_P (operands[1]))))
        return NULL;
      return gen_split_20 (insn, operands);

    case TFmode:
      if (!push_operand (operands[0], TFmode)
          || !sse_reg_operand (operands[1], TFmode))
        return NULL;
      if ((
#line 2933 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_SSE && reload_completed) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
        return gen_split_21 (insn, operands);
      if (!(
#line 2933 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_SSE && reload_completed) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
        return NULL;
      return gen_split_22 (insn, operands);

    case DFmode:
      if (!push_operand (operands[0], DFmode)
          || !any_fp_register_operand (operands[1], DFmode))
        return NULL;
      if ((
#line 3031 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
        return gen_split_27 (insn, operands);
      if (!(
#line 3031 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
        return NULL;
      return gen_split_28 (insn, operands);

    case SFmode:
      if (!push_operand (operands[0], SFmode))
        return NULL;
      if (any_fp_register_operand (operands[1], SFmode))
        {
          if ((
#line 3069 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
            return gen_split_29 (insn, operands);
          if ((
#line 3069 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
            return gen_split_30 (insn, operands);
        }
      if (!memory_operand (operands[1], SFmode)
          || !
#line 3092 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
        return NULL;
      return gen_split_31 (insn, operands);

    default:
      return NULL;
    }
}

static rtx_insn *
split_11 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  operands[1] = x2;
  res = split_10 (x1, insn);
  if (res != NULL_RTX)
    return res;
  x3 = XEXP (x1, 0);
  if (GET_CODE (x3) == MEM)
    {
      if (GET_MODE (x3) == XFmode)
        {
          x4 = XEXP (x3, 0);
          if (GET_CODE (x4) == PRE_MODIFY
              && pattern125 (x4) == 0)
            {
              switch (pattern518 (x1))
                {
                case 0:
                  if (((
#line 2947 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 2949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( 1)))
                    return gen_split_23 (insn, operands);
                  break;

                case 1:
                  if (((
#line 2947 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 2949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( 1)))
                    return gen_split_24 (insn, operands);
                  break;

                default:
                  break;
                }
            }
        }
      operands[0] = x3;
      operands[1] = x2;
      if (fp_register_operand (operands[1], XFmode)
          && push_operand (operands[0], XFmode))
        {
          if ((
#line 2997 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
            return gen_split_25 (insn, operands);
          if ((
#line 2997 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
            return gen_split_26 (insn, operands);
        }
      if (general_operand (operands[1], VOIDmode)
          && push_operand (operands[0], VOIDmode)
          && 
#line 3104 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed
   && (GET_MODE (operands[0]) == TFmode
       || GET_MODE (operands[0]) == XFmode
       || GET_MODE (operands[0]) == DFmode)
   && !ANY_FP_REG_P (operands[1])))
        return gen_split_32 (insn, operands);
    }
  operands[1] = x2;
  operands[0] = x3;
  switch (GET_MODE (operands[0]))
    {
    case TFmode:
      if (nonimmediate_operand (operands[0], TFmode)
          && general_operand (operands[1], TFmode)
          && 
#line 3196 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed
   && !(ANY_FP_REG_P (operands[0]) || ANY_FP_REG_P (operands[1]))))
        return gen_split_33 (insn, operands);
      break;

    case XFmode:
      if (nonimmediate_operand (operands[0], XFmode)
          && general_operand (operands[1], XFmode)
          && 
#line 3270 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed
   && !(ANY_FP_REG_P (operands[0]) || ANY_FP_REG_P (operands[1]))))
        return gen_split_34 (insn, operands);
      break;

    case DFmode:
      if (nonimmediate_operand (operands[0], DFmode)
          && general_operand (operands[1], DFmode)
          && 
#line 3473 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && reload_completed
   && !(ANY_FP_REG_P (operands[0]) || ANY_FP_REG_P (operands[1]))))
        return gen_split_35 (insn, operands);
      break;

    default:
      break;
    }
  if (any_fp_register_operand (operands[0], VOIDmode)
      && memory_operand (operands[1], VOIDmode)
      && 
#line 3617 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed
   && (GET_MODE (operands[0]) == TFmode
       || GET_MODE (operands[0]) == XFmode
       || GET_MODE (operands[0]) == DFmode
       || GET_MODE (operands[0]) == SFmode)))
    return gen_split_36 (insn, operands);
  if (fp_register_operand (operands[0], SFmode)
      && immediate_operand (operands[1], SFmode)
      && 
#line 3657 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed
   && (standard_80387_constant_p (operands[1]) == 8
       || standard_80387_constant_p (operands[1]) == 9)))
    return gen_split_38 (insn, operands);
  if (fp_register_operand (operands[0], DFmode)
      && immediate_operand (operands[1], DFmode)
      && 
#line 3657 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed
   && (standard_80387_constant_p (operands[1]) == 8
       || standard_80387_constant_p (operands[1]) == 9)))
    return gen_split_39 (insn, operands);
  if (fp_register_operand (operands[0], XFmode)
      && immediate_operand (operands[1], XFmode)
      && 
#line 3657 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed
   && (standard_80387_constant_p (operands[1]) == 8
       || standard_80387_constant_p (operands[1]) == 9)))
    return gen_split_40 (insn, operands);
  if (register_operand (operands[0], V4SFmode)
      && zero_extended_scalar_load_operand (operands[1], V4SFmode)
      && 
#line 1127 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && reload_completed))
    return gen_split_336 (insn, operands);
  if (register_operand (operands[0], V2DFmode)
      && zero_extended_scalar_load_operand (operands[1], V2DFmode)
      && 
#line 1141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && reload_completed))
    return gen_split_337 (insn, operands);
  switch (GET_MODE (operands[0]))
    {
    case V8QImode:
      if (!nonimmediate_operand (operands[0], V8QImode)
          || !general_operand (operands[1], V8QImode)
          || !
#line 210 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(!TARGET_64BIT && reload_completed
   && !(MMX_REG_P (operands[0]) || SSE_REG_P (operands[0]))
   && !(MMX_REG_P (operands[1]) || SSE_REG_P (operands[1]))))
        return NULL;
      return gen_split_325 (insn, operands);

    case V4HImode:
      if (!nonimmediate_operand (operands[0], V4HImode)
          || !general_operand (operands[1], V4HImode)
          || !
#line 210 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(!TARGET_64BIT && reload_completed
   && !(MMX_REG_P (operands[0]) || SSE_REG_P (operands[0]))
   && !(MMX_REG_P (operands[1]) || SSE_REG_P (operands[1]))))
        return NULL;
      return gen_split_326 (insn, operands);

    case V2SImode:
      if (!nonimmediate_operand (operands[0], V2SImode)
          || !general_operand (operands[1], V2SImode)
          || !
#line 210 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(!TARGET_64BIT && reload_completed
   && !(MMX_REG_P (operands[0]) || SSE_REG_P (operands[0]))
   && !(MMX_REG_P (operands[1]) || SSE_REG_P (operands[1]))))
        return NULL;
      return gen_split_327 (insn, operands);

    case V1DImode:
      if (!nonimmediate_operand (operands[0], V1DImode)
          || !general_operand (operands[1], V1DImode)
          || !
#line 210 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(!TARGET_64BIT && reload_completed
   && !(MMX_REG_P (operands[0]) || SSE_REG_P (operands[0]))
   && !(MMX_REG_P (operands[1]) || SSE_REG_P (operands[1]))))
        return NULL;
      return gen_split_328 (insn, operands);

    case V2SFmode:
      if (!nonimmediate_operand (operands[0], V2SFmode)
          || !general_operand (operands[1], V2SFmode)
          || !
#line 210 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(!TARGET_64BIT && reload_completed
   && !(MMX_REG_P (operands[0]) || SSE_REG_P (operands[0]))
   && !(MMX_REG_P (operands[1]) || SSE_REG_P (operands[1]))))
        return NULL;
      return gen_split_329 (insn, operands);

    default:
      return NULL;
    }
}

static rtx_insn *
split_12 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  rtx_insn *res ATTRIBUTE_UNUSED;
  switch (GET_MODE (operands[0]))
    {
    case DFmode:
      if (!push_operand (operands[0], DFmode))
        return NULL;
      x2 = XEXP (x1, 1);
      if (GET_MODE (x2) != DFmode
          || !fp_register_operand (operands[1], SFmode))
        return NULL;
      if ((
#line 4208 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
        return gen_split_54 (insn, operands);
      if (!(
#line 4208 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
        return NULL;
      return gen_split_55 (insn, operands);

    case XFmode:
      if (!push_operand (operands[0], XFmode))
        return NULL;
      x2 = XEXP (x1, 1);
      if (GET_MODE (x2) != XFmode)
        return NULL;
      switch (GET_MODE (operands[1]))
        {
        case SFmode:
          if (!fp_register_operand (operands[1], SFmode))
            return NULL;
          if ((
#line 4215 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
            return gen_split_56 (insn, operands);
          if (!(
#line 4215 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
            return NULL;
          return gen_split_57 (insn, operands);

        case DFmode:
          if (!fp_register_operand (operands[1], DFmode))
            return NULL;
          if ((
#line 4215 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)))
            return gen_split_58 (insn, operands);
          if (!(
#line 4215 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)))
            return NULL;
          return gen_split_59 (insn, operands);

        default:
          return NULL;
        }

    default:
      return NULL;
    }
}

static rtx_insn *
split_13 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != DImode)
    return NULL;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  x4 = XEXP (x2, 0);
  operands[1] = x4;
  if (memory_operand (operands[1], SImode)
      && memory_operand (operands[0], DImode)
      && 
#line 3790 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
    return gen_split_41 (insn, operands);
  if (register_operand (operands[0], DImode))
    {
      switch (GET_MODE (operands[1]))
        {
        case SImode:
          if (register_operand (operands[1], SImode)
              && 
#line 3797 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && reload_completed
   && !(MMX_REG_P (operands[0]) || SSE_REG_P (operands[0]))
   && true_regnum (operands[0]) == true_regnum (operands[1])))
            return gen_split_42 (insn, operands);
          break;

        case QImode:
          if (nonimmediate_operand (operands[1], QImode))
            {
              if ((
#line 3920 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_STV && TARGET_SSE2
   && TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)) && 
#line 3923 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed && GENERAL_REG_P (operands[0]))))
                return gen_split_47 (insn, operands);
              if ((
#line 3938 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_STV && TARGET_SSE2
   && !(TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun))) && 
#line 3941 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed && GENERAL_REG_P (operands[0]))))
                return gen_split_49 (insn, operands);
            }
          break;

        case HImode:
          if (nonimmediate_operand (operands[1], HImode))
            {
              if ((
#line 3920 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_STV && TARGET_SSE2
   && TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)) && 
#line 3923 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed && GENERAL_REG_P (operands[0]))))
                return gen_split_48 (insn, operands);
              if ((
#line 3938 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_STV && TARGET_SSE2
   && !(TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun))) && 
#line 3941 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed && GENERAL_REG_P (operands[0]))))
                return gen_split_50 (insn, operands);
            }
          break;

        default:
          break;
        }
    }
  if (!nonimmediate_operand (operands[1], SImode))
    return NULL;
  if (nonimmediate_operand (operands[0], DImode)
      && 
#line 3806 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && reload_completed
   && !(MEM_P (operands[0]) && MEM_P (operands[1]))
   && !(MMX_REG_P (operands[0]) || SSE_REG_P (operands[0]))))
    return gen_split_43 (insn, operands);
  if (!register_operand (operands[0], DImode)
      || !(
#line 3949 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_STV && TARGET_SSE2) && 
#line 3951 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed && GENERAL_REG_P (operands[0]))))
    return NULL;
  return gen_split_51 (insn, operands);
}

static rtx_insn *
split_14 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  rtx_insn *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 SFmode:
      switch (pattern169 (x3, SFmode))
        {
        case 0:
          if (
#line 5175 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_SSE2 && TARGET_SSE_MATH
   && TARGET_USE_VECTOR_CONVERTS && optimize_function_for_speed_p (cfun)
   && reload_completed && SSE_REG_P (operands[0])
   && (MEM_P (operands[1]) || TARGET_INTER_UNIT_MOVES_TO_VEC)
   && (!EXT_REX_SSE_REG_P (operands[0])
       || TARGET_AVX512VL)))
            return gen_split_87 (insn, operands);
          if (!
#line 5201 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_SSE2 && TARGET_SSE_MATH
   && TARGET_SSE_PARTIAL_REG_DEPENDENCY
   && optimize_function_for_speed_p (cfun)
   && reload_completed && SSE_REG_P (operands[0])
   && (!EXT_REX_SSE_REG_P (operands[0])
       || TARGET_AVX512VL)))
            return NULL;
          return gen_split_89 (insn, operands);

        case 1:
          if (!(
#line 5201 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_SSE2 && TARGET_SSE_MATH
   && TARGET_SSE_PARTIAL_REG_DEPENDENCY
   && optimize_function_for_speed_p (cfun)
   && reload_completed && SSE_REG_P (operands[0])
   && (!EXT_REX_SSE_REG_P (operands[0])
       || TARGET_AVX512VL)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return NULL;
          return gen_split_90 (insn, operands);

        default:
          return NULL;
        }

    case DFmode:
      switch (pattern169 (x3, DFmode))
        {
        case 0:
          if (
#line 5175 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_SSE2 && TARGET_SSE_MATH
   && TARGET_USE_VECTOR_CONVERTS && optimize_function_for_speed_p (cfun)
   && reload_completed && SSE_REG_P (operands[0])
   && (MEM_P (operands[1]) || TARGET_INTER_UNIT_MOVES_TO_VEC)
   && (!EXT_REX_SSE_REG_P (operands[0])
       || TARGET_AVX512VL)))
            return gen_split_88 (insn, operands);
          if (!
#line 5201 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_SSE2 && TARGET_SSE_MATH
   && TARGET_SSE_PARTIAL_REG_DEPENDENCY
   && optimize_function_for_speed_p (cfun)
   && reload_completed && SSE_REG_P (operands[0])
   && (!EXT_REX_SSE_REG_P (operands[0])
       || TARGET_AVX512VL)))
            return NULL;
          return gen_split_91 (insn, operands);

        case 1:
          if (!(
#line 5201 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_SSE2 && TARGET_SSE_MATH
   && TARGET_SSE_PARTIAL_REG_DEPENDENCY
   && optimize_function_for_speed_p (cfun)
   && reload_completed && SSE_REG_P (operands[0])
   && (!EXT_REX_SSE_REG_P (operands[0])
       || TARGET_AVX512VL)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return NULL;
          return gen_split_92 (insn, operands);

        default:
          return NULL;
        }

    default:
      return NULL;
    }
}

static rtx_insn *
split_15 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  switch (XVECLEN (x3, 0))
    {
    case 3:
      if (XINT (x3, 1) != 46)
        return NULL;
      switch (pattern123 (x3))
        {
        case 0:
          if (!(
#line 9524 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)
   || (TARGET_SSE && (SFmode == TFmode))) && 
#line 9527 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
            return NULL;
          return gen_split_189 (insn, operands);

        case 1:
          if (!(
#line 9524 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)
   || (TARGET_SSE && (DFmode == TFmode))) && 
#line 9527 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
            return NULL;
          return gen_split_190 (insn, operands);

        case 2:
          if (!(
#line 9524 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((SSE_FLOAT_MODE_P (TFmode) && TARGET_SSE_MATH)
   || (TARGET_SSE && (TFmode == TFmode))) && 
#line 9527 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
            return NULL;
          return gen_split_191 (insn, operands);

        default:
          return NULL;
        }

    case 1:
      x4 = XVECEXP (x3, 0, 0);
      operands[1] = x4;
      switch (XINT (x3, 1))
        {
        case 55:
          if (GET_MODE (x3) != HImode
              || !register_operand (operands[0], HImode)
              || !register_operand (operands[1], XFmode)
              || !(
#line 15855 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && can_create_pseudo_p ()) && 
#line 15858 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( 1)))
            return NULL;
          return gen_split_282 (insn, operands);

        case 76:
          if (GET_MODE (x3) != HImode
              || !register_operand (operands[0], HImode))
            return NULL;
          switch (GET_MODE (operands[1]))
            {
            case SFmode:
              if (!memory_operand (operands[1], SFmode)
                  || !(
#line 16334 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && can_create_pseudo_p ()) && 
#line 16337 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( 1)))
                return NULL;
              return gen_split_310 (insn, operands);

            case DFmode:
              if (!memory_operand (operands[1], DFmode)
                  || !(
#line 16334 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && can_create_pseudo_p ()) && 
#line 16337 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( 1)))
                return NULL;
              return gen_split_311 (insn, operands);

            default:
              return NULL;
            }

        case 140:
          switch (pattern173 (x3))
            {
            case 0:
              if (!(
#line 18415 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX) && 
#line 18417 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
( reload_completed)))
                return NULL;
              return gen_split_409 (insn, operands);

            case 1:
              if (!(
#line 18415 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX) && 
#line 18417 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
( reload_completed)))
                return NULL;
              return gen_split_410 (insn, operands);

            case 2:
              if (!(
#line 18415 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX) && 
#line 18417 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
( reload_completed)))
                return NULL;
              return gen_split_411 (insn, operands);

            case 3:
              if (!(
#line 19294 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 19296 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
( reload_completed)))
                return NULL;
              return gen_split_412 (insn, operands);

            case 4:
              if (!(
#line 19314 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 19316 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
( reload_completed)))
                return NULL;
              return gen_split_415 (insn, operands);

            case 5:
              if (!(
#line 19294 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 19296 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
( reload_completed)))
                return NULL;
              return gen_split_413 (insn, operands);

            case 6:
              if (!(
#line 19314 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 19316 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
( reload_completed)))
                return NULL;
              return gen_split_416 (insn, operands);

            case 7:
              if (!(
#line 19294 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 19296 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
( reload_completed)))
                return NULL;
              return gen_split_414 (insn, operands);

            case 8:
              if (!(
#line 19314 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F) && 
#line 19316 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
( reload_completed)))
                return NULL;
              return gen_split_417 (insn, operands);

            default:
              return NULL;
            }

        default:
          return NULL;
        }

    default:
      return NULL;
    }
}

static rtx_insn *
split_16 (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;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  if (GET_CODE (x5) != REG
      || REGNO (x5) != 17)
    return NULL;
  x6 = XEXP (x4, 1);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return NULL;
  x7 = XEXP (x3, 1);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return NULL;
  x8 = XEXP (x2, 1);
  if (GET_CODE (x8) != LABEL_REF)
    return NULL;
  x9 = XEXP (x2, 2);
  if (GET_CODE (x9) != PC)
    return NULL;
  x10 = XEXP (x1, 0);
  if (GET_CODE (x10) != PC)
    return NULL;
  x11 = XEXP (x8, 0);
  operands[1] = x11;
  switch (GET_CODE (x3))
    {
    case NE:
      return gen_split_242 (insn, operands);

    case EQ:
      return gen_split_243 (insn, operands);

    default:
      return NULL;
    }
}

static rtx_insn *
split_17 (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);
  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:
      x4 = XEXP (x3, 0);
      if (ix86_comparison_operator (x4, VOIDmode))
        {
          operands[0] = x4;
          res = split_16 (x1, insn);
          if (res != NULL_RTX)
            return res;
        }
      operands[1] = x3;
      if (GET_CODE (x4) != REG
          || REGNO (x4) != 17)
        return NULL;
      x5 = XEXP (x3, 1);
      if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return NULL;
      x6 = XEXP (x1, 0);
      operands[0] = x6;
      x7 = XEXP (x2, 1);
      operands[2] = x7;
      x8 = XEXP (x2, 2);
      operands[3] = x8;
      switch (GET_MODE (operands[0]))
        {
        case HImode:
          if (!register_operand (operands[0], HImode)
              || GET_MODE (x2) != HImode
              || !ix86_comparison_operator (operands[1], VOIDmode))
            return NULL;
          if (nonimmediate_operand (operands[2], HImode)
              && nonimmediate_operand (operands[3], HImode)
              && 
#line 17285 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_CMOVE
   && TARGET_AVOID_MEM_OPND_FOR_CMOVE
   && (MEM_P (operands[2]) || MEM_P (operands[3]))
   && can_create_pseudo_p ()
   && optimize_insn_for_speed_p ()))
            return gen_split_312 (insn, operands);
          if (!register_operand (operands[2], HImode)
              || !register_operand (operands[3], HImode)
              || !
#line 17316 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_CMOVE && !TARGET_PARTIAL_REG_STALL
   && reload_completed))
            return NULL;
          return gen_split_316 (insn, operands);

        case QImode:
          if (pattern519 (x2) != 0
              || !
#line 17316 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_CMOVE && !TARGET_PARTIAL_REG_STALL
   && reload_completed))
            return NULL;
          return gen_split_315 (insn, operands);

        case DFmode:
          if (GET_MODE (x2) != DFmode
              || !nonimmediate_operand (operands[2], DFmode)
              || !nonimmediate_operand (operands[3], DFmode))
            return NULL;
          if (register_and_not_any_fp_reg_operand (operands[0], DFmode)
              && fcmov_comparison_operator (operands[1], VOIDmode)
              && 
#line 17438 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && reload_completed))
            return gen_split_317 (insn, operands);
          if (!register_operand (operands[0], DFmode)
              || !ix86_comparison_operator (operands[1], VOIDmode)
              || !
#line 17472 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_80387 && TARGET_CMOVE
   && TARGET_AVOID_MEM_OPND_FOR_CMOVE
   && (MEM_P (operands[2]) || MEM_P (operands[3]))
   && can_create_pseudo_p ()
   && optimize_insn_for_speed_p ()))
            return NULL;
          return gen_split_319 (insn, operands);

        case SFmode:
          if (pattern520 (x2, SFmode) != 0
              || !
#line 17472 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_80387 && TARGET_CMOVE
   && TARGET_AVOID_MEM_OPND_FOR_CMOVE
   && (MEM_P (operands[2]) || MEM_P (operands[3]))
   && can_create_pseudo_p ()
   && optimize_insn_for_speed_p ()))
            return NULL;
          return gen_split_318 (insn, operands);

        default:
          return NULL;
        }

    default:
      return NULL;
    }
}

static rtx_insn *
split_18 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  x4 = XVECEXP (x3, 0, 0);
  if (GET_CODE (x4) != CONST_INT)
    return NULL;
  switch (XWINT (x4, 0))
    {
    case 0LL:
      switch (GET_MODE (operands[0]))
        {
        case SFmode:
          switch (pattern456 (x2))
            {
            case 0:
              if ((
#line 602 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX && !(MEM_P (operands[0]) && MEM_P (operands[1]))) && 
#line 604 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
( reload_completed)))
                return gen_split_330 (insn, operands);
              break;

            case 1:
              if ((
#line 6963 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && !(MEM_P (operands[0]) && MEM_P (operands[1]))) && 
#line 6965 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
( reload_completed)))
                return gen_split_362 (insn, operands);
              break;

            default:
              break;
            }
          break;

        case DFmode:
          if (register_operand (operands[0], DFmode)
              && GET_MODE (x2) == DFmode
              && nonimmediate_operand (operands[1], V2DFmode)
              && 
#line 8755 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && reload_completed))
            return gen_split_380 (insn, operands);
          break;

        default:
          break;
        }
      break;

    case 1LL:
      switch (GET_MODE (operands[0]))
        {
        case SFmode:
          if (register_operand (operands[0], SFmode)
              && GET_MODE (x2) == SFmode
              && memory_operand (operands[1], V2SFmode)
              && 
#line 641 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX && reload_completed))
            return gen_split_331 (insn, operands);
          break;

        case DFmode:
          if (register_operand (operands[0], DFmode)
              && GET_MODE (x2) == DFmode
              && memory_operand (operands[1], V2DFmode)
              && 
#line 8712 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && reload_completed))
            return gen_split_379 (insn, operands);
          break;

        default:
          break;
        }
      break;

    default:
      break;
    }
  operands[2] = x4;
  switch (GET_MODE (operands[0]))
    {
    case SFmode:
      if (GET_MODE (x2) != SFmode)
        return NULL;
      if (nonimmediate_operand (operands[0], SFmode)
          && register_operand (operands[1], V4SFmode)
          && const_0_to_3_operand (operands[2], SImode)
          && (
#line 6979 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE4_1) && 
#line 6985 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
( reload_completed && SSE_REG_P (operands[0]))))
        return gen_split_363 (insn, operands);
      if (!register_operand (operands[0], SFmode)
          || !memory_operand (operands[1], V4SFmode)
          || !const_0_to_3_operand (operands[2], VOIDmode)
          || !(
#line 7020 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE) && 
#line 7022 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
( reload_completed)))
        return NULL;
      return gen_split_364 (insn, operands);

    case QImode:
      if (!register_operand (operands[0], QImode)
          || GET_MODE (x2) != QImode
          || !memory_operand (operands[1], V16QImode)
          || !const_0_to_15_operand (operands[2], VOIDmode)
          || !
#line 13476 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && reload_completed))
        return NULL;
      return gen_split_387 (insn, operands);

    case HImode:
      if (!register_operand (operands[0], HImode)
          || GET_MODE (x2) != HImode
          || !memory_operand (operands[1], V8HImode)
          || !const_0_to_7_operand (operands[2], VOIDmode)
          || !
#line 13476 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && reload_completed))
        return NULL;
      return gen_split_388 (insn, operands);

    default:
      return NULL;
    }
}

static rtx_insn *
split_19 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  if (pattern300 (x3) != 0)
    return NULL;
  x4 = XVECEXP (x3, 0, 4);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
    return NULL;
  x5 = XVECEXP (x3, 0, 5);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
    return NULL;
  x6 = XVECEXP (x3, 0, 6);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
    return NULL;
  x7 = XVECEXP (x3, 0, 7);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
    return NULL;
  switch (pattern691 (x2))
    {
    case 0:
      if (!
#line 7400 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))
   && reload_completed))
        return NULL;
      return gen_split_367 (insn, operands);

    case 1:
      if (!
#line 7400 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))
   && reload_completed))
        return NULL;
      return gen_split_368 (insn, operands);

    case 2:
      if (!(
#line 7633 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))) && 
#line 7635 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
( reload_completed)))
        return NULL;
      return gen_split_374 (insn, operands);

    default:
      return NULL;
    }
}

static rtx_insn *
split_20 (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 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  if (pattern302 (x3) != 0)
    return NULL;
  x4 = XVECEXP (x3, 0, 16);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
    return NULL;
  x5 = XVECEXP (x3, 0, 17);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 17])
    return NULL;
  x6 = XVECEXP (x3, 0, 18);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 18])
    return NULL;
  x7 = XVECEXP (x3, 0, 19);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 19])
    return NULL;
  x8 = XVECEXP (x3, 0, 20);
  if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 20])
    return NULL;
  x9 = XVECEXP (x3, 0, 21);
  if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 21])
    return NULL;
  x10 = XVECEXP (x3, 0, 22);
  if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 22])
    return NULL;
  x11 = XVECEXP (x3, 0, 23);
  if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 23])
    return NULL;
  x12 = XVECEXP (x3, 0, 24);
  if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 24])
    return NULL;
  x13 = XVECEXP (x3, 0, 25);
  if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 25])
    return NULL;
  x14 = XVECEXP (x3, 0, 26);
  if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 26])
    return NULL;
  x15 = XVECEXP (x3, 0, 27);
  if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 27])
    return NULL;
  x16 = XVECEXP (x3, 0, 28);
  if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 28])
    return NULL;
  x17 = XVECEXP (x3, 0, 29);
  if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 29])
    return NULL;
  x18 = XVECEXP (x3, 0, 30);
  if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 30])
    return NULL;
  x19 = XVECEXP (x3, 0, 31);
  if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 31]
      || !nonimmediate_operand (operands[0], V32QImode)
      || GET_MODE (x2) != V32QImode
      || !nonimmediate_operand (operands[1], V64QImode)
      || !(
#line 7681 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))) && 
#line 7683 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
( reload_completed)))
    return NULL;
  return gen_split_375 (insn, operands);
}

static rtx_insn *
split_21 (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 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != PARALLEL)
    return NULL;
  x4 = XEXP (x1, 0);
  operands[0] = x4;
  x5 = XEXP (x2, 0);
  switch (GET_CODE (x5))
    {
    case REG:
    case SUBREG:
    case MEM:
      operands[1] = x5;
      switch (XVECLEN (x3, 0))
        {
        case 1:
          res = split_18 (x1, insn);
          if (res != NULL_RTX)
            return res;
          break;

        case 4:
          if (pattern300 (x3) == 0)
            {
              switch (GET_MODE (operands[0]))
                {
                case V4DFmode:
                  if (nonimmediate_operand (operands[0], V4DFmode)
                      && GET_MODE (x2) == V4DFmode
                      && nonimmediate_operand (operands[1], V8DFmode)
                      && 
#line 7198 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))
  && reload_completed
  && (TARGET_AVX512VL || (REG_P (operands[0]) && !EXT_REX_SSE_REG_P (operands[1])))))
                    return gen_split_365 (insn, operands);
                  break;

                case V4DImode:
                  if (nonimmediate_operand (operands[0], V4DImode)
                      && GET_MODE (x2) == V4DImode
                      && nonimmediate_operand (operands[1], V8DImode)
                      && 
#line 7198 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))
  && reload_completed
  && (TARGET_AVX512VL || (REG_P (operands[0]) && !EXT_REX_SSE_REG_P (operands[1])))))
                    return gen_split_366 (insn, operands);
                  break;

                case V4SImode:
                  if (nonimmediate_operand (operands[0], V4SImode)
                      && GET_MODE (x2) == V4SImode
                      && nonimmediate_operand (operands[1], V8SImode)
                      && 
#line 7482 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1])) && reload_completed))
                    return gen_split_371 (insn, operands);
                  break;

                case V4SFmode:
                  if (nonimmediate_operand (operands[0], V4SFmode)
                      && GET_MODE (x2) == V4SFmode
                      && nonimmediate_operand (operands[1], V8SFmode)
                      && 
#line 7482 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1])) && reload_completed))
                    return gen_split_372 (insn, operands);
                  break;

                default:
                  break;
                }
            }
          break;

        case 8:
          res = split_19 (x1, insn);
          if (res != NULL_RTX)
            return res;
          break;

        case 2:
          x6 = XVECEXP (x3, 0, 0);
          if (x6 == const_int_rtx[MAX_SAVED_CONST_INT + 0])
            {
              x7 = XVECEXP (x3, 0, 1);
              if (x7 == const_int_rtx[MAX_SAVED_CONST_INT + 1])
                {
                  switch (GET_MODE (operands[0]))
                    {
                    case V2DImode:
                      if (nonimmediate_operand (operands[0], V2DImode)
                          && GET_MODE (x2) == V2DImode
                          && nonimmediate_operand (operands[1], V4DImode)
                          && 
#line 7439 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))
  && reload_completed))
                        return gen_split_369 (insn, operands);
                      break;

                    case V2DFmode:
                      if (nonimmediate_operand (operands[0], V2DFmode)
                          && GET_MODE (x2) == V2DFmode
                          && nonimmediate_operand (operands[1], V4DFmode)
                          && 
#line 7439 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))
  && reload_completed))
                        return gen_split_370 (insn, operands);
                      break;

                    default:
                      break;
                    }
                }
            }
          break;

        case 16:
          if (pattern302 (x3) == 0)
            {
              switch (pattern875 (x2))
                {
                case 0:
                  if ((
#line 7593 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))) && 
#line 7595 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
( reload_completed)))
                    return gen_split_373 (insn, operands);
                  break;

                case 1:
                  if ((
#line 7733 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))) && 
#line 7735 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
( reload_completed)))
                    return gen_split_376 (insn, operands);
                  break;

                default:
                  break;
                }
            }
          break;

        case 32:
          res = split_20 (x1, insn);
          if (res != NULL_RTX)
            return res;
          break;

        default:
          break;
        }
      if (XVECLEN (x3, 0) < 1)
        return NULL;
      operands[2] = x3;
      if (!avx_vbroadcast_operand (operands[2], VOIDmode))
        return NULL;
      x6 = XVECEXP (x3, 0, 0);
      operands[3] = x6;
      if (!const_int_operand (operands[3], VOIDmode))
        return NULL;
      switch (GET_MODE (operands[0]))
        {
        case V8SFmode:
          if (!register_operand (operands[0], V8SFmode)
              || GET_MODE (x2) != V8SFmode
              || !nonimmediate_operand (operands[1], V8SFmode)
              || !(
#line 17622 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX) && 
#line 17624 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
( reload_completed && (V8SFmode != V4DFmode || !TARGET_AVX2))))
            return NULL;
          return gen_split_407 (insn, operands);

        case V4DFmode:
          if (!register_operand (operands[0], V4DFmode)
              || GET_MODE (x2) != V4DFmode
              || !nonimmediate_operand (operands[1], V4DFmode)
              || !(
#line 17622 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX) && 
#line 17624 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
( reload_completed && (V4DFmode != V4DFmode || !TARGET_AVX2))))
            return NULL;
          return gen_split_408 (insn, operands);

        default:
          return NULL;
        }

    case VEC_CONCAT:
      x8 = XEXP (x5, 0);
      switch (GET_CODE (x8))
        {
        case MINUS:
          switch (pattern257 (x2, PLUS))
            {
            case 0:
              if (pattern762 (x5, V8SFmode, V16SFmode) != 0
                  || !(
#line 2156 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE3
   && can_create_pseudo_p ()
   && ((rtx_equal_p (operands[1], operands[3])
	&& rtx_equal_p (operands[2], operands[4]))
       || (rtx_equal_p (operands[1], operands[4])
	   && rtx_equal_p (operands[2], operands[3])))) && 
#line 221 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
                return NULL;
              return gen_split_352 (insn, operands);

            case 1:
              if (pattern762 (x5, V4SFmode, V8SFmode) != 0
                  || !
#line 2156 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE3
   && can_create_pseudo_p ()
   && ((rtx_equal_p (operands[1], operands[3])
	&& rtx_equal_p (operands[2], operands[4]))
       || (rtx_equal_p (operands[1], operands[4])
	   && rtx_equal_p (operands[2], operands[3])))))
                return NULL;
              return gen_split_353 (insn, operands);

            case 2:
              if (pattern762 (x5, V4DFmode, V8DFmode) != 0
                  || !(
#line 2156 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE3
   && can_create_pseudo_p ()
   && ((rtx_equal_p (operands[1], operands[3])
	&& rtx_equal_p (operands[2], operands[4]))
       || (rtx_equal_p (operands[1], operands[4])
	   && rtx_equal_p (operands[2], operands[3])))) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
                return NULL;
              return gen_split_354 (insn, operands);

            case 3:
              if (pattern762 (x5, V2DFmode, V4DFmode) != 0
                  || !(
#line 2156 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE3
   && can_create_pseudo_p ()
   && ((rtx_equal_p (operands[1], operands[3])
	&& rtx_equal_p (operands[2], operands[4]))
       || (rtx_equal_p (operands[1], operands[4])
	   && rtx_equal_p (operands[2], operands[3])))) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
                return NULL;
              return gen_split_355 (insn, operands);

            default:
              return NULL;
            }

        case PLUS:
          switch (pattern257 (x2, MINUS))
            {
            case 0:
              if (pattern763 (x5, V8SFmode, V16SFmode) != 0
                  || !(
#line 2190 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE3
   && can_create_pseudo_p ()
   && ((rtx_equal_p (operands[1], operands[3])
	&& rtx_equal_p (operands[2], operands[4]))
       || (rtx_equal_p (operands[1], operands[4])
	   && rtx_equal_p (operands[2], operands[3])))) && 
#line 221 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
                return NULL;
              return gen_split_356 (insn, operands);

            case 1:
              if (pattern763 (x5, V4SFmode, V8SFmode) != 0
                  || !
#line 2190 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE3
   && can_create_pseudo_p ()
   && ((rtx_equal_p (operands[1], operands[3])
	&& rtx_equal_p (operands[2], operands[4]))
       || (rtx_equal_p (operands[1], operands[4])
	   && rtx_equal_p (operands[2], operands[3])))))
                return NULL;
              return gen_split_357 (insn, operands);

            case 2:
              if (pattern763 (x5, V4DFmode, V8DFmode) != 0
                  || !(
#line 2190 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE3
   && can_create_pseudo_p ()
   && ((rtx_equal_p (operands[1], operands[3])
	&& rtx_equal_p (operands[2], operands[4]))
       || (rtx_equal_p (operands[1], operands[4])
	   && rtx_equal_p (operands[2], operands[3])))) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
                return NULL;
              return gen_split_358 (insn, operands);

            case 3:
              if (pattern763 (x5, V2DFmode, V4DFmode) != 0
                  || !(
#line 2190 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE3
   && can_create_pseudo_p ()
   && ((rtx_equal_p (operands[1], operands[3])
	&& rtx_equal_p (operands[2], operands[4]))
       || (rtx_equal_p (operands[1], operands[4])
	   && rtx_equal_p (operands[2], operands[3])))) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
                return NULL;
              return gen_split_359 (insn, operands);

            default:
              return NULL;
            }

        case REG:
        case SUBREG:
        case MEM:
          operands[1] = x8;
          if (XVECLEN (x3, 0) != 2)
            return NULL;
          x6 = XVECEXP (x3, 0, 0);
          if (GET_CODE (x6) != CONST_INT
              || GET_MODE (x2) != V2DFmode
              || GET_MODE (x5) != V4DFmode)
            return NULL;
          x9 = XEXP (x5, 1);
          if (!rtx_equal_p (x9, operands[1]))
            return NULL;
          if (XWINT (x6, 0) == 0LL)
            {
              x7 = XVECEXP (x3, 0, 1);
              if (x7 == const_int_rtx[MAX_SAVED_CONST_INT + 2]
                  && memory_operand (operands[0], V2DFmode)
                  && register_operand (operands[1], V2DFmode)
                  && 
#line 8072 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE3 && reload_completed))
                return gen_split_377 (insn, operands);
            }
          if (!register_operand (operands[0], V2DFmode)
              || !memory_operand (operands[1], V2DFmode))
            return NULL;
          operands[2] = x6;
          if (!const_0_to_1_operand (operands[2], SImode))
            return NULL;
          x7 = XVECEXP (x3, 0, 1);
          operands[3] = x7;
          if (!const_int_operand (operands[3], SImode)
              || !
#line 8089 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE3 && INTVAL (operands[2]) + 2 == INTVAL (operands[3])))
            return NULL;
          return gen_split_378 (insn, operands);

        default:
          return NULL;
        }

    default:
      return NULL;
    }
}

static rtx_insn *
split_22 (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 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case MINUS:
      x5 = XEXP (x3, 1);
      if (GET_CODE (x5) != PLUS)
        return NULL;
      operands[6] = x3;
      x6 = XEXP (x4, 0);
      operands[1] = x6;
      x7 = XEXP (x4, 1);
      operands[2] = x7;
      x8 = XEXP (x5, 0);
      operands[3] = x8;
      x9 = XEXP (x5, 1);
      operands[4] = x9;
      x10 = XEXP (x3, 2);
      operands[5] = x10;
      if (!const_int_operand (operands[5], VOIDmode))
        return NULL;
      switch (GET_MODE (operands[0]))
        {
        case V8SFmode:
          if (pattern607 (x3, V8SFmode) != 0
              || !(
#line 2104 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE3
   && can_create_pseudo_p ()
   && ((rtx_equal_p (operands[1], operands[3])
	&& rtx_equal_p (operands[2], operands[4]))
       || (rtx_equal_p (operands[1], operands[4])
	   && rtx_equal_p (operands[2], operands[3])))) && 
#line 221 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return NULL;
          return gen_split_344 (insn, operands);

        case V4SFmode:
          if (pattern607 (x3, V4SFmode) != 0
              || !
#line 2104 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE3
   && can_create_pseudo_p ()
   && ((rtx_equal_p (operands[1], operands[3])
	&& rtx_equal_p (operands[2], operands[4]))
       || (rtx_equal_p (operands[1], operands[4])
	   && rtx_equal_p (operands[2], operands[3])))))
            return NULL;
          return gen_split_345 (insn, operands);

        case V4DFmode:
          if (pattern607 (x3, V4DFmode) != 0
              || !(
#line 2104 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE3
   && can_create_pseudo_p ()
   && ((rtx_equal_p (operands[1], operands[3])
	&& rtx_equal_p (operands[2], operands[4]))
       || (rtx_equal_p (operands[1], operands[4])
	   && rtx_equal_p (operands[2], operands[3])))) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return NULL;
          return gen_split_346 (insn, operands);

        case V2DFmode:
          if (pattern607 (x3, V2DFmode) != 0
              || !(
#line 2104 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE3
   && can_create_pseudo_p ()
   && ((rtx_equal_p (operands[1], operands[3])
	&& rtx_equal_p (operands[2], operands[4]))
       || (rtx_equal_p (operands[1], operands[4])
	   && rtx_equal_p (operands[2], operands[3])))) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return NULL;
          return gen_split_347 (insn, operands);

        default:
          return NULL;
        }

    case PLUS:
      x5 = XEXP (x3, 1);
      if (GET_CODE (x5) != MINUS)
        return NULL;
      operands[6] = x3;
      x6 = XEXP (x4, 0);
      operands[1] = x6;
      x7 = XEXP (x4, 1);
      operands[2] = x7;
      x8 = XEXP (x5, 0);
      operands[3] = x8;
      x9 = XEXP (x5, 1);
      operands[4] = x9;
      x10 = XEXP (x3, 2);
      operands[5] = x10;
      if (!const_int_operand (operands[5], VOIDmode))
        return NULL;
      switch (GET_MODE (operands[0]))
        {
        case V8SFmode:
          if (pattern608 (x3, V8SFmode) != 0
              || !(
#line 2126 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE3
   && can_create_pseudo_p ()
   && ((rtx_equal_p (operands[1], operands[3])
	&& rtx_equal_p (operands[2], operands[4]))
       || (rtx_equal_p (operands[1], operands[4])
	   && rtx_equal_p (operands[2], operands[3])))) && 
#line 221 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return NULL;
          return gen_split_348 (insn, operands);

        case V4SFmode:
          if (pattern608 (x3, V4SFmode) != 0
              || !
#line 2126 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE3
   && can_create_pseudo_p ()
   && ((rtx_equal_p (operands[1], operands[3])
	&& rtx_equal_p (operands[2], operands[4]))
       || (rtx_equal_p (operands[1], operands[4])
	   && rtx_equal_p (operands[2], operands[3])))))
            return NULL;
          return gen_split_349 (insn, operands);

        case V4DFmode:
          if (pattern608 (x3, V4DFmode) != 0
              || !(
#line 2126 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE3
   && can_create_pseudo_p ()
   && ((rtx_equal_p (operands[1], operands[3])
	&& rtx_equal_p (operands[2], operands[4]))
       || (rtx_equal_p (operands[1], operands[4])
	   && rtx_equal_p (operands[2], operands[3])))) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX)))
            return NULL;
          return gen_split_350 (insn, operands);

        case V2DFmode:
          if (pattern608 (x3, V2DFmode) != 0
              || !(
#line 2126 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE3
   && can_create_pseudo_p ()
   && ((rtx_equal_p (operands[1], operands[3])
	&& rtx_equal_p (operands[2], operands[4]))
       || (rtx_equal_p (operands[1], operands[4])
	   && rtx_equal_p (operands[2], operands[3])))) && 
#line 222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2)))
            return NULL;
          return gen_split_351 (insn, operands);

        default:
          return NULL;
        }

    case VEC_DUPLICATE:
      x10 = XEXP (x3, 2);
      if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return NULL;
      x6 = XEXP (x4, 0);
      operands[1] = x6;
      x5 = XEXP (x3, 1);
      if (!rtx_equal_p (x5, operands[0]))
        return NULL;
      switch (GET_MODE (operands[0]))
        {
        case V4SImode:
          if (pattern351 (x3, SImode, V4SImode) != 0
              || !
#line 6943 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && reload_completed))
            return NULL;
          return gen_split_360 (insn, operands);

        case V4SFmode:
          if (pattern351 (x3, SFmode, V4SFmode) != 0
              || !
#line 6943 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && reload_completed))
            return NULL;
          return gen_split_361 (insn, operands);

        default:
          return NULL;
        }

    default:
      return NULL;
    }
}

static rtx_insn *
split_23 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != V2DFmode)
    return NULL;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!memory_operand (operands[0], V2DFmode))
    return NULL;
  x4 = XEXP (x2, 0);
  switch (GET_CODE (x4))
    {
    case VEC_SELECT:
      if (pattern59 (x4) != 0)
        return NULL;
      x5 = XEXP (x2, 1);
      operands[1] = x5;
      if (!register_operand (operands[1], DFmode))
        return NULL;
      x6 = XEXP (x4, 0);
      if (!rtx_equal_p (x6, operands[0])
          || !
#line 8831 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && reload_completed))
        return NULL;
      return gen_split_381 (insn, operands);

    case REG:
    case SUBREG:
      operands[1] = x4;
      if (!register_operand (operands[1], DFmode))
        return NULL;
      x5 = XEXP (x2, 1);
      if (pattern323 (x5) != 0)
        return NULL;
      x7 = XEXP (x5, 0);
      if (!rtx_equal_p (x7, operands[0])
          || !
#line 8901 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && reload_completed))
        return NULL;
      return gen_split_382 (insn, operands);

    default:
      return NULL;
    }
}

static rtx_insn *
split_24 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  rtx_insn *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 V32QImode:
      if (!register_operand (operands[0], V32QImode)
          || GET_MODE (x3) != V32QImode
          || !register_operand (operands[1], QImode)
          || !
#line 17449 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2
   /* Disable this splitter if avx512vl_vec_dup_gprv*[qhs]i insn is
      available, because then we can broadcast from GPRs directly.
      For V*[QH]I modes it requires both -mavx512vl and -mavx512bw,
      for V*SI mode it requires just -mavx512vl.  */
   && !(TARGET_AVX512VL
	&& (TARGET_AVX512BW || QImode == SImode))
   && reload_completed && GENERAL_REG_P (operands[1])))
        return NULL;
      return gen_split_397 (insn, operands);

    case V16QImode:
      if (!register_operand (operands[0], V16QImode)
          || GET_MODE (x3) != V16QImode
          || !register_operand (operands[1], QImode)
          || !
#line 17449 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2
   /* Disable this splitter if avx512vl_vec_dup_gprv*[qhs]i insn is
      available, because then we can broadcast from GPRs directly.
      For V*[QH]I modes it requires both -mavx512vl and -mavx512bw,
      for V*SI mode it requires just -mavx512vl.  */
   && !(TARGET_AVX512VL
	&& (TARGET_AVX512BW || QImode == SImode))
   && reload_completed && GENERAL_REG_P (operands[1])))
        return NULL;
      return gen_split_398 (insn, operands);

    case V16HImode:
      if (!register_operand (operands[0], V16HImode)
          || GET_MODE (x3) != V16HImode
          || !register_operand (operands[1], HImode)
          || !
#line 17449 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2
   /* Disable this splitter if avx512vl_vec_dup_gprv*[qhs]i insn is
      available, because then we can broadcast from GPRs directly.
      For V*[QH]I modes it requires both -mavx512vl and -mavx512bw,
      for V*SI mode it requires just -mavx512vl.  */
   && !(TARGET_AVX512VL
	&& (TARGET_AVX512BW || HImode == SImode))
   && reload_completed && GENERAL_REG_P (operands[1])))
        return NULL;
      return gen_split_399 (insn, operands);

    case V8HImode:
      if (!register_operand (operands[0], V8HImode)
          || GET_MODE (x3) != V8HImode
          || !register_operand (operands[1], HImode)
          || !
#line 17449 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2
   /* Disable this splitter if avx512vl_vec_dup_gprv*[qhs]i insn is
      available, because then we can broadcast from GPRs directly.
      For V*[QH]I modes it requires both -mavx512vl and -mavx512bw,
      for V*SI mode it requires just -mavx512vl.  */
   && !(TARGET_AVX512VL
	&& (TARGET_AVX512BW || HImode == SImode))
   && reload_completed && GENERAL_REG_P (operands[1])))
        return NULL;
      return gen_split_400 (insn, operands);

    case V8SImode:
      if (!register_operand (operands[0], V8SImode)
          || GET_MODE (x3) != V8SImode
          || !register_operand (operands[1], SImode))
        return NULL;
      if (
#line 17449 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2
   /* Disable this splitter if avx512vl_vec_dup_gprv*[qhs]i insn is
      available, because then we can broadcast from GPRs directly.
      For V*[QH]I modes it requires both -mavx512vl and -mavx512bw,
      for V*SI mode it requires just -mavx512vl.  */
   && !(TARGET_AVX512VL
	&& (TARGET_AVX512BW || SImode == SImode))
   && reload_completed && GENERAL_REG_P (operands[1])))
        return gen_split_401 (insn, operands);
      if (!
#line 17472 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && !TARGET_AVX2 && reload_completed))
        return NULL;
      return gen_split_403 (insn, operands);

    case V4SImode:
      if (!register_operand (operands[0], V4SImode)
          || GET_MODE (x3) != V4SImode
          || !register_operand (operands[1], SImode)
          || !
#line 17449 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX2
   /* Disable this splitter if avx512vl_vec_dup_gprv*[qhs]i insn is
      available, because then we can broadcast from GPRs directly.
      For V*[QH]I modes it requires both -mavx512vl and -mavx512bw,
      for V*SI mode it requires just -mavx512vl.  */
   && !(TARGET_AVX512VL
	&& (TARGET_AVX512BW || SImode == SImode))
   && reload_completed && GENERAL_REG_P (operands[1])))
        return NULL;
      return gen_split_402 (insn, operands);

    case V8SFmode:
      if (!register_operand (operands[0], V8SFmode)
          || GET_MODE (x3) != V8SFmode
          || !register_operand (operands[1], SFmode)
          || !
#line 17472 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && !TARGET_AVX2 && reload_completed))
        return NULL;
      return gen_split_404 (insn, operands);

    case V4DImode:
      if (!register_operand (operands[0], V4DImode)
          || GET_MODE (x3) != V4DImode
          || !register_operand (operands[1], DImode)
          || !
#line 17472 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && !TARGET_AVX2 && reload_completed))
        return NULL;
      return gen_split_405 (insn, operands);

    case V4DFmode:
      if (!register_operand (operands[0], V4DFmode)
          || GET_MODE (x3) != V4DFmode
          || !register_operand (operands[1], DFmode)
          || !
#line 17472 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_AVX && !TARGET_AVX2 && reload_completed))
        return NULL;
      return gen_split_406 (insn, operands);

    default:
      return NULL;
    }
}

static rtx_insn *
split_25 (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;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    case CONST_INT:
    case CONST_WIDE_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:
      res = split_11 (x1, insn);
      if (res != NULL_RTX)
        return res;
      break;

    case FLOAT_EXTEND:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      switch (GET_CODE (operands[1]))
        {
        case SUBREG:
        case MEM:
          if (memory_operand (operands[1], VOIDmode)
              && any_fp_register_operand (operands[0], VOIDmode)
              && 
#line 3637 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed
   && (GET_MODE (operands[0]) == TFmode
       || GET_MODE (operands[0]) == XFmode
       || GET_MODE (operands[0]) == DFmode)))
            return gen_split_37 (insn, operands);
          break;

        case REG:
          res = split_12 (x1, insn);
          if (res != NULL_RTX)
            return res;
          break;

        default:
          break;
        }
      if (nonimmediate_operand (operands[1], SFmode)
          && register_operand (operands[0], DFmode)
          && GET_MODE (x2) == DFmode
          && 
#line 4252 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_VECTOR_FP_CONVERTS
   && optimize_insn_for_speed_p ()
   && reload_completed && SSE_REG_P (operands[0])
   && (!EXT_REX_SSE_REG_P (operands[0])
       || TARGET_AVX512VL)))
        return gen_split_60 (insn, operands);
      break;

    case ZERO_EXTEND:
      res = split_13 (x1, insn);
      if (res != NULL_RTX)
        return res;
      break;

    case FLOAT_TRUNCATE:
      if (GET_MODE (x2) == SFmode)
        {
          x3 = XEXP (x1, 0);
          operands[0] = x3;
          if (register_operand (operands[0], SFmode))
            {
              x4 = XEXP (x2, 0);
              operands[1] = x4;
              if (nonimmediate_operand (operands[1], DFmode)
                  && 
#line 4413 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_VECTOR_FP_CONVERTS
   && optimize_insn_for_speed_p ()
   && reload_completed && SSE_REG_P (operands[0])
   && (!EXT_REX_SSE_REG_P (operands[0])
       || TARGET_AVX512VL)))
                return gen_split_61 (insn, operands);
            }
        }
      break;

    case FIX:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      if (register_operand (operands[1], VOIDmode))
        {
          switch (GET_MODE (operands[0]))
            {
            case HImode:
              if (nonimmediate_operand (operands[0], HImode)
                  && GET_MODE (x2) == HImode
                  && (
#line 4832 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(X87_FLOAT_MODE_P (GET_MODE (operands[1]))
   && TARGET_FISTTP
   && !((SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
	 && (TARGET_64BIT || HImode != DImode))
	&& TARGET_SSE_MATH)
   && can_create_pseudo_p ()) && 
#line 4839 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( 1)))
                return gen_split_69 (insn, operands);
              break;

            case SImode:
              if (nonimmediate_operand (operands[0], SImode)
                  && GET_MODE (x2) == SImode
                  && (
#line 4832 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(X87_FLOAT_MODE_P (GET_MODE (operands[1]))
   && TARGET_FISTTP
   && !((SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
	 && (TARGET_64BIT || SImode != DImode))
	&& TARGET_SSE_MATH)
   && can_create_pseudo_p ()) && 
#line 4839 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( 1)))
                return gen_split_70 (insn, operands);
              break;

            case DImode:
              if (nonimmediate_operand (operands[0], DImode)
                  && GET_MODE (x2) == DImode
                  && (
#line 4832 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(X87_FLOAT_MODE_P (GET_MODE (operands[1]))
   && TARGET_FISTTP
   && !((SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
	 && (TARGET_64BIT || DImode != DImode))
	&& TARGET_SSE_MATH)
   && can_create_pseudo_p ()) && 
#line 4839 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( 1)))
                return gen_split_71 (insn, operands);
              break;

            default:
              break;
            }
        }
      break;

    case FLOAT:
      res = split_14 (x1, insn);
      if (res != NULL_RTX)
        return res;
      break;

    case UNSPEC:
      res = split_15 (x1, insn);
      if (res != NULL_RTX)
        return res;
      break;

    case NE:
      switch (pattern18 (x1))
        {
        case 0:
          return gen_split_238 (insn, operands);

        case 1:
          return gen_split_239 (insn, operands);

        default:
          break;
        }
      break;

    case EQ:
      switch (pattern18 (x1))
        {
        case 0:
          return gen_split_240 (insn, operands);

        case 1:
          return gen_split_241 (insn, operands);

        default:
          break;
        }
      break;

    case IF_THEN_ELSE:
      res = split_17 (x1, insn);
      if (res != NULL_RTX)
        return res;
      break;

    case VEC_SELECT:
      res = split_21 (x1, insn);
      if (res != NULL_RTX)
        return res;
      break;

    case VEC_MERGE:
      res = split_22 (x1, insn);
      if (res != NULL_RTX)
        return res;
      break;

    case VEC_CONCAT:
      res = split_23 (x1, insn);
      if (res != NULL_RTX)
        return res;
      break;

    case VEC_DUPLICATE:
      res = split_24 (x1, insn);
      if (res != NULL_RTX)
        return res;
      break;

    default:
      break;
    }
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  operands[1] = x2;
  switch (GET_MODE (operands[0]))
    {
    case SImode:
      if (register_operand (operands[0], SImode)
          && address_no_seg_operand (operands[1], SImode)
          && 
#line 5427 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed && ix86_avoid_lea_for_addr (insn, operands)))
        return gen_split_102 (insn, operands);
      if (nonimmediate_operand (operands[0], SImode)
          && register_operand (operands[1], SImode)
          && 
#line 13489 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(can_create_pseudo_p ()
   && SUBREG_P (operands[1])
   && REG_P (SUBREG_REG (operands[1]))
   && (GET_MODE_CLASS (GET_MODE (SUBREG_REG (operands[1]))) == MODE_VECTOR_INT
       || (GET_MODE_CLASS (GET_MODE (SUBREG_REG (operands[1])))
	   == MODE_VECTOR_FLOAT))
   && SUBREG_BYTE (operands[1]) == 0
   && TARGET_SSE
   && (GET_MODE_SIZE (GET_MODE (SUBREG_REG (operands[1]))) == 16
       || (GET_MODE_SIZE (GET_MODE (SUBREG_REG (operands[1]))) == 32
	   && TARGET_AVX)
       || (GET_MODE_SIZE (GET_MODE (SUBREG_REG (operands[1]))) == 64
	   && TARGET_AVX512F))
   && (SImode == SImode || TARGET_64BIT || MEM_P (operands[0]))))
        return gen_split_391 (insn, operands);
      break;

    case DImode:
      if (register_operand (operands[0], DImode)
          && address_no_seg_operand (operands[1], DImode)
          && (
#line 5427 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed && ix86_avoid_lea_for_addr (insn, operands)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
        return gen_split_103 (insn, operands);
      if (nonimmediate_operand (operands[0], DImode)
          && register_operand (operands[1], DImode)
          && 
#line 13489 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(can_create_pseudo_p ()
   && SUBREG_P (operands[1])
   && REG_P (SUBREG_REG (operands[1]))
   && (GET_MODE_CLASS (GET_MODE (SUBREG_REG (operands[1]))) == MODE_VECTOR_INT
       || (GET_MODE_CLASS (GET_MODE (SUBREG_REG (operands[1])))
	   == MODE_VECTOR_FLOAT))
   && SUBREG_BYTE (operands[1]) == 0
   && TARGET_SSE
   && (GET_MODE_SIZE (GET_MODE (SUBREG_REG (operands[1]))) == 16
       || (GET_MODE_SIZE (GET_MODE (SUBREG_REG (operands[1]))) == 32
	   && TARGET_AVX)
       || (GET_MODE_SIZE (GET_MODE (SUBREG_REG (operands[1]))) == 64
	   && TARGET_AVX512F))
   && (DImode == SImode || TARGET_64BIT || MEM_P (operands[0]))))
        return gen_split_392 (insn, operands);
      break;

    default:
      break;
    }
  switch (GET_CODE (x2))
    {
    case PLUS:
      if (!register_operand (operands[0], VOIDmode))
        return NULL;
      x4 = XEXP (x2, 0);
      switch (GET_CODE (x4))
        {
        case PLUS:
          x5 = XEXP (x4, 1);
          if (!register_operand (x5, VOIDmode))
            return NULL;
          x6 = XEXP (x2, 1);
          if (!immediate_operand (x6, VOIDmode))
            return NULL;
          x7 = XEXP (x4, 0);
          switch (GET_CODE (x7))
            {
            case REG:
            case SUBREG:
              operands[1] = x7;
              if (!index_register_operand (operands[1], VOIDmode))
                return NULL;
              operands[2] = x5;
              operands[3] = x6;
              if (!(
#line 6265 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((GET_MODE (operands[0]) == QImode || GET_MODE (operands[0]) == HImode)
   && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
   && GET_MODE (operands[0]) == GET_MODE (operands[1])
   && GET_MODE (operands[0]) == GET_MODE (operands[2])
   && (GET_MODE (operands[0]) == GET_MODE (operands[3])
       || GET_MODE (operands[3]) == VOIDmode)) && 
#line 6272 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
                return NULL;
              return gen_split_114 (insn, operands);

            case MULT:
              x8 = XEXP (x7, 0);
              operands[1] = x8;
              if (!index_register_operand (operands[1], VOIDmode))
                return NULL;
              x9 = XEXP (x7, 1);
              operands[2] = x9;
              if (!const248_operand (operands[2], VOIDmode))
                return NULL;
              operands[3] = x5;
              operands[4] = x6;
              if (!(
#line 6328 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((GET_MODE (operands[0]) == QImode || GET_MODE (operands[0]) == HImode)
   && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
   && GET_MODE (operands[0]) == GET_MODE (operands[1])
   && GET_MODE (operands[0]) == GET_MODE (operands[3])) && 
#line 6333 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
                return NULL;
              return gen_split_116 (insn, operands);

            default:
              return NULL;
            }

        case MULT:
          x7 = XEXP (x4, 0);
          operands[1] = x7;
          if (!index_register_operand (operands[1], VOIDmode))
            return NULL;
          x5 = XEXP (x4, 1);
          operands[2] = x5;
          if (!const248_operand (operands[2], VOIDmode))
            return NULL;
          x6 = XEXP (x2, 1);
          operands[3] = x6;
          if (!nonmemory_operand (operands[3], VOIDmode)
              || !(
#line 6297 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((GET_MODE (operands[0]) == QImode || GET_MODE (operands[0]) == HImode)
   && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
   && GET_MODE (operands[0]) == GET_MODE (operands[1])
   && (GET_MODE (operands[0]) == GET_MODE (operands[3])
       || GET_MODE (operands[3]) == VOIDmode)) && 
#line 6303 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
            return NULL;
          return gen_split_115 (insn, operands);

        default:
          return NULL;
        }

    case IOR:
      x4 = XEXP (x2, 0);
      if (GET_CODE (x4) != ASHIFT
          || pattern93 (x2) != 0
          || !(
#line 6363 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((((GET_MODE (operands[0]) == QImode || GET_MODE (operands[0]) == HImode)
      && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
    || GET_MODE (operands[0]) == SImode
    || (TARGET_64BIT && GET_MODE (operands[0]) == DImode))
   && GET_MODE (operands[0]) == GET_MODE (operands[1])
   && ((unsigned HOST_WIDE_INT) INTVAL (operands[2])) - 1 < 3
   && ((unsigned HOST_WIDE_INT) INTVAL (operands[3])
       < (HOST_WIDE_INT_1U << INTVAL (operands[2])))) && 
#line 6372 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
        return NULL;
      return gen_split_117 (insn, operands);

    case XOR:
      x4 = XEXP (x2, 0);
      if (GET_CODE (x4) != ASHIFT
          || pattern93 (x2) != 0
          || !(
#line 6363 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((((GET_MODE (operands[0]) == QImode || GET_MODE (operands[0]) == HImode)
      && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
    || GET_MODE (operands[0]) == SImode
    || (TARGET_64BIT && GET_MODE (operands[0]) == DImode))
   && GET_MODE (operands[0]) == GET_MODE (operands[1])
   && ((unsigned HOST_WIDE_INT) INTVAL (operands[2])) - 1 < 3
   && ((unsigned HOST_WIDE_INT) INTVAL (operands[3])
       < (HOST_WIDE_INT_1U << INTVAL (operands[2])))) && 
#line 6372 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
        return NULL;
      return gen_split_118 (insn, operands);

    case COMPARE:
      operands[1] = x2;
      if (!compare_operator (operands[1], VOIDmode))
        return NULL;
      x6 = XEXP (x2, 1);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || !flags_reg_operand (operands[0], VOIDmode))
        return NULL;
      x4 = XEXP (x2, 0);
      switch (GET_CODE (x4))
        {
        case ZERO_EXTRACT:
          x7 = XEXP (x4, 0);
          operands[2] = x7;
          if (!nonimmediate_operand (operands[2], VOIDmode))
            return NULL;
          x5 = XEXP (x4, 1);
          operands[3] = x5;
          if (!const_int_operand (operands[3], VOIDmode))
            return NULL;
          x10 = XEXP (x4, 2);
          operands[4] = x10;
          if (!const_int_operand (operands[4], VOIDmode)
              || !
#line 7984 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)))
            return NULL;
          return gen_split_139 (insn, operands);

        case AND:
          x7 = XEXP (x4, 0);
          operands[2] = x7;
          x5 = XEXP (x4, 1);
          operands[3] = x5;
          if (const_int_operand (operands[3], VOIDmode))
            {
              if (QIreg_operand (operands[2], VOIDmode)
                  && 
#line 8041 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed
    && GET_MODE (operands[2]) != QImode
    && ((ix86_match_ccmode (insn, CCZmode)
    	 && !(INTVAL (operands[3]) & ~(255 << 8)))
	|| (ix86_match_ccmode (insn, CCNOmode)
	    && !(INTVAL (operands[3]) & ~(127 << 8))))))
                return gen_split_140 (insn, operands);
              if (nonimmediate_operand (operands[2], VOIDmode)
                  && 
#line 8063 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed
    && GET_MODE (operands[2]) != QImode
    && (!REG_P (operands[2]) || ANY_QI_REG_P (operands[2]))
    && ((ix86_match_ccmode (insn, CCZmode)
	 && !(INTVAL (operands[3]) & ~255))
	|| (ix86_match_ccmode (insn, CCNOmode)
	    && !(INTVAL (operands[3]) & ~127)))))
                return gen_split_141 (insn, operands);
            }
          if (!const_int_operand (operands[3], HImode)
              || !aligned_operand (operands[2], HImode)
              || !
#line 17850 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(! TARGET_PARTIAL_REG_STALL && reload_completed
   && ! TARGET_FAST_PREFIX
   && optimize_insn_for_speed_p ()
   /* Ensure that the operand will remain sign-extended immediate.  */
   && ix86_match_ccmode (insn, INTVAL (operands[3]) >= 0 ? CCNOmode : CCZmode)))
            return NULL;
          return gen_split_322 (insn, operands);

        default:
          return NULL;
        }

    case NE:
    case EQ:
    case GE:
    case GT:
    case LE:
    case LT:
    case GEU:
    case GTU:
    case LEU:
    case LTU:
    case UNORDERED:
    case ORDERED:
    case UNEQ:
    case UNGE:
    case UNGT:
    case UNLE:
    case UNLT:
    case LTGT:
      operands[1] = x2;
      x4 = XEXP (x2, 0);
      if (GET_CODE (x4) != REG
          || REGNO (x4) != 17)
        return NULL;
      x6 = XEXP (x2, 1);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return NULL;
      switch (pattern281 ())
        {
        case 0:
          if (!(
#line 11333 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && !TARGET_PARTIAL_REG_STALL) && 
#line 11335 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
            return NULL;
          return gen_split_235 (insn, operands);

        case 1:
          if (!(
#line 11366 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_PARTIAL_REG_STALL
   && (!TARGET_ZERO_EXTEND_WITH_AND || optimize_function_for_size_p (cfun))) && 
#line 11369 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
            return NULL;
          return gen_split_237 (insn, operands);

        default:
          return NULL;
        }

    case UNSPEC:
      if (XVECLEN (x2, 0) != 1
          || XINT (x2, 1) != 55)
        return NULL;
      x11 = XVECEXP (x2, 0, 0);
      operands[1] = x11;
      if (!register_operand (operands[1], XFmode))
        return NULL;
      switch (GET_MODE (operands[0]))
        {
        case DImode:
          if (!nonimmediate_operand (operands[0], DImode)
              || GET_MODE (x2) != DImode
              || !(
#line 15790 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && can_create_pseudo_p ()) && 
#line 15793 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( 1)))
            return NULL;
          return gen_split_279 (insn, operands);

        case SImode:
          if (!register_operand (operands[0], SImode)
              || GET_MODE (x2) != SImode
              || !(
#line 15855 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_USE_FANCY_MATH_387
   && can_create_pseudo_p ()) && 
#line 15858 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( 1)))
            return NULL;
          return gen_split_283 (insn, operands);

        default:
          return NULL;
        }

    case IF_THEN_ELSE:
      x4 = XEXP (x2, 0);
      if (!ix86_comparison_operator (x4, VOIDmode))
        return NULL;
      operands[1] = x4;
      x7 = XEXP (x4, 0);
      if (GET_CODE (x7) != REG
          || REGNO (x7) != 17)
        return NULL;
      x5 = XEXP (x4, 1);
      if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return NULL;
      switch (pattern353 (x2))
        {
        case 0:
          if (!
#line 17285 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_CMOVE
   && TARGET_AVOID_MEM_OPND_FOR_CMOVE
   && (MEM_P (operands[2]) || MEM_P (operands[3]))
   && can_create_pseudo_p ()
   && optimize_insn_for_speed_p ()))
            return NULL;
          return gen_split_313 (insn, operands);

        case 1:
          if (!(
#line 17285 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_CMOVE
   && TARGET_AVOID_MEM_OPND_FOR_CMOVE
   && (MEM_P (operands[2]) || MEM_P (operands[3]))
   && can_create_pseudo_p ()
   && optimize_insn_for_speed_p ()) && 
#line 991 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return NULL;
          return gen_split_314 (insn, operands);

        default:
          return NULL;
        }

    case NOT:
      if (!general_reg_operand (operands[0], VOIDmode))
        return NULL;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      if (!general_reg_operand (operands[1], VOIDmode)
          || !
#line 17886 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(! TARGET_PARTIAL_REG_STALL && reload_completed
   && (GET_MODE (operands[0]) == HImode
       || (GET_MODE (operands[0]) == QImode
	   && (TARGET_PROMOTE_QImode
	       || optimize_insn_for_size_p ())))))
        return NULL;
      return gen_split_324 (insn, operands);

    case VEC_SELECT:
      x6 = XEXP (x2, 1);
      if (GET_CODE (x6) != PARALLEL
          || XVECLEN (x6, 0) != 1)
        return NULL;
      x12 = XVECEXP (x6, 0, 0);
      if (GET_CODE (x12) != CONST_INT)
        return NULL;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      switch (XWINT (x12, 0))
        {
        case 0LL:
          switch (GET_MODE (operands[0]))
            {
            case SImode:
              if (nonimmediate_operand (operands[0], SImode)
                  && GET_MODE (x2) == SImode)
                {
                  switch (GET_MODE (operands[1]))
                    {
                    case V2SImode:
                      if (nonimmediate_operand (operands[1], V2SImode)
                          && (
#line 1295 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX && !(MEM_P (operands[0]) && MEM_P (operands[1]))) && 
#line 1297 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
( reload_completed)))
                        return gen_split_332 (insn, operands);
                      break;

                    case V4SImode:
                      if (register_operand (operands[1], V4SImode)
                          && 
#line 13376 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && reload_completed))
                        return gen_split_384 (insn, operands);
                      break;

                    default:
                      break;
                    }
                }
              break;

            case DImode:
              if (nonimmediate_operand (operands[0], DImode)
                  && GET_MODE (x2) == DImode
                  && register_operand (operands[1], V2DImode)
                  && 
#line 13376 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && reload_completed))
                return gen_split_385 (insn, operands);
              break;

            default:
              break;
            }
          break;

        case 1LL:
          if (register_operand (operands[0], SImode)
              && GET_MODE (x2) == SImode
              && memory_operand (operands[1], V2SImode)
              && 
#line 1332 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_MMX && reload_completed))
            return gen_split_333 (insn, operands);
          break;

        default:
          break;
        }
      operands[2] = x12;
      switch (GET_MODE (operands[0]))
        {
        case SImode:
          if (!register_operand (operands[0], SImode)
              || GET_MODE (x2) != SImode
              || !memory_operand (operands[1], V4SImode)
              || !const_0_to_3_operand (operands[2], VOIDmode)
              || !
#line 13476 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && reload_completed))
            return NULL;
          return gen_split_389 (insn, operands);

        case DImode:
          if (!register_operand (operands[0], DImode)
              || GET_MODE (x2) != DImode
              || !memory_operand (operands[1], V2DImode)
              || !const_0_to_1_operand (operands[2], VOIDmode)
              || !
#line 13476 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE && reload_completed))
            return NULL;
          return gen_split_390 (insn, operands);

        default:
          return NULL;
        }

    case ZERO_EXTEND:
      if (GET_MODE (x2) != DImode)
        return NULL;
      x4 = XEXP (x2, 0);
      if (GET_CODE (x4) != VEC_SELECT
          || GET_MODE (x4) != SImode)
        return NULL;
      x5 = XEXP (x4, 1);
      if (GET_CODE (x5) != PARALLEL
          || XVECLEN (x5, 0) != 1)
        return NULL;
      x13 = XVECEXP (x5, 0, 0);
      if (GET_CODE (x13) != CONST_INT)
        return NULL;
      operands[2] = x13;
      if (const_0_to_1_operand (operands[2], SImode)
          && register_operand (operands[0], DImode))
        {
          x7 = XEXP (x4, 0);
          operands[1] = x7;
          if (memory_operand (operands[1], V2SImode)
              && (
#line 1342 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
(TARGET_64BIT && TARGET_MMX) && 
#line 1344 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/mmx.md"
( reload_completed)))
            return gen_split_334 (insn, operands);
        }
      if (!register_operand (operands[0], DImode))
        return NULL;
      x7 = XEXP (x4, 0);
      operands[1] = x7;
      if (register_operand (operands[1], V4SImode)
          && XWINT (x13, 0) == 0LL
          && (
#line 13356 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_64BIT && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_FROM_VEC) && 
#line 13358 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
( reload_completed)))
        return gen_split_383 (insn, operands);
      if (!memory_operand (operands[1], V4SImode))
        return NULL;
      operands[2] = x13;
      if (!const_0_to_3_operand (operands[2], SImode)
          || !(
#line 13440 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_64BIT && TARGET_SSE) && 
#line 13442 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
( reload_completed)))
        return NULL;
      return gen_split_386 (insn, operands);

    default:
      return NULL;
    }
}

rtx_insn *
split_insns (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx_insn *res ATTRIBUTE_UNUSED;
  recog_data.insn = NULL;
  switch (GET_CODE (x1))
    {
    case PARALLEL:
      switch (XVECLEN (x1, 0))
        {
        case 2:
          return split_9 (x1, insn);

        case 3:
          return split_8 (x1, insn);

        case 4:
          x2 = XVECEXP (x1, 0, 0);
          if (GET_CODE (x2) != SET)
            return NULL;
          x3 = XVECEXP (x1, 0, 3);
          if (GET_CODE (x3) != CLOBBER)
            return NULL;
          x4 = XEXP (x2, 1);
          switch (GET_CODE (x4))
            {
            case UNSIGNED_FIX:
              switch (pattern158 (x1))
                {
                case 0:
                  if (!(
#line 4777 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_SSE2 && TARGET_SSE_MATH
   && optimize_function_for_speed_p (cfun)) && 
#line 4780 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
                    return NULL;
                  return gen_split_67 (insn, operands);

                case 1:
                  if (!(
#line 4777 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && TARGET_SSE2 && TARGET_SSE_MATH
   && optimize_function_for_speed_p (cfun)) && 
#line 4780 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
                    return NULL;
                  return gen_split_68 (insn, operands);

                default:
                  return NULL;
                }

            case FIX:
              x5 = XVECEXP (x1, 0, 1);
              if (GET_CODE (x5) != USE)
                return NULL;
              x6 = XVECEXP (x1, 0, 2);
              if (GET_CODE (x6) != USE)
                return NULL;
              x7 = XEXP (x2, 0);
              operands[0] = x7;
              x8 = XEXP (x4, 0);
              operands[1] = x8;
              if (!register_operand (operands[1], VOIDmode))
                return NULL;
              switch (pattern298 (x1))
                {
                case 0:
                  if (register_operand (operands[0], HImode)
                      && 
#line 5029 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
                    return gen_split_83 (insn, operands);
                  if (!memory_operand (operands[0], HImode)
                      || !
#line 5041 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
                    return NULL;
                  return gen_split_85 (insn, operands);

                case 1:
                  if (register_operand (operands[0], SImode)
                      && 
#line 5029 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
                    return gen_split_84 (insn, operands);
                  if (!memory_operand (operands[0], SImode)
                      || !
#line 5041 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
                    return NULL;
                  return gen_split_86 (insn, operands);

                default:
                  return NULL;
                }

            case FLOAT:
              x5 = XVECEXP (x1, 0, 1);
              if (GET_CODE (x5) != CLOBBER)
                return NULL;
              x6 = XVECEXP (x1, 0, 2);
              if (GET_CODE (x6) != CLOBBER)
                return NULL;
              x7 = XEXP (x2, 0);
              operands[0] = x7;
              x8 = XEXP (x4, 0);
              operands[1] = x8;
              x9 = XEXP (x5, 0);
              operands[3] = x9;
              if (!scratch_operand (operands[3], V4SImode))
                return NULL;
              x10 = XEXP (x6, 0);
              operands[4] = x10;
              if (!scratch_operand (operands[4], V4SImode))
                return NULL;
              x11 = XEXP (x3, 0);
              operands[2] = x11;
              if (!memory_operand (operands[2], DImode))
                return NULL;
              switch (GET_MODE (operands[0]))
                {
                case SFmode:
                  if (!fp_register_operand (operands[0], SFmode)
                      || GET_MODE (x4) != SFmode)
                    return NULL;
                  if (register_operand (operands[1], DImode)
                      && 
#line 5306 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && X87_ENABLE_FLOAT (SFmode, DImode)
   && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_TO_VEC
   && !TARGET_64BIT && optimize_function_for_speed_p (cfun)
   && reload_completed))
                    return gen_split_93 (insn, operands);
                  if (!memory_operand (operands[1], DImode)
                      || !
#line 5331 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && X87_ENABLE_FLOAT (SFmode, DImode)
   && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_TO_VEC
   && !TARGET_64BIT && optimize_function_for_speed_p (cfun)
   && reload_completed))
                    return NULL;
                  return gen_split_96 (insn, operands);

                case DFmode:
                  if (!fp_register_operand (operands[0], DFmode)
                      || GET_MODE (x4) != DFmode)
                    return NULL;
                  if (register_operand (operands[1], DImode)
                      && 
#line 5306 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && X87_ENABLE_FLOAT (DFmode, DImode)
   && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_TO_VEC
   && !TARGET_64BIT && optimize_function_for_speed_p (cfun)
   && reload_completed))
                    return gen_split_94 (insn, operands);
                  if (!memory_operand (operands[1], DImode)
                      || !
#line 5331 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && X87_ENABLE_FLOAT (DFmode, DImode)
   && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_TO_VEC
   && !TARGET_64BIT && optimize_function_for_speed_p (cfun)
   && reload_completed))
                    return NULL;
                  return gen_split_97 (insn, operands);

                case XFmode:
                  if (!fp_register_operand (operands[0], XFmode)
                      || GET_MODE (x4) != XFmode)
                    return NULL;
                  if (register_operand (operands[1], DImode)
                      && 
#line 5306 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && X87_ENABLE_FLOAT (XFmode, DImode)
   && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_TO_VEC
   && !TARGET_64BIT && optimize_function_for_speed_p (cfun)
   && reload_completed))
                    return gen_split_95 (insn, operands);
                  if (!memory_operand (operands[1], DImode)
                      || !
#line 5331 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && X87_ENABLE_FLOAT (XFmode, DImode)
   && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_TO_VEC
   && !TARGET_64BIT && optimize_function_for_speed_p (cfun)
   && reload_completed))
                    return NULL;
                  return gen_split_98 (insn, operands);

                default:
                  return NULL;
                }

            case DIV:
              switch (pattern168 (x1, MOD))
                {
                case 0:
                  if (!
#line 7484 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
                    return NULL;
                  return gen_split_125 (insn, operands);

                case 1:
                  if (!(
#line 7484 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                    return NULL;
                  return gen_split_126 (insn, operands);

                default:
                  return NULL;
                }

            case UDIV:
              switch (pattern168 (x1, UMOD))
                {
                case 0:
                  if (!
#line 7657 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
                    return NULL;
                  return gen_split_132 (insn, operands);

                case 1:
                  if (!(
#line 7657 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                    return NULL;
                  return gen_split_133 (insn, operands);

                default:
                  return NULL;
                }

            case IF_THEN_ELSE:
              switch (pattern164 (x1))
                {
                case 0:
                  if (!ix86_fp_comparison_operator (operands[0], VOIDmode))
                    return NULL;
                  x8 = XEXP (x4, 0);
                  x12 = XEXP (x8, 1);
                  operands[2] = x12;
                  x13 = XEXP (x4, 1);
                  operands[3] = x13;
                  x14 = XEXP (x4, 2);
                  operands[4] = x14;
                  x11 = XEXP (x3, 0);
                  operands[5] = x11;
                  switch (GET_MODE (operands[1]))
                    {
                    case SFmode:
                      if (!register_operand (operands[1], SFmode)
                          || !general_operand (operands[2], SFmode)
                          || !
#line 11716 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE
   && reload_completed))
                        return NULL;
                      return gen_split_247 (insn, operands);

                    case DFmode:
                      if (!register_operand (operands[1], DFmode)
                          || !general_operand (operands[2], DFmode)
                          || !
#line 11716 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE
   && reload_completed))
                        return NULL;
                      return gen_split_248 (insn, operands);

                    case XFmode:
                      if (!register_operand (operands[1], XFmode)
                          || !general_operand (operands[2], XFmode)
                          || !
#line 11716 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE
   && reload_completed))
                        return NULL;
                      return gen_split_249 (insn, operands);

                    default:
                      return NULL;
                    }

                case 1:
                  if (!ix86_swapped_fp_comparison_operator (operands[0], CCFPmode))
                    return NULL;
                  x8 = XEXP (x4, 0);
                  x15 = XEXP (x8, 0);
                  x16 = XEXP (x15, 0);
                  operands[2] = x16;
                  x12 = XEXP (x8, 1);
                  operands[3] = x12;
                  x13 = XEXP (x4, 1);
                  operands[4] = x13;
                  x14 = XEXP (x4, 2);
                  operands[5] = x14;
                  x11 = XEXP (x3, 0);
                  operands[6] = x11;
                  switch (GET_MODE (operands[1]))
                    {
                    case SFmode:
                      switch (pattern912 (SFmode))
                        {
                        case 0:
                          if (!
#line 11776 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE
   && reload_completed))
                            return NULL;
                          return gen_split_250 (insn, operands);

                        case 1:
                          if (!
#line 11776 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE
   && reload_completed))
                            return NULL;
                          return gen_split_253 (insn, operands);

                        default:
                          return NULL;
                        }

                    case DFmode:
                      switch (pattern912 (DFmode))
                        {
                        case 0:
                          if (!
#line 11776 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE
   && reload_completed))
                            return NULL;
                          return gen_split_251 (insn, operands);

                        case 1:
                          if (!
#line 11776 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE
   && reload_completed))
                            return NULL;
                          return gen_split_254 (insn, operands);

                        default:
                          return NULL;
                        }

                    case XFmode:
                      switch (pattern912 (XFmode))
                        {
                        case 0:
                          if (!
#line 11776 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE
   && reload_completed))
                            return NULL;
                          return gen_split_252 (insn, operands);

                        case 1:
                          if (!
#line 11776 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_80387 && !TARGET_CMOVE
   && reload_completed))
                            return NULL;
                          return gen_split_255 (insn, operands);

                        default:
                          return NULL;
                        }

                    default:
                      return NULL;
                    }

                default:
                  return NULL;
                }

            case UNSPEC:
              if (XVECLEN (x4, 0) != 1)
                return NULL;
              switch (XINT (x4, 1))
                {
                case 27:
                  if (pattern291 (x1) != 0
                      || !(
#line 13670 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(! TARGET_POPCNT) && 
#line 13672 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
( reload_completed)))
                    return NULL;
                  return gen_split_268 (insn, operands);

                case 63:
                  switch (pattern299 (x1))
                    {
                    case 0:
                      if (register_operand (operands[0], HImode)
                          && 
#line 16267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
                        return gen_split_302 (insn, operands);
                      if (!memory_operand (operands[0], HImode)
                          || !
#line 16281 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
                        return NULL;
                      return gen_split_306 (insn, operands);

                    case 1:
                      if (register_operand (operands[0], SImode)
                          && 
#line 16267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
                        return gen_split_304 (insn, operands);
                      if (!memory_operand (operands[0], SImode)
                          || !
#line 16281 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
                        return NULL;
                      return gen_split_308 (insn, operands);

                    default:
                      return NULL;
                    }

                case 64:
                  switch (pattern299 (x1))
                    {
                    case 0:
                      if (register_operand (operands[0], HImode)
                          && 
#line 16267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
                        return gen_split_303 (insn, operands);
                      if (!memory_operand (operands[0], HImode)
                          || !
#line 16281 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
                        return NULL;
                      return gen_split_307 (insn, operands);

                    case 1:
                      if (register_operand (operands[0], SImode)
                          && 
#line 16267 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
                        return gen_split_305 (insn, operands);
                      if (!memory_operand (operands[0], SImode)
                          || !
#line 16281 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
                        return NULL;
                      return gen_split_309 (insn, operands);

                    default:
                      return NULL;
                    }

                default:
                  return NULL;
                }

            case PLUS:
              if (pattern165 (x1) != 0)
                return NULL;
              return gen_split_270 (insn, operands);

            default:
              return NULL;
            }

        case 5:
          x2 = XVECEXP (x1, 0, 0);
          if (GET_CODE (x2) != SET
              || pattern28 (x1) != 0)
            return NULL;
          x4 = XEXP (x2, 1);
          if (GET_MODE (x4) != DImode
              || pattern425 (x1, VOIDmode) != 0)
            return NULL;
          switch (GET_CODE (x4))
            {
            case FIX:
              x8 = XEXP (x4, 0);
              operands[1] = x8;
              if (!register_operand (operands[1], VOIDmode))
                return NULL;
              if (register_operand (operands[0], DImode)
                  && 
#line 4976 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
                return gen_split_81 (insn, operands);
              if (!memory_operand (operands[0], DImode)
                  || !
#line 4990 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
                return NULL;
              return gen_split_82 (insn, operands);

            case UNSPEC:
              if (XVECLEN (x4, 0) != 1)
                return NULL;
              x17 = XVECEXP (x4, 0, 0);
              operands[1] = x17;
              if (!register_operand (operands[1], XFmode))
                return NULL;
              switch (XINT (x4, 1))
                {
                case 63:
                  if (register_operand (operands[0], DImode)
                      && 
#line 16210 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
                    return gen_split_298 (insn, operands);
                  if (!memory_operand (operands[0], DImode)
                      || !
#line 16226 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
                    return NULL;
                  return gen_split_300 (insn, operands);

                case 64:
                  if (register_operand (operands[0], DImode)
                      && 
#line 16210 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
                    return gen_split_299 (insn, operands);
                  if (!memory_operand (operands[0], DImode)
                      || !
#line 16226 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(reload_completed))
                    return NULL;
                  return gen_split_301 (insn, operands);

                default:
                  return NULL;
                }

            default:
              return NULL;
            }

        default:
          return NULL;
        }

    case SET:
      return split_25 (x1, insn);

    case EH_RETURN:
      if (!
#line 12683 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(epilogue_completed))
        return NULL;
      return gen_split_256 (insn, operands);

    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, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23;
  rtx_insn *res ATTRIBUTE_UNUSED;
  if (!memory_operand (operands[0], SImode)
      || !register_operand (operands[1], SImode))
    return NULL;
  x2 = PATTERN (peep2_next_insn (1));
  switch (GET_CODE (x2))
    {
    case SET:
      if (peep2_current_count < 4)
        return NULL;
      x3 = XEXP (x2, 0);
      operands[2] = x3;
      if (!register_operand (operands[2], SImode))
        return NULL;
      x4 = XEXP (x2, 1);
      if (!rtx_equal_p (x4, operands[1]))
        return NULL;
      x5 = PATTERN (peep2_next_insn (2));
      if (GET_CODE (x5) != PARALLEL
          || pattern692 (x5, ASHIFTRT) != 0)
        return NULL;
      x6 = XVECEXP (x5, 0, 0);
      x7 = XEXP (x6, 1);
      x8 = XEXP (x7, 1);
      if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 31])
        return NULL;
      x9 = XVECEXP (x5, 0, 1);
      if (GET_CODE (x9) != CLOBBER)
        return NULL;
      x10 = XEXP (x9, 0);
      if (GET_CODE (x10) != REG
          || REGNO (x10) != 17
          || GET_MODE (x10) != CCmode)
        return NULL;
      x11 = XEXP (x7, 0);
      if (!rtx_equal_p (x11, operands[2]))
        return NULL;
      x12 = XEXP (x6, 0);
      if (!rtx_equal_p (x12, operands[2]))
        return NULL;
      x13 = PATTERN (peep2_next_insn (3));
      if (GET_CODE (x13) != SET)
        return NULL;
      x14 = XEXP (x13, 0);
      operands[3] = x14;
      if (!memory_operand (operands[3], SImode))
        return NULL;
      x15 = XEXP (x13, 1);
      if (!rtx_equal_p (x15, operands[2])
          || !
#line 4030 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(REGNO (operands[1]) != REGNO (operands[2])
   && peep2_reg_dead_p (2, operands[1])
   && peep2_reg_dead_p (4, operands[2])
   && !reg_mentioned_p (operands[2], operands[3])))
        return NULL;
      *pmatch_len_ = 3;
      return gen_peephole2_3 (insn, operands);

    case PARALLEL:
      if (XVECLEN (x2, 0) != 2)
        return NULL;
      x16 = XVECEXP (x2, 0, 0);
      if (GET_CODE (x16) != SET)
        return NULL;
      x17 = XEXP (x16, 1);
      if (GET_CODE (x17) != ASHIFTRT
          || GET_MODE (x17) != SImode)
        return NULL;
      x18 = XEXP (x17, 1);
      if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 31])
        return NULL;
      x19 = XVECEXP (x2, 0, 1);
      if (pattern479 (x19) != 0)
        return NULL;
      x20 = XEXP (x16, 0);
      operands[2] = x20;
      if (!register_operand (operands[2], SImode))
        return NULL;
      x21 = XEXP (x17, 0);
      if (!rtx_equal_p (x21, operands[1]))
        return NULL;
      x5 = PATTERN (peep2_next_insn (2));
      if (GET_CODE (x5) != SET)
        return NULL;
      x22 = XEXP (x5, 0);
      operands[3] = x22;
      if (!memory_operand (operands[3], SImode))
        return NULL;
      x23 = XEXP (x5, 1);
      if (!rtx_equal_p (x23, operands[2])
          || !
#line 4046 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(/* cltd is shorter than sarl $31, %eax */
   !optimize_function_for_size_p (cfun)
   && true_regnum (operands[1]) == AX_REG
   && true_regnum (operands[2]) == DX_REG
   && peep2_reg_dead_p (2, operands[1])
   && peep2_reg_dead_p (3, operands[2])
   && !reg_mentioned_p (operands[2], operands[3])))
        return NULL;
      *pmatch_len_ = 2;
      return gen_peephole2_4 (insn, operands);

    default:
      return NULL;
    }
}

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, 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;
  if (peep2_current_count >= 3)
    {
      res = peephole2_1 (x1, insn, pmatch_len_);
      if (res != NULL_RTX)
        return res;
    }
  if (!register_operand (operands[0], SImode)
      || !memory_operand (operands[1], SImode))
    return NULL;
  x2 = PATTERN (peep2_next_insn (1));
  switch (GET_CODE (x2))
    {
    case CALL:
      x3 = XEXP (x2, 0);
      if (GET_CODE (x3) != MEM
          || GET_MODE (x3) != QImode)
        return NULL;
      x4 = XEXP (x2, 1);
      operands[3] = x4;
      x5 = XEXP (x3, 0);
      if (!rtx_equal_p (x5, operands[0])
          || !(
#line 12047 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_X32 && SIBLING_CALL_P (peep2_next_insn (1))
   && !reg_mentioned_p (operands[0],
			CALL_INSN_FUNCTION_USAGE (peep2_next_insn (1)))) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)))
        return NULL;
      *pmatch_len_ = 1;
      return gen_peephole2_26 (insn, operands);

    case UNSPEC_VOLATILE:
      if (pattern426 (x2) != 0)
        return NULL;
      x6 = PATTERN (peep2_next_insn (2));
      switch (GET_CODE (x6))
        {
        case CALL:
          x7 = XEXP (x6, 0);
          if (GET_CODE (x7) != MEM
              || GET_MODE (x7) != QImode)
            return NULL;
          x8 = XEXP (x6, 1);
          operands[3] = x8;
          x9 = XEXP (x7, 0);
          if (!rtx_equal_p (x9, operands[0])
              || !(
#line 12060 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_X32 && SIBLING_CALL_P (peep2_next_insn (2))
   && !reg_mentioned_p (operands[0],
			CALL_INSN_FUNCTION_USAGE (peep2_next_insn (2)))) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)))
            return NULL;
          *pmatch_len_ = 2;
          return gen_peephole2_28 (insn, operands);

        case PARALLEL:
          if (XVECLEN (x6, 0) != 2)
            return NULL;
          x10 = XVECEXP (x6, 0, 1);
          if (GET_CODE (x10) != SET)
            return NULL;
          x11 = XEXP (x10, 1);
          if (GET_CODE (x11) != PLUS
              || GET_MODE (x11) != SImode)
            return NULL;
          x12 = XEXP (x11, 0);
          if (GET_CODE (x12) != REG
              || REGNO (x12) != 7
              || GET_MODE (x12) != SImode)
            return NULL;
          x13 = XEXP (x10, 0);
          if (GET_CODE (x13) != REG
              || REGNO (x13) != 7
              || GET_MODE (x13) != SImode)
            return NULL;
          x14 = XEXP (x11, 1);
          operands[4] = x14;
          if (!immediate_operand (operands[4], SImode))
            return NULL;
          x15 = XVECEXP (x6, 0, 0);
          switch (GET_CODE (x15))
            {
            case CALL:
              x16 = XEXP (x15, 0);
              if (GET_CODE (x16) != MEM
                  || GET_MODE (x16) != QImode)
                return NULL;
              x17 = XEXP (x15, 1);
              operands[3] = x17;
              x18 = XEXP (x16, 0);
              if (!rtx_equal_p (x18, operands[0])
                  || !
#line 12139 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && SIBLING_CALL_P (peep2_next_insn (2))
   && !reg_mentioned_p (operands[0],
			CALL_INSN_FUNCTION_USAGE (peep2_next_insn (2)))))
                return NULL;
              *pmatch_len_ = 2;
              return gen_peephole2_31 (insn, operands);

            case SET:
              x17 = XEXP (x15, 1);
              if (GET_CODE (x17) != CALL)
                return NULL;
              x19 = XEXP (x17, 0);
              if (GET_CODE (x19) != MEM
                  || GET_MODE (x19) != QImode)
                return NULL;
              x16 = XEXP (x15, 0);
              operands[2] = x16;
              x20 = XEXP (x17, 1);
              operands[3] = x20;
              x21 = XEXP (x19, 0);
              if (!rtx_equal_p (x21, operands[0])
                  || !
#line 12346 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && SIBLING_CALL_P (peep2_next_insn (2))
   && !reg_mentioned_p (operands[0],
			CALL_INSN_FUNCTION_USAGE (peep2_next_insn (2)))))
                return NULL;
              *pmatch_len_ = 2;
              return gen_peephole2_39 (insn, operands);

            default:
              return NULL;
            }

        case SET:
          if (pattern664 (x6) != 0
              || !(
#line 12259 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_X32 && SIBLING_CALL_P (peep2_next_insn (2))
   && !reg_mentioned_p (operands[0],
			CALL_INSN_FUNCTION_USAGE (peep2_next_insn (2)))) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)))
            return NULL;
          *pmatch_len_ = 2;
          return gen_peephole2_36 (insn, operands);

        default:
          return NULL;
        }

    case PARALLEL:
      if (XVECLEN (x2, 0) != 2)
        return NULL;
      x22 = XVECEXP (x2, 0, 1);
      if (GET_CODE (x22) != SET)
        return NULL;
      x23 = XEXP (x22, 1);
      if (GET_CODE (x23) != PLUS
          || GET_MODE (x23) != SImode)
        return NULL;
      x24 = XEXP (x23, 0);
      if (GET_CODE (x24) != REG
          || REGNO (x24) != 7
          || GET_MODE (x24) != SImode)
        return NULL;
      x25 = XEXP (x22, 0);
      if (GET_CODE (x25) != REG
          || REGNO (x25) != 7
          || GET_MODE (x25) != SImode)
        return NULL;
      x26 = XEXP (x23, 1);
      operands[4] = x26;
      if (!immediate_operand (operands[4], SImode))
        return NULL;
      x27 = XVECEXP (x2, 0, 0);
      switch (GET_CODE (x27))
        {
        case CALL:
          x28 = XEXP (x27, 0);
          if (GET_CODE (x28) != MEM
              || GET_MODE (x28) != QImode)
            return NULL;
          x29 = XEXP (x27, 1);
          operands[3] = x29;
          x30 = XEXP (x28, 0);
          if (!rtx_equal_p (x30, operands[0])
              || !
#line 12120 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && SIBLING_CALL_P (peep2_next_insn (1))
   && !reg_mentioned_p (operands[0],
			CALL_INSN_FUNCTION_USAGE (peep2_next_insn (1)))))
            return NULL;
          *pmatch_len_ = 1;
          return gen_peephole2_30 (insn, operands);

        case SET:
          x29 = XEXP (x27, 1);
          if (GET_CODE (x29) != CALL)
            return NULL;
          x31 = XEXP (x29, 0);
          if (GET_CODE (x31) != MEM
              || GET_MODE (x31) != QImode)
            return NULL;
          x28 = XEXP (x27, 0);
          operands[2] = x28;
          x32 = XEXP (x29, 1);
          operands[3] = x32;
          x33 = XEXP (x31, 0);
          if (!rtx_equal_p (x33, operands[0])
              || !
#line 12325 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT && SIBLING_CALL_P (peep2_next_insn (1))
   && !reg_mentioned_p (operands[0],
			CALL_INSN_FUNCTION_USAGE (peep2_next_insn (1)))))
            return NULL;
          *pmatch_len_ = 1;
          return gen_peephole2_38 (insn, operands);

        default:
          return NULL;
        }

    case SET:
      switch (pattern427 (x2))
        {
        case 0:
          if (!(
#line 12156 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_X32 && peep2_reg_dead_p (2, operands[0])) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)))
            return NULL;
          *pmatch_len_ = 1;
          return gen_peephole2_32 (insn, operands);

        case 1:
          if (!(
#line 12244 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_X32 && SIBLING_CALL_P (peep2_next_insn (1))
   && !reg_mentioned_p (operands[0],
			CALL_INSN_FUNCTION_USAGE (peep2_next_insn (1)))) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)))
            return NULL;
          *pmatch_len_ = 1;
          return gen_peephole2_34 (insn, operands);

        default:
          return NULL;
        }

    default:
      return NULL;
    }
}

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, x6, x7, x8;
  rtx_insn *res ATTRIBUTE_UNUSED;
  if (peep2_current_count >= 2)
    {
      res = peephole2_2 (x1, insn, pmatch_len_);
      if (res != NULL_RTX)
        return res;
    }
  if (push_operand (operands[0], SImode)
      && memory_operand (operands[1], SImode)
      && 
#line 17906 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(TARGET_PUSH_MEMORY || optimize_insn_for_size_p ())
   && !RTX_FRAME_RELATED_P (peep2_next_insn (0))))
    {
      *pmatch_len_ = 0;
      res = gen_peephole2_51 (insn, operands);
      if (res != NULL_RTX)
        return res;
    }
  if (peep2_current_count < 2)
    return NULL;
  x2 = PATTERN (peep2_next_insn (1));
  if (pattern258 (x2, SImode) != 0)
    return NULL;
  x3 = XVECEXP (x2, 0, 1);
  if (pattern479 (x3) != 0)
    return NULL;
  x4 = XVECEXP (x2, 0, 0);
  x5 = XEXP (x4, 1);
  operands[3] = x5;
  if (commutative_operator (operands[3], SImode)
      && register_operand (operands[1], SImode))
    {
      x6 = XEXP (x5, 1);
      operands[2] = x6;
      if (memory_operand (operands[2], SImode))
        {
          x7 = XEXP (x5, 0);
          if (rtx_equal_p (x7, operands[0]))
            {
              x8 = XEXP (x4, 0);
              if (rtx_equal_p (x8, operands[0])
                  && 
#line 18103 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(REGNO (operands[0]) != REGNO (operands[1])
   && GENERAL_REGNO_P (REGNO (operands[0]))
   && GENERAL_REGNO_P (REGNO (operands[1]))))
                {
                  *pmatch_len_ = 1;
                  res = gen_peephole2_69 (insn, operands);
                  if (res != NULL_RTX)
                    return res;
                }
            }
        }
    }
  if (peep2_current_count < 3
      || peep2_current_count < 4
      || !plusminuslogic_operator (operands[3], SImode)
      || !memory_operand (operands[1], SImode)
      || pattern790 (x4, SImode) != 0
      || !
#line 18178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
   && peep2_reg_dead_p (4, operands[0])
   && !reg_overlap_mentioned_p (operands[0], operands[1])
   && !reg_overlap_mentioned_p (operands[0], operands[2])
   && (SImode != QImode
       || immediate_operand (operands[2], QImode)
       || any_QIreg_operand (operands[2], QImode))
   && ix86_match_ccmode (peep2_next_insn (3),
			 (GET_CODE (operands[3]) == PLUS
			  || GET_CODE (operands[3]) == MINUS)
			 ? CCGOCmode : CCNOmode)))
    return NULL;
  *pmatch_len_ = 3;
  return gen_peephole2_75 (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, x8, x9;
  rtx_insn *res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], DImode)
      || !memory_operand (operands[1], DImode))
    return NULL;
  x2 = PATTERN (peep2_next_insn (1));
  switch (GET_CODE (x2))
    {
    case CALL:
      x3 = XEXP (x2, 0);
      if (GET_CODE (x3) != MEM
          || GET_MODE (x3) != QImode)
        return NULL;
      x4 = XEXP (x2, 1);
      operands[3] = x4;
      x5 = XEXP (x3, 0);
      if (!rtx_equal_p (x5, operands[0])
          || !(
#line 12047 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_X32 && SIBLING_CALL_P (peep2_next_insn (1))
   && !reg_mentioned_p (operands[0],
			CALL_INSN_FUNCTION_USAGE (peep2_next_insn (1)))) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)))
        return NULL;
      *pmatch_len_ = 1;
      return gen_peephole2_27 (insn, operands);

    case UNSPEC_VOLATILE:
      if (pattern426 (x2) != 0)
        return NULL;
      x6 = PATTERN (peep2_next_insn (2));
      switch (GET_CODE (x6))
        {
        case CALL:
          x7 = XEXP (x6, 0);
          if (GET_CODE (x7) != MEM
              || GET_MODE (x7) != QImode)
            return NULL;
          x8 = XEXP (x6, 1);
          operands[3] = x8;
          x9 = XEXP (x7, 0);
          if (!rtx_equal_p (x9, operands[0])
              || !(
#line 12060 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_X32 && SIBLING_CALL_P (peep2_next_insn (2))
   && !reg_mentioned_p (operands[0],
			CALL_INSN_FUNCTION_USAGE (peep2_next_insn (2)))) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)))
            return NULL;
          *pmatch_len_ = 2;
          return gen_peephole2_29 (insn, operands);

        case SET:
          if (pattern664 (x6) != 0
              || !(
#line 12259 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_X32 && SIBLING_CALL_P (peep2_next_insn (2))
   && !reg_mentioned_p (operands[0],
			CALL_INSN_FUNCTION_USAGE (peep2_next_insn (2)))) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)))
            return NULL;
          *pmatch_len_ = 2;
          return gen_peephole2_37 (insn, operands);

        default:
          return NULL;
        }

    case SET:
      switch (pattern427 (x2))
        {
        case 0:
          if (!(
#line 12156 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_X32 && peep2_reg_dead_p (2, operands[0])) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)))
            return NULL;
          *pmatch_len_ = 1;
          return gen_peephole2_33 (insn, operands);

        case 1:
          if (!(
#line 12244 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_X32 && SIBLING_CALL_P (peep2_next_insn (1))
   && !reg_mentioned_p (operands[0],
			CALL_INSN_FUNCTION_USAGE (peep2_next_insn (1)))) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)))
            return NULL;
          *pmatch_len_ = 1;
          return gen_peephole2_35 (insn, operands);

        default:
          return NULL;
        }

    default:
      return NULL;
    }
}

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;
  rtx_insn *res ATTRIBUTE_UNUSED;
  if (peep2_current_count >= 2)
    {
      res = peephole2_4 (x1, insn, pmatch_len_);
      if (res != NULL_RTX)
        return res;
    }
  if (!memory_operand (operands[1], DImode))
    return NULL;
  if (push_operand (operands[0], DImode)
      && (
#line 17906 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(TARGET_PUSH_MEMORY || optimize_insn_for_size_p ())
   && !RTX_FRAME_RELATED_P (peep2_next_insn (0))) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
    {
      *pmatch_len_ = 0;
      res = gen_peephole2_52 (insn, operands);
      if (res != NULL_RTX)
        return res;
    }
  if (peep2_current_count < 2
      || peep2_current_count < 3
      || peep2_current_count < 4)
    return NULL;
  x2 = PATTERN (peep2_next_insn (1));
  if (pattern258 (x2, DImode) != 0)
    return NULL;
  x3 = XVECEXP (x2, 0, 0);
  x4 = XEXP (x3, 1);
  if (!plusminuslogic_operator (x4, DImode))
    return NULL;
  operands[3] = x4;
  x5 = XVECEXP (x2, 0, 1);
  if (pattern479 (x5) != 0
      || pattern790 (x3, DImode) != 0
      || !(
#line 18178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
   && peep2_reg_dead_p (4, operands[0])
   && !reg_overlap_mentioned_p (operands[0], operands[1])
   && !reg_overlap_mentioned_p (operands[0], operands[2])
   && (DImode != QImode
       || immediate_operand (operands[2], QImode)
       || any_QIreg_operand (operands[2], QImode))
   && ix86_match_ccmode (peep2_next_insn (3),
			 (GET_CODE (operands[3]) == PLUS
			  || GET_CODE (operands[3]) == MINUS)
			 ? CCGOCmode : CCNOmode)) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
    return NULL;
  *pmatch_len_ = 3;
  return gen_peephole2_76 (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;
  x2 = XEXP (x1, 1);
  operands[1] = x2;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  switch (GET_MODE (operands[0]))
    {
    case SImode:
      res = peephole2_3 (x1, insn, pmatch_len_);
      if (res != NULL_RTX)
        return res;
      break;

    case DImode:
      res = peephole2_5 (x1, insn, pmatch_len_);
      if (res != NULL_RTX)
        return res;
      break;

    case QImode:
      if (memory_operand (operands[1], QImode))
        {
          if (push_operand (operands[0], QImode)
              && 
#line 17906 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(TARGET_PUSH_MEMORY || optimize_insn_for_size_p ())
   && !RTX_FRAME_RELATED_P (peep2_next_insn (0))))
            {
              *pmatch_len_ = 0;
              res = gen_peephole2_49 (insn, operands);
              if (res != NULL_RTX)
                return res;
            }
          if (peep2_current_count >= 2)
            {
              x4 = PATTERN (peep2_next_insn (1));
              if (pattern303 (x4, QImode) == 0)
                {
                  if (nonmemory_operand (operands[2], QImode)
                      && plusminuslogic_operator (operands[3], QImode))
                    {
                      x5 = XVECEXP (x4, 0, 0);
                      if (pattern789 (x5) == 0
                          && 
#line 18178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
   && peep2_reg_dead_p (4, operands[0])
   && !reg_overlap_mentioned_p (operands[0], operands[1])
   && !reg_overlap_mentioned_p (operands[0], operands[2])
   && (QImode != QImode
       || immediate_operand (operands[2], QImode)
       || any_QIreg_operand (operands[2], QImode))
   && ix86_match_ccmode (peep2_next_insn (3),
			 (GET_CODE (operands[3]) == PLUS
			  || GET_CODE (operands[3]) == MINUS)
			 ? CCGOCmode : CCNOmode)))
                        {
                          *pmatch_len_ = 3;
                          res = gen_peephole2_73 (insn, operands);
                          if (res != NULL_RTX)
                            return res;
                        }
                    }
                  if (nonmemory_operand (operands[2], SImode))
                    {
                      x5 = XVECEXP (x4, 0, 0);
                      if (pattern847 (x5) == 0
                          && 
#line 18238 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
   && REG_P (operands[0]) && REG_P (operands[4])
   && REGNO (operands[0]) == REGNO (operands[4])
   && peep2_reg_dead_p (4, operands[0])
   && (QImode != QImode
       || immediate_operand (operands[2], SImode)
       || any_QIreg_operand (operands[2], SImode))
   && !reg_overlap_mentioned_p (operands[0], operands[1])
   && !reg_overlap_mentioned_p (operands[0], operands[2])
   && ix86_match_ccmode (peep2_next_insn (3),
			 (GET_CODE (operands[3]) == PLUS
			  || GET_CODE (operands[3]) == MINUS)
			 ? CCGOCmode : CCNOmode)))
                        {
                          *pmatch_len_ = 3;
                          res = gen_peephole2_81 (insn, operands);
                          if (res != NULL_RTX)
                            return res;
                        }
                    }
                }
            }
        }
      break;

    case HImode:
      if (memory_operand (operands[1], HImode))
        {
          if (push_operand (operands[0], HImode)
              && 
#line 17906 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(TARGET_PUSH_MEMORY || optimize_insn_for_size_p ())
   && !RTX_FRAME_RELATED_P (peep2_next_insn (0))))
            {
              *pmatch_len_ = 0;
              res = gen_peephole2_50 (insn, operands);
              if (res != NULL_RTX)
                return res;
            }
          if (peep2_current_count >= 2)
            {
              x4 = PATTERN (peep2_next_insn (1));
              if (pattern303 (x4, HImode) == 0)
                {
                  if (nonmemory_operand (operands[2], HImode)
                      && plusminuslogic_operator (operands[3], HImode))
                    {
                      x5 = XVECEXP (x4, 0, 0);
                      if (pattern789 (x5) == 0
                          && 
#line 18178 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
   && peep2_reg_dead_p (4, operands[0])
   && !reg_overlap_mentioned_p (operands[0], operands[1])
   && !reg_overlap_mentioned_p (operands[0], operands[2])
   && (HImode != QImode
       || immediate_operand (operands[2], QImode)
       || any_QIreg_operand (operands[2], QImode))
   && ix86_match_ccmode (peep2_next_insn (3),
			 (GET_CODE (operands[3]) == PLUS
			  || GET_CODE (operands[3]) == MINUS)
			 ? CCGOCmode : CCNOmode)))
                        {
                          *pmatch_len_ = 3;
                          res = gen_peephole2_74 (insn, operands);
                          if (res != NULL_RTX)
                            return res;
                        }
                    }
                  if (nonmemory_operand (operands[2], SImode))
                    {
                      x5 = XVECEXP (x4, 0, 0);
                      if (pattern847 (x5) == 0
                          && 
#line 18238 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
   && REG_P (operands[0]) && REG_P (operands[4])
   && REGNO (operands[0]) == REGNO (operands[4])
   && peep2_reg_dead_p (4, operands[0])
   && (HImode != QImode
       || immediate_operand (operands[2], SImode)
       || any_QIreg_operand (operands[2], SImode))
   && !reg_overlap_mentioned_p (operands[0], operands[1])
   && !reg_overlap_mentioned_p (operands[0], operands[2])
   && ix86_match_ccmode (peep2_next_insn (3),
			 (GET_CODE (operands[3]) == PLUS
			  || GET_CODE (operands[3]) == MINUS)
			 ? CCGOCmode : CCNOmode)))
                        {
                          *pmatch_len_ = 3;
                          res = gen_peephole2_82 (insn, operands);
                          if (res != NULL_RTX)
                            return res;
                        }
                    }
                }
            }
        }
      break;

    case SFmode:
      if (push_operand (operands[0], SFmode)
          && memory_operand (operands[1], SFmode)
          && 
#line 17917 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(TARGET_PUSH_MEMORY || optimize_insn_for_size_p ())
   && !RTX_FRAME_RELATED_P (peep2_next_insn (0))))
        {
          *pmatch_len_ = 0;
          res = gen_peephole2_53 (insn, operands);
          if (res != NULL_RTX)
            return res;
        }
      break;

    default:
      break;
    }
  if (peep2_current_count < 2)
    return NULL;
  x4 = PATTERN (peep2_next_insn (1));
  if (GET_CODE (x4) != SET)
    return NULL;
  x6 = XEXP (x4, 0);
  if (!rtx_equal_p (x6, operands[0]))
    return NULL;
  if (fp_register_operand (operands[0], VOIDmode)
      && fp_register_operand (operands[1], VOIDmode))
    {
      x7 = XEXP (x4, 1);
      if (binary_fp_operator (x7, VOIDmode))
        {
          operands[2] = x7;
          x8 = XEXP (x7, 1);
          operands[3] = x8;
          if (memory_operand (operands[3], VOIDmode))
            {
              x9 = XEXP (x7, 0);
              if (rtx_equal_p (x9, operands[0])
                  && 
#line 17584 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(REGNO (operands[0]) != REGNO (operands[1])))
                {
                  *pmatch_len_ = 1;
                  res = gen_peephole2_48 (insn, operands);
                  if (res != NULL_RTX)
                    return res;
                }
            }
        }
    }
  if (!register_operand (operands[0], VOIDmode)
      || !register_operand (operands[1], VOIDmode))
    return NULL;
  x7 = XEXP (x4, 1);
  if (!commutative_operator (x7, VOIDmode))
    return NULL;
  operands[3] = x7;
  x8 = XEXP (x7, 1);
  operands[2] = x8;
  if (!memory_operand (operands[2], VOIDmode))
    return NULL;
  x9 = XEXP (x7, 0);
  if (!rtx_equal_p (x9, operands[0])
      || !
#line 18119 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(REGNO (operands[0]) != REGNO (operands[1])
   && ((MMX_REGNO_P (REGNO (operands[0]))
        && MMX_REGNO_P (REGNO (operands[1]))) 
       || (SSE_REGNO_P (REGNO (operands[0]))
           && SSE_REGNO_P (REGNO (operands[1]))))))
    return NULL;
  *pmatch_len_ = 1;
  return gen_peephole2_70 (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;
  rtx_insn *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 SImode:
      switch (pattern170 (x3, SImode))
        {
        case 0:
          if (!
#line 4823 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVOID_VECTOR_DECODE
   && SSE_FLOAT_MODE_P (SFmode)
   && optimize_insn_for_speed_p ()))
            return NULL;
          *pmatch_len_ = 0;
          return gen_peephole2_7 (insn, operands);

        case 1:
          if (!
#line 4823 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVOID_VECTOR_DECODE
   && SSE_FLOAT_MODE_P (DFmode)
   && optimize_insn_for_speed_p ()))
            return NULL;
          *pmatch_len_ = 0;
          return gen_peephole2_9 (insn, operands);

        default:
          return NULL;
        }

    case DImode:
      switch (pattern170 (x3, DImode))
        {
        case 0:
          if (!(
#line 4823 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVOID_VECTOR_DECODE
   && SSE_FLOAT_MODE_P (SFmode)
   && optimize_insn_for_speed_p ()) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return NULL;
          *pmatch_len_ = 0;
          return gen_peephole2_8 (insn, operands);

        case 1:
          if (!(
#line 4823 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_AVOID_VECTOR_DECODE
   && SSE_FLOAT_MODE_P (DFmode)
   && optimize_insn_for_speed_p ()) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return NULL;
          *pmatch_len_ = 0;
          return gen_peephole2_10 (insn, operands);

        default:
          return NULL;
        }

    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, x13, x14, x15, x16;
  rtx_insn *res ATTRIBUTE_UNUSED;
  if (peep2_current_count < 3)
    return NULL;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != REG
      || REGNO (x2) != 17)
    return NULL;
  x3 = XEXP (x1, 1);
  operands[0] = x3;
  x4 = PATTERN (peep2_next_insn (1));
  if (GET_CODE (x4) != SET)
    return NULL;
  x5 = XEXP (x4, 1);
  if (!ix86_comparison_operator (x5, QImode))
    return NULL;
  operands[2] = x5;
  x6 = XEXP (x5, 0);
  if (GET_CODE (x6) != REG
      || REGNO (x6) != 17)
    return NULL;
  x7 = XEXP (x5, 1);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return NULL;
  x8 = XEXP (x4, 0);
  operands[1] = x8;
  if (!register_operand (operands[1], QImode))
    return NULL;
  x9 = PATTERN (peep2_next_insn (2));
  switch (GET_CODE (x9))
    {
    case SET:
      x10 = XEXP (x9, 1);
      if (GET_CODE (x10) != ZERO_EXTEND)
        return NULL;
      x11 = XEXP (x9, 0);
      operands[3] = x11;
      if (!any_QIreg_operand (operands[3], VOIDmode))
        return NULL;
      x12 = XEXP (x10, 0);
      if (!rtx_equal_p (x12, operands[1])
          || !
#line 11880 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((peep2_reg_dead_p (3, operands[1])
    || operands_match_p (operands[1], operands[3]))
   && ! reg_overlap_mentioned_p (operands[3], operands[0])))
        return NULL;
      *pmatch_len_ = 2;
      return gen_peephole2_22 (insn, operands);

    case PARALLEL:
      if (pattern692 (x9, AND) != 0)
        return NULL;
      x13 = XVECEXP (x9, 0, 0);
      x14 = XEXP (x13, 1);
      x15 = XEXP (x14, 1);
      if (GET_CODE (x15) != CONST_INT
          || XWINT (x15, 0) != 255LL
          || pattern848 (x9, SImode) != 0)
        return NULL;
      x16 = XEXP (x14, 0);
      if (!rtx_equal_p (x16, operands[3])
          || !
#line 11924 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(REGNO (operands[1]) == REGNO (operands[3])
   && ! reg_overlap_mentioned_p (operands[3], operands[0])))
        return NULL;
      *pmatch_len_ = 2;
      return gen_peephole2_24 (insn, operands);

    default:
      return NULL;
    }
}

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;
  rtx_insn *res ATTRIBUTE_UNUSED;
  if (peep2_current_count < 3
      || !register_operand (operands[0], QImode))
    return NULL;
  x2 = XEXP (x1, 1);
  operands[2] = x2;
  if (!const_int_operand (operands[2], QImode))
    return NULL;
  x3 = PATTERN (peep2_next_insn (1));
  if (pattern259 (x3) != 0)
    return NULL;
  x4 = XVECEXP (x3, 0, 0);
  x5 = XEXP (x4, 1);
  if (GET_MODE (x5) != QImode)
    return NULL;
  x6 = XVECEXP (x3, 0, 1);
  if (GET_CODE (x6) != SET)
    return NULL;
  x7 = XEXP (x6, 1);
  if (GET_CODE (x7) != PLUS
      || GET_MODE (x7) != QImode
      || pattern665 (x3) != 0
      || !memory_operand (operands[1], QImode)
      || pattern791 (x3) != 0
      || !const_int_operand (operands[3], QImode))
    return NULL;
  x8 = PATTERN (peep2_next_insn (2));
  x9 = XEXP (x8, 1);
  x10 = XEXP (x9, 0);
  if (!rtx_equal_p (x10, operands[0])
      || !
#line 457 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
(peep2_reg_dead_p (3, operands[0])
   && (unsigned HOST_WIDE_INT) INTVAL (operands[2])
      == -(unsigned HOST_WIDE_INT) INTVAL (operands[3])
   && !reg_overlap_mentioned_p (operands[0], operands[1])))
    return NULL;
  *pmatch_len_ = 2;
  return gen_peephole2_152 (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, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24, x25;
  rtx_insn *res ATTRIBUTE_UNUSED;
  if (register_operand (operands[0], VOIDmode))
    {
      x2 = XEXP (x1, 1);
      operands[1] = x2;
      if (const0_operand (operands[1], VOIDmode)
          && 
#line 18269 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(GET_MODE_SIZE (GET_MODE (operands[0])) <= UNITS_PER_WORD
   && (! TARGET_USE_MOV0 || optimize_insn_for_size_p ())
   && GENERAL_REGNO_P (REGNO (operands[0]))
   && peep2_regno_dead_p (0, FLAGS_REG)))
        {
          *pmatch_len_ = 0;
          res = gen_peephole2_83 (insn, operands);
          if (res != NULL_RTX)
            return res;
        }
    }
  if (peep2_current_count >= 2)
    {
      res = peephole2_9 (x1, insn, pmatch_len_);
      if (res != NULL_RTX)
        return res;
    }
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    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:
          operands[1] = x3;
          x4 = XEXP (x3, 0);
          if (GET_CODE (x4) != REG
              || REGNO (x4) != 17)
            return NULL;
          x5 = XEXP (x3, 1);
          if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return NULL;
          x6 = XEXP (x2, 1);
          switch (GET_CODE (x6))
            {
            case REG:
            case SUBREG:
            case MEM:
              operands[2] = x6;
              x7 = XEXP (x2, 2);
              operands[3] = x7;
              switch (GET_MODE (operands[0]))
                {
                case HImode:
                  if (pattern520 (x2, HImode) != 0
                      || !
#line 17334 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_CMOVE && TARGET_AVOID_MEM_OPND_FOR_CMOVE
   && (MEM_P (operands[2]) || MEM_P (operands[3]))
   && optimize_insn_for_speed_p ()))
                    return NULL;
                  *pmatch_len_ = 0;
                  return gen_peephole2_42 (insn, operands);

                case SImode:
                  if (pattern520 (x2, SImode) != 0
                      || !
#line 17334 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_CMOVE && TARGET_AVOID_MEM_OPND_FOR_CMOVE
   && (MEM_P (operands[2]) || MEM_P (operands[3]))
   && optimize_insn_for_speed_p ()))
                    return NULL;
                  *pmatch_len_ = 0;
                  return gen_peephole2_43 (insn, operands);

                case DImode:
                  if (pattern520 (x2, DImode) != 0
                      || !(
#line 17334 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_CMOVE && TARGET_AVOID_MEM_OPND_FOR_CMOVE
   && (MEM_P (operands[2]) || MEM_P (operands[3]))
   && optimize_insn_for_speed_p ()) && 
#line 991 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                    return NULL;
                  *pmatch_len_ = 0;
                  return gen_peephole2_44 (insn, operands);

                case SFmode:
                  if (!register_and_not_any_fp_reg_operand (operands[0], SFmode)
                      || pattern609 (x2, SFmode) != 0
                      || !
#line 17494 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((SFmode != DFmode || TARGET_64BIT)
   && TARGET_80387 && TARGET_CMOVE
   && TARGET_AVOID_MEM_OPND_FOR_CMOVE
   && (MEM_P (operands[2]) || MEM_P (operands[3]))
   && optimize_insn_for_speed_p ()))
                    return NULL;
                  *pmatch_len_ = 0;
                  return gen_peephole2_46 (insn, operands);

                case DFmode:
                  if (!register_and_not_any_fp_reg_operand (operands[0], DFmode)
                      || pattern609 (x2, DFmode) != 0
                      || !
#line 17494 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((DFmode != DFmode || TARGET_64BIT)
   && TARGET_80387 && TARGET_CMOVE
   && TARGET_AVOID_MEM_OPND_FOR_CMOVE
   && (MEM_P (operands[2]) || MEM_P (operands[3]))
   && optimize_insn_for_speed_p ()))
                    return NULL;
                  *pmatch_len_ = 0;
                  return gen_peephole2_47 (insn, operands);

                default:
                  return NULL;
                }

            case ZERO_EXTEND:
              if (GET_MODE (x6) != DImode)
                return NULL;
              x7 = XEXP (x2, 2);
              if (GET_CODE (x7) != ZERO_EXTEND
                  || GET_MODE (x7) != DImode
                  || !register_operand (operands[0], DImode)
                  || GET_MODE (x2) != DImode
                  || !ix86_comparison_operator (operands[1], VOIDmode))
                return NULL;
              x8 = XEXP (x6, 0);
              operands[2] = x8;
              if (!nonimmediate_operand (operands[2], SImode))
                return NULL;
              x9 = XEXP (x7, 0);
              operands[3] = x9;
              if (!nonimmediate_operand (operands[3], SImode)
                  || !
#line 17364 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT
   && TARGET_CMOVE && TARGET_AVOID_MEM_OPND_FOR_CMOVE
   && (MEM_P (operands[2]) || MEM_P (operands[3]))
   && optimize_insn_for_speed_p ()))
                return NULL;
              *pmatch_len_ = 0;
              return gen_peephole2_45 (insn, operands);

            default:
              return NULL;
            }

        default:
          return NULL;
        }

    case COMPARE:
      operands[1] = x2;
      if (!compare_operator (operands[1], VOIDmode))
        return NULL;
      x6 = XEXP (x2, 1);
      if (GET_CODE (x6) != CONST_INT
          || !flags_reg_operand (operands[0], VOIDmode))
        return NULL;
      x3 = XEXP (x2, 0);
      switch (GET_CODE (x3))
        {
        case REG:
        case SUBREG:
        case MEM:
          operands[2] = x3;
          if (memory_operand (operands[2], SImode)
              && XWINT (x6, 0) == 0LL
              && 
#line 17959 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(optimize_insn_for_speed_p () && ix86_match_ccmode (insn, CCNOmode)))
            {
              *pmatch_len_ = 0;
              res = gen_peephole2_60 (insn, operands);
              if (res != NULL_RTX)
                return res;
            }
          if (!register_operand (operands[2], VOIDmode))
            return NULL;
          operands[3] = x6;
          if (!const_int_operand (operands[3], VOIDmode)
              || !
#line 18530 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((((!TARGET_FUSE_CMP_AND_BRANCH || optimize_insn_for_size_p ())
     && incdec_operand (operands[3], GET_MODE (operands[3])))
    || (!TARGET_FUSE_CMP_AND_BRANCH
	&& INTVAL (operands[3]) == 128))
   && ix86_match_ccmode (insn, CCGCmode)
   && peep2_reg_dead_p (1, operands[2])))
            return NULL;
          *pmatch_len_ = 0;
          return gen_peephole2_137 (insn, operands);

        case AND:
          if (XWINT (x6, 0) != 0LL)
            return NULL;
          x5 = XEXP (x3, 1);
          operands[3] = x5;
          x4 = XEXP (x3, 0);
          switch (GET_CODE (x4))
            {
            case REG:
            case SUBREG:
              operands[2] = x4;
              switch (GET_MODE (x3))
                {
                case SImode:
                  if (!register_operand (operands[2], SImode)
                      || !immediate_operand (operands[3], SImode)
                      || !
#line 18001 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(ix86_match_ccmode (insn, CCNOmode)
   && (true_regnum (operands[2]) != AX_REG
       || satisfies_constraint_K (operands[3]))
   && peep2_reg_dead_p (1, operands[2])))
                    return NULL;
                  *pmatch_len_ = 0;
                  return gen_peephole2_64 (insn, operands);

                case QImode:
                  if (!register_operand (operands[2], QImode)
                      || !immediate_operand (operands[3], QImode)
                      || !
#line 18021 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(! TARGET_PARTIAL_REG_STALL
   && ix86_match_ccmode (insn, CCNOmode)
   && true_regnum (operands[2]) != AX_REG
   && peep2_reg_dead_p (1, operands[2])))
                    return NULL;
                  *pmatch_len_ = 0;
                  return gen_peephole2_65 (insn, operands);

                default:
                  return NULL;
                }

            case ZERO_EXTRACT:
              if (pattern280 (x3) != 0)
                return NULL;
              x10 = XEXP (x4, 0);
              operands[2] = x10;
              if (!QIreg_operand (operands[2], VOIDmode)
                  || !const_int_operand (operands[3], VOIDmode)
                  || !
#line 18042 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(! TARGET_PARTIAL_REG_STALL
   && ix86_match_ccmode (insn, CCNOmode)
   && true_regnum (operands[2]) != AX_REG
   && peep2_reg_dead_p (1, operands[2])))
                return NULL;
              *pmatch_len_ = 0;
              return gen_peephole2_66 (insn, operands);

            default:
              return NULL;
            }

        default:
          return NULL;
        }

    case NOT:
      x3 = XEXP (x2, 0);
      operands[1] = x3;
      switch (GET_MODE (operands[0]))
        {
        case QImode:
          if (!nonimmediate_gr_operand (operands[0], QImode)
              || GET_MODE (x2) != QImode
              || !nonimmediate_gr_operand (operands[1], QImode)
              || !
#line 17977 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(optimize_insn_for_speed_p ()
   && ((TARGET_NOT_UNPAIRABLE
	&& (!MEM_P (operands[0])
	    || !memory_displacement_operand (operands[0], QImode)))
       || (TARGET_NOT_VECTORMODE
	   && long_memory_operand (operands[0], QImode)))
   && peep2_regno_dead_p (0, FLAGS_REG)))
            return NULL;
          *pmatch_len_ = 0;
          return gen_peephole2_61 (insn, operands);

        case HImode:
          if (!nonimmediate_gr_operand (operands[0], HImode)
              || GET_MODE (x2) != HImode
              || !nonimmediate_gr_operand (operands[1], HImode)
              || !
#line 17977 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(optimize_insn_for_speed_p ()
   && ((TARGET_NOT_UNPAIRABLE
	&& (!MEM_P (operands[0])
	    || !memory_displacement_operand (operands[0], HImode)))
       || (TARGET_NOT_VECTORMODE
	   && long_memory_operand (operands[0], HImode)))
   && peep2_regno_dead_p (0, FLAGS_REG)))
            return NULL;
          *pmatch_len_ = 0;
          return gen_peephole2_62 (insn, operands);

        case SImode:
          if (!nonimmediate_gr_operand (operands[0], SImode)
              || GET_MODE (x2) != SImode
              || !nonimmediate_gr_operand (operands[1], SImode)
              || !
#line 17977 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(optimize_insn_for_speed_p ()
   && ((TARGET_NOT_UNPAIRABLE
	&& (!MEM_P (operands[0])
	    || !memory_displacement_operand (operands[0], SImode)))
       || (TARGET_NOT_VECTORMODE
	   && long_memory_operand (operands[0], SImode)))
   && peep2_regno_dead_p (0, FLAGS_REG)))
            return NULL;
          *pmatch_len_ = 0;
          return gen_peephole2_63 (insn, operands);

        default:
          return NULL;
        }

    case CONST_INT:
      if (XWINT (x2, 0) == -1LL)
        {
          switch (GET_MODE (operands[0]))
            {
            case HImode:
              if (register_operand (operands[0], HImode)
                  && 
#line 18291 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_insn_for_size_p () || TARGET_MOVE_M1_VIA_OR)
   && GENERAL_REGNO_P (REGNO (operands[0]))
   && peep2_regno_dead_p (0, FLAGS_REG)))
                {
                  *pmatch_len_ = 0;
                  res = gen_peephole2_85 (insn, operands);
                  if (res != NULL_RTX)
                    return res;
                }
              break;

            case SImode:
              if (register_operand (operands[0], SImode)
                  && 
#line 18291 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_insn_for_size_p () || TARGET_MOVE_M1_VIA_OR)
   && GENERAL_REGNO_P (REGNO (operands[0]))
   && peep2_regno_dead_p (0, FLAGS_REG)))
                {
                  *pmatch_len_ = 0;
                  res = gen_peephole2_86 (insn, operands);
                  if (res != NULL_RTX)
                    return res;
                }
              break;

            case DImode:
              if (register_operand (operands[0], DImode)
                  && (
#line 18291 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((optimize_insn_for_size_p () || TARGET_MOVE_M1_VIA_OR)
   && GENERAL_REGNO_P (REGNO (operands[0]))
   && peep2_regno_dead_p (0, FLAGS_REG)) && 
#line 991 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                {
                  *pmatch_len_ = 0;
                  res = gen_peephole2_87 (insn, operands);
                  if (res != NULL_RTX)
                    return res;
                }
              break;

            default:
              break;
            }
        }
      if (peep2_current_count < 2
          || peep2_current_count < 3)
        return NULL;
      operands[2] = x2;
      x11 = PATTERN (peep2_next_insn (1));
      if (pattern259 (x11) != 0)
        return NULL;
      x12 = XVECEXP (x11, 0, 1);
      if (GET_CODE (x12) != SET)
        return NULL;
      x13 = XEXP (x12, 1);
      if (GET_CODE (x13) != PLUS
          || pattern665 (x11) != 0
          || pattern791 (x11) != 0)
        return NULL;
      x14 = PATTERN (peep2_next_insn (2));
      x15 = XEXP (x14, 1);
      x16 = XEXP (x15, 0);
      if (!rtx_equal_p (x16, operands[0]))
        return NULL;
      switch (GET_MODE (operands[0]))
        {
        case HImode:
          if (pattern943 (x11, HImode) != 0
              || !
#line 457 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
(peep2_reg_dead_p (3, operands[0])
   && (unsigned HOST_WIDE_INT) INTVAL (operands[2])
      == -(unsigned HOST_WIDE_INT) INTVAL (operands[3])
   && !reg_overlap_mentioned_p (operands[0], operands[1])))
            return NULL;
          *pmatch_len_ = 2;
          return gen_peephole2_153 (insn, operands);

        case SImode:
          if (pattern943 (x11, SImode) != 0
              || !
#line 457 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
(peep2_reg_dead_p (3, operands[0])
   && (unsigned HOST_WIDE_INT) INTVAL (operands[2])
      == -(unsigned HOST_WIDE_INT) INTVAL (operands[3])
   && !reg_overlap_mentioned_p (operands[0], operands[1])))
            return NULL;
          *pmatch_len_ = 2;
          return gen_peephole2_154 (insn, operands);

        case DImode:
          if (pattern943 (x11, DImode) != 0
              || !(
#line 457 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sync.md"
(peep2_reg_dead_p (3, operands[0])
   && (unsigned HOST_WIDE_INT) INTVAL (operands[2])
      == -(unsigned HOST_WIDE_INT) INTVAL (operands[3])
   && !reg_overlap_mentioned_p (operands[0], operands[1])) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return NULL;
          *pmatch_len_ = 2;
          return gen_peephole2_155 (insn, operands);

        default:
          return NULL;
        }

    case PLUS:
      switch (pattern26 (x2))
        {
        case 0:
          x6 = XEXP (x2, 1);
          operands[1] = x6;
          if (x86_64_nonmemory_operand (operands[1], SImode))
            {
              x3 = XEXP (x2, 0);
              if (rtx_equal_p (x3, operands[0])
                  && 
#line 18310 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_OPT_AGU
   && peep2_regno_dead_p (0, FLAGS_REG)))
                {
                  *pmatch_len_ = 0;
                  res = gen_peephole2_88 (insn, operands);
                  if (res != NULL_RTX)
                    return res;
                }
            }
          x3 = XEXP (x2, 0);
          operands[1] = x3;
          if (!x86_64_nonmemory_operand (operands[1], SImode)
              || !rtx_equal_p (x6, operands[0])
              || !
#line 18319 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_OPT_AGU
   && peep2_regno_dead_p (0, FLAGS_REG)))
            return NULL;
          *pmatch_len_ = 0;
          return gen_peephole2_90 (insn, operands);

        case 1:
          x6 = XEXP (x2, 1);
          operands[1] = x6;
          if (x86_64_nonmemory_operand (operands[1], DImode))
            {
              x3 = XEXP (x2, 0);
              if (rtx_equal_p (x3, operands[0])
                  && (
#line 18310 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_OPT_AGU
   && peep2_regno_dead_p (0, FLAGS_REG)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                {
                  *pmatch_len_ = 0;
                  res = gen_peephole2_89 (insn, operands);
                  if (res != NULL_RTX)
                    return res;
                }
            }
          x3 = XEXP (x2, 0);
          operands[1] = x3;
          if (!x86_64_nonmemory_operand (operands[1], DImode)
              || !rtx_equal_p (x6, operands[0])
              || !(
#line 18319 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_OPT_AGU
   && peep2_regno_dead_p (0, FLAGS_REG)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return NULL;
          *pmatch_len_ = 0;
          return gen_peephole2_91 (insn, operands);

        default:
          return NULL;
        }

    case ZERO_EXTEND:
      if (GET_MODE (x2) != DImode
          || !register_operand (operands[0], DImode))
        return NULL;
      x3 = XEXP (x2, 0);
      if (GET_MODE (x3) != SImode)
        return NULL;
      switch (GET_CODE (x3))
        {
        case PLUS:
          x4 = XEXP (x3, 0);
          operands[1] = x4;
          x5 = XEXP (x3, 1);
          operands[2] = x5;
          if (nonmemory_operand (operands[2], SImode)
              && register_operand (operands[1], SImode)
              && 
#line 18329 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && !TARGET_OPT_AGU
   && REGNO (operands[0]) == REGNO (operands[1])
   && peep2_regno_dead_p (0, FLAGS_REG)))
            {
              *pmatch_len_ = 0;
              res = gen_peephole2_92 (insn, operands);
              if (res != NULL_RTX)
                return res;
            }
          if (!register_operand (operands[2], SImode)
              || !nonmemory_operand (operands[1], SImode)
              || !
#line 18341 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && !TARGET_OPT_AGU
   && REGNO (operands[0]) == REGNO (operands[2])
   && peep2_regno_dead_p (0, FLAGS_REG)))
            return NULL;
          *pmatch_len_ = 0;
          return gen_peephole2_93 (insn, operands);

        case MULT:
          x4 = XEXP (x3, 0);
          operands[1] = x4;
          if (!register_operand (operands[1], SImode))
            return NULL;
          x5 = XEXP (x3, 1);
          operands[2] = x5;
          if (!const_int_operand (operands[2], SImode)
              || !
#line 18363 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT
   && exact_log2 (INTVAL (operands[2])) >= 0
   && REGNO (operands[0]) == REGNO (operands[1])
   && peep2_regno_dead_p (0, FLAGS_REG)))
            return NULL;
          *pmatch_len_ = 0;
          return gen_peephole2_96 (insn, operands);

        default:
          return NULL;
        }

    case MULT:
      x6 = XEXP (x2, 1);
      operands[1] = x6;
      x3 = XEXP (x2, 0);
      if (!rtx_equal_p (x3, operands[0]))
        return NULL;
      switch (GET_MODE (operands[0]))
        {
        case SImode:
          if (!register_operand (operands[0], SImode)
              || GET_MODE (x2) != SImode
              || !const_int_operand (operands[1], SImode)
              || !
#line 18352 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(exact_log2 (INTVAL (operands[1])) >= 0
   && peep2_regno_dead_p (0, FLAGS_REG)))
            return NULL;
          *pmatch_len_ = 0;
          return gen_peephole2_94 (insn, operands);

        case DImode:
          if (!register_operand (operands[0], DImode)
              || GET_MODE (x2) != DImode
              || !const_int_operand (operands[1], DImode)
              || !(
#line 18352 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(exact_log2 (INTVAL (operands[1])) >= 0
   && peep2_regno_dead_p (0, FLAGS_REG)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return NULL;
          *pmatch_len_ = 0;
          return gen_peephole2_95 (insn, operands);

        default:
          return NULL;
        }

    case VEC_CONCAT:
      if (peep2_current_count < 2
          || GET_MODE (x2) != V2DFmode
          || !register_operand (operands[0], V2DFmode))
        return NULL;
      x3 = XEXP (x2, 0);
      operands[1] = x3;
      if (!memory_operand (operands[1], DFmode))
        return NULL;
      x6 = XEXP (x2, 1);
      operands[4] = x6;
      if (!const0_operand (operands[4], DFmode))
        return NULL;
      x11 = PATTERN (peep2_next_insn (1));
      if (GET_CODE (x11) != SET)
        return NULL;
      x17 = XEXP (x11, 1);
      if (GET_CODE (x17) != VEC_CONCAT
          || GET_MODE (x17) != V2DFmode)
        return NULL;
      x18 = XEXP (x17, 0);
      if (GET_CODE (x18) != VEC_SELECT
          || GET_MODE (x18) != DFmode)
        return NULL;
      x19 = XEXP (x18, 1);
      if (GET_CODE (x19) != PARALLEL
          || XVECLEN (x19, 0) != 1)
        return NULL;
      x20 = XVECEXP (x19, 0, 0);
      if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return NULL;
      x21 = XEXP (x11, 0);
      operands[2] = x21;
      if (!register_operand (operands[2], V2DFmode))
        return NULL;
      x22 = XEXP (x17, 1);
      operands[3] = x22;
      if (!memory_operand (operands[3], DFmode))
        return NULL;
      x23 = XEXP (x18, 0);
      if (!rtx_equal_p (x23, operands[2])
          || !
#line 1222 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && TARGET_SSE_UNALIGNED_LOAD_OPTIMAL
   && ix86_operands_ok_for_move_multiple (operands, true, DFmode)))
        return NULL;
      *pmatch_len_ = 1;
      return gen_peephole2_150 (insn, operands);

    case VEC_SELECT:
      if (peep2_current_count < 2
          || GET_MODE (x2) != DFmode)
        return NULL;
      x6 = XEXP (x2, 1);
      if (GET_CODE (x6) != PARALLEL
          || XVECLEN (x6, 0) != 1)
        return NULL;
      x24 = XVECEXP (x6, 0, 0);
      if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || !memory_operand (operands[0], DFmode))
        return NULL;
      x3 = XEXP (x2, 0);
      operands[1] = x3;
      if (!register_operand (operands[1], V2DFmode))
        return NULL;
      x11 = PATTERN (peep2_next_insn (1));
      if (GET_CODE (x11) != SET)
        return NULL;
      x17 = XEXP (x11, 1);
      if (GET_CODE (x17) != VEC_SELECT
          || GET_MODE (x17) != DFmode)
        return NULL;
      x22 = XEXP (x17, 1);
      if (GET_CODE (x22) != PARALLEL
          || XVECLEN (x22, 0) != 1)
        return NULL;
      x25 = XVECEXP (x22, 0, 0);
      if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return NULL;
      x21 = XEXP (x11, 0);
      operands[2] = x21;
      if (!memory_operand (operands[2], DFmode))
        return NULL;
      x18 = XEXP (x17, 0);
      operands[3] = x18;
      if (!register_operand (operands[3], V2DFmode)
          || !
#line 1295 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/sse.md"
(TARGET_SSE2 && TARGET_SSE_UNALIGNED_STORE_OPTIMAL
   && ix86_operands_ok_for_move_multiple (operands, false, DFmode)))
        return NULL;
      *pmatch_len_ = 1;
      return gen_peephole2_151 (insn, operands);

    default:
      return NULL;
    }
}

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;
  rtx_insn *res ATTRIBUTE_UNUSED;
  if (peep2_current_count < 3)
    return NULL;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  operands[2] = x3;
  x4 = XEXP (x2, 0);
  operands[0] = x4;
  x5 = XEXP (x3, 1);
  operands[1] = x5;
  x6 = XEXP (x3, 0);
  if (pattern610 (x6) != 0)
    return NULL;
  switch (GET_MODE (operands[0]))
    {
    case QImode:
      if (!register_operand (operands[0], QImode)
          || !plusminuslogic_operator (operands[2], QImode)
          || !memory_operand (operands[1], QImode)
          || !
#line 18209 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
   && GET_CODE (operands[2]) != MINUS
   && peep2_reg_dead_p (3, operands[0])
   && !reg_overlap_mentioned_p (operands[0], operands[1])
   && ix86_match_ccmode (peep2_next_insn (2),
			 GET_CODE (operands[2]) == PLUS
			 ? CCGOCmode : CCNOmode)))
        return NULL;
      *pmatch_len_ = 2;
      return gen_peephole2_77 (insn, operands);

    case HImode:
      if (!register_operand (operands[0], HImode)
          || !plusminuslogic_operator (operands[2], HImode)
          || !memory_operand (operands[1], HImode)
          || !
#line 18209 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
   && GET_CODE (operands[2]) != MINUS
   && peep2_reg_dead_p (3, operands[0])
   && !reg_overlap_mentioned_p (operands[0], operands[1])
   && ix86_match_ccmode (peep2_next_insn (2),
			 GET_CODE (operands[2]) == PLUS
			 ? CCGOCmode : CCNOmode)))
        return NULL;
      *pmatch_len_ = 2;
      return gen_peephole2_78 (insn, operands);

    case DImode:
      if (!register_operand (operands[0], DImode)
          || !plusminuslogic_operator (operands[2], DImode)
          || !memory_operand (operands[1], DImode)
          || !(
#line 18209 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
   && GET_CODE (operands[2]) != MINUS
   && peep2_reg_dead_p (3, operands[0])
   && !reg_overlap_mentioned_p (operands[0], operands[1])
   && ix86_match_ccmode (peep2_next_insn (2),
			 GET_CODE (operands[2]) == PLUS
			 ? CCGOCmode : CCNOmode)) && 
#line 988 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
        return NULL;
      *pmatch_len_ = 2;
      return gen_peephole2_80 (insn, operands);

    default:
      return NULL;
    }
}

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 x10, x11, x12, x13;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != 17
      || GET_MODE (x3) != CCmode)
    return NULL;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 1);
  switch (GET_CODE (x5))
    {
    case ASHIFT:
      x6 = XEXP (x4, 0);
      operands[0] = x6;
      x7 = XEXP (x5, 0);
      operands[1] = x7;
      x8 = XEXP (x5, 1);
      operands[2] = x8;
      if (!nonmemory_operand (operands[2], QImode))
        return NULL;
      switch (GET_MODE (operands[0]))
        {
        case DImode:
          if (!register_operand (operands[0], DImode)
              || GET_MODE (x5) != DImode
              || !nonmemory_operand (operands[1], DImode)
              || !(
#line 9749 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_CMOVE) && 
#line 1043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT)))
            return NULL;
          *pmatch_len_ = 0;
          return gen_peephole2_13 (insn, operands);

        case TImode:
          if (!register_operand (operands[0], TImode)
              || GET_MODE (x5) != TImode
              || !nonmemory_operand (operands[1], TImode)
              || !(
#line 9749 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_CMOVE) && 
#line 1044 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return NULL;
          *pmatch_len_ = 0;
          return gen_peephole2_14 (insn, operands);

        default:
          return NULL;
        }

    case LSHIFTRT:
      switch (pattern354 (x4))
        {
        case 0:
          if (!(
#line 10376 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_CMOVE) && 
#line 1043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT)))
            return NULL;
          *pmatch_len_ = 0;
          return gen_peephole2_15 (insn, operands);

        case 1:
          if (!(
#line 10376 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_CMOVE) && 
#line 1044 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return NULL;
          *pmatch_len_ = 0;
          return gen_peephole2_17 (insn, operands);

        default:
          return NULL;
        }

    case ASHIFTRT:
      switch (pattern354 (x4))
        {
        case 0:
          if (!(
#line 10376 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_CMOVE) && 
#line 1043 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_64BIT)))
            return NULL;
          *pmatch_len_ = 0;
          return gen_peephole2_16 (insn, operands);

        case 1:
          if (!(
#line 10376 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_CMOVE) && 
#line 1044 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
            return NULL;
          *pmatch_len_ = 0;
          return gen_peephole2_18 (insn, operands);

        default:
          return NULL;
        }

    case CONST_INT:
      x6 = XEXP (x4, 0);
      if (GET_CODE (x6) != ZERO_EXTRACT
          || GET_MODE (x6) != DImode)
        return NULL;
      x9 = XEXP (x6, 1);
      if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return NULL;
      x10 = XEXP (x6, 0);
      operands[0] = x10;
      if (!register_operand (operands[0], DImode))
        return NULL;
      x11 = XEXP (x6, 2);
      operands[1] = x11;
      if (!const_0_to_63_operand (operands[1], VOIDmode))
        return NULL;
      switch (XWINT (x5, 0))
        {
        case 1LL:
          if (!
#line 11124 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && !TARGET_USE_BT))
            return NULL;
          *pmatch_len_ = 0;
          return gen_peephole2_19 (insn, operands);

        case 0LL:
          if (!
#line 11148 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && !TARGET_USE_BT))
            return NULL;
          *pmatch_len_ = 0;
          return gen_peephole2_20 (insn, operands);

        default:
          return NULL;
        }

    case NOT:
      if (GET_MODE (x5) != DImode)
        return NULL;
      x7 = XEXP (x5, 0);
      if (GET_CODE (x7) != ZERO_EXTRACT
          || pattern405 (x4) != 0)
        return NULL;
      x12 = XEXP (x7, 0);
      if (!rtx_equal_p (x12, operands[0]))
        return NULL;
      x13 = XEXP (x7, 2);
      if (!rtx_equal_p (x13, operands[1])
          || !
#line 11173 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && !TARGET_USE_BT))
        return NULL;
      *pmatch_len_ = 0;
      return gen_peephole2_21 (insn, operands);

    case PLUS:
    case MINUS:
    case AND:
    case IOR:
    case XOR:
      if (peep2_current_count >= 2)
        {
          res = peephole2_11 (x1, insn, pmatch_len_);
          if (res != NULL_RTX)
            return res;
        }
      if (GET_CODE (x5) != PLUS
          || pattern428 (x4, DImode) != 0)
        return NULL;
      if ((
#line 18428 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_SINGLE_PUSH || optimize_insn_for_size_p ())
   && INTVAL (operands[0]) == -GET_MODE_SIZE (word_mode)
   && !ix86_using_red_zone ()) && (((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
        {
          *pmatch_len_ = 0;
          res = gen_peephole2_107 (insn, operands);
          if (res != NULL_RTX)
            return res;
        }
      if ((
#line 18428 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_SINGLE_PUSH || optimize_insn_for_size_p ())
   && INTVAL (operands[0]) == -GET_MODE_SIZE (word_mode)
   && !ix86_using_red_zone ()) && (((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
        {
          *pmatch_len_ = 0;
          res = gen_peephole2_108 (insn, operands);
          if (res != NULL_RTX)
            return res;
        }
      if ((
#line 18440 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_DOUBLE_PUSH || optimize_insn_for_size_p ())
   && INTVAL (operands[0]) == -2*GET_MODE_SIZE (word_mode)
   && !ix86_using_red_zone ()) && ((((((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
        {
          *pmatch_len_ = 0;
          res = gen_peephole2_111 (insn, operands);
          if (res != NULL_RTX)
            return res;
        }
      if ((
#line 18440 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_DOUBLE_PUSH || optimize_insn_for_size_p ())
   && INTVAL (operands[0]) == -2*GET_MODE_SIZE (word_mode)
   && !ix86_using_red_zone ()) && ((((((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
        {
          *pmatch_len_ = 0;
          res = gen_peephole2_112 (insn, operands);
          if (res != NULL_RTX)
            return res;
        }
      if ((
#line 18496 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(INTVAL (operands[0]) == GET_MODE_SIZE (word_mode)) && (((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
        {
          *pmatch_len_ = 0;
          res = gen_peephole2_127 (insn, operands);
          if (res != NULL_RTX)
            return res;
        }
      if ((
#line 18496 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(INTVAL (operands[0]) == GET_MODE_SIZE (word_mode)) && (((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
        {
          *pmatch_len_ = 0;
          res = gen_peephole2_128 (insn, operands);
          if (res != NULL_RTX)
            return res;
        }
      if ((
#line 18508 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(INTVAL (operands[0]) == 2*GET_MODE_SIZE (word_mode)) && ((((((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
        {
          *pmatch_len_ = 0;
          res = gen_peephole2_131 (insn, operands);
          if (res != NULL_RTX)
            return res;
        }
      if ((
#line 18508 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(INTVAL (operands[0]) == 2*GET_MODE_SIZE (word_mode)) && ((((((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
        {
          *pmatch_len_ = 0;
          res = gen_peephole2_132 (insn, operands);
          if (res != NULL_RTX)
            return res;
        }
      if ((
#line 18518 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(optimize_insn_for_size_p ()
   && INTVAL (operands[0]) == 2*GET_MODE_SIZE (word_mode)) && ((((((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
        {
          *pmatch_len_ = 0;
          res = gen_peephole2_135 (insn, operands);
          if (res != NULL_RTX)
            return res;
        }
      if (!(
#line 18518 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(optimize_insn_for_size_p ()
   && INTVAL (operands[0]) == 2*GET_MODE_SIZE (word_mode)) && ((((((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
        return NULL;
      *pmatch_len_ = 0;
      return gen_peephole2_136 (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_insn *res ATTRIBUTE_UNUSED;
  if (peep2_current_count < 3)
    return NULL;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != 17)
    return NULL;
  x4 = XEXP (x2, 1);
  operands[0] = x4;
  x5 = XVECEXP (x1, 0, 1);
  operands[4] = x5;
  x6 = PATTERN (peep2_next_insn (1));
  if (GET_CODE (x6) != SET)
    return NULL;
  x7 = XEXP (x6, 1);
  if (!ix86_comparison_operator (x7, QImode))
    return NULL;
  operands[2] = x7;
  x8 = XEXP (x7, 0);
  if (GET_CODE (x8) != REG
      || REGNO (x8) != 17)
    return NULL;
  x9 = XEXP (x7, 1);
  if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return NULL;
  x10 = XEXP (x6, 0);
  operands[1] = x10;
  if (!register_operand (operands[1], QImode))
    return NULL;
  x11 = PATTERN (peep2_next_insn (2));
  switch (GET_CODE (x11))
    {
    case SET:
      x12 = XEXP (x11, 1);
      if (GET_CODE (x12) != ZERO_EXTEND)
        return NULL;
      x13 = XEXP (x11, 0);
      operands[3] = x13;
      if (!any_QIreg_operand (operands[3], VOIDmode))
        return NULL;
      x14 = XEXP (x12, 0);
      if (!rtx_equal_p (x14, operands[1])
          || !
#line 11900 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((peep2_reg_dead_p (3, operands[1])
    || operands_match_p (operands[1], operands[3]))
   && ! reg_overlap_mentioned_p (operands[3], operands[0])
   && ! reg_set_p (operands[3], operands[4])))
        return NULL;
      *pmatch_len_ = 2;
      return gen_peephole2_23 (insn, operands);

    case PARALLEL:
      if (XVECLEN (x11, 0) != 2)
        return NULL;
      x15 = XVECEXP (x11, 0, 0);
      if (GET_CODE (x15) != SET)
        return NULL;
      x16 = XEXP (x15, 1);
      if (GET_CODE (x16) != ZERO_EXTEND
          || pattern848 (x11, VOIDmode) != 0)
        return NULL;
      x17 = XEXP (x16, 0);
      if (!rtx_equal_p (x17, operands[1])
          || !
#line 11944 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((peep2_reg_dead_p (3, operands[1])
    || operands_match_p (operands[1], operands[3]))
   && ! reg_overlap_mentioned_p (operands[3], operands[0])
   && ! reg_set_p (operands[3], operands[4])))
        return NULL;
      *pmatch_len_ = 2;
      return gen_peephole2_25 (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;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_CODE (x2) != SET)
    return NULL;
  x3 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x3) == CLOBBER)
    {
      res = peephole2_12 (x1, insn, pmatch_len_);
      if (res != NULL_RTX)
        return res;
    }
  if (peep2_current_count >= 2)
    {
      res = peephole2_13 (x1, insn, pmatch_len_);
      if (res != NULL_RTX)
        return res;
    }
  if (GET_CODE (x3) != CLOBBER)
    return NULL;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != REG
      || REGNO (x4) != 17
      || GET_MODE (x4) != CCmode)
    return NULL;
  x5 = XEXP (x2, 1);
  switch (GET_CODE (x5))
    {
    case COMPARE:
    case PLUS:
    case MINUS:
    case MULT:
    case DIV:
    case MOD:
    case UDIV:
    case UMOD:
    case AND:
    case IOR:
    case XOR:
    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
    case SMIN:
    case SMAX:
    case UMIN:
    case UMAX:
      operands[3] = x5;
      if (arith_or_logical_operator (operands[3], SImode))
        {
          x6 = XEXP (x2, 0);
          operands[0] = x6;
          if (register_operand (operands[0], SImode))
            {
              x7 = XEXP (x5, 1);
              operands[1] = x7;
              if (memory_operand (operands[1], SImode))
                {
                  x8 = XEXP (x5, 0);
                  if (rtx_equal_p (x8, operands[0])
                      && 
#line 18073 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(TARGET_READ_MODIFY || optimize_insn_for_size_p ())))
                    {
                      *pmatch_len_ = 0;
                      res = gen_peephole2_67 (insn, operands);
                      if (res != NULL_RTX)
                        return res;
                    }
                }
              x8 = XEXP (x5, 0);
              operands[1] = x8;
              if (memory_operand (operands[1], SImode)
                  && rtx_equal_p (x7, operands[0])
                  && 
#line 18086 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(TARGET_READ_MODIFY || optimize_insn_for_size_p ())))
                {
                  *pmatch_len_ = 0;
                  res = gen_peephole2_68 (insn, operands);
                  if (res != NULL_RTX)
                    return res;
                }
            }
          if (memory_operand (operands[0], SImode))
            {
              x7 = XEXP (x5, 1);
              operands[1] = x7;
              if (nonmemory_operand (operands[1], SImode))
                {
                  x8 = XEXP (x5, 0);
                  if (rtx_equal_p (x8, operands[0])
                      && 
#line 18141 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
   /* Do not split stack checking probes.  */
   && GET_CODE (operands[3]) != IOR && operands[1] != const0_rtx))
                    {
                      *pmatch_len_ = 0;
                      res = gen_peephole2_71 (insn, operands);
                      if (res != NULL_RTX)
                        return res;
                    }
                }
              x8 = XEXP (x5, 0);
              operands[1] = x8;
              if (nonmemory_operand (operands[1], SImode)
                  && rtx_equal_p (x7, operands[0])
                  && 
#line 18157 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!(TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
   /* Do not split stack checking probes.  */
   && GET_CODE (operands[3]) != IOR && operands[1] != const0_rtx))
                {
                  *pmatch_len_ = 0;
                  res = gen_peephole2_72 (insn, operands);
                  if (res != NULL_RTX)
                    return res;
                }
            }
        }
      switch (GET_CODE (x5))
        {
        case PLUS:
        case MINUS:
        case AND:
        case IOR:
        case XOR:
          if (peep2_current_count >= 2
              && peep2_current_count >= 3)
            {
              operands[2] = x5;
              if (plusminuslogic_operator (operands[2], SImode))
                {
                  x6 = XEXP (x2, 0);
                  operands[0] = x6;
                  if (register_operand (operands[0], SImode))
                    {
                      x7 = XEXP (x5, 1);
                      operands[1] = x7;
                      if (memory_operand (operands[1], SImode))
                        {
                          x8 = XEXP (x5, 0);
                          if (pattern610 (x8) == 0
                              && 
#line 18209 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
   && GET_CODE (operands[2]) != MINUS
   && peep2_reg_dead_p (3, operands[0])
   && !reg_overlap_mentioned_p (operands[0], operands[1])
   && ix86_match_ccmode (peep2_next_insn (2),
			 GET_CODE (operands[2]) == PLUS
			 ? CCGOCmode : CCNOmode)))
                            {
                              *pmatch_len_ = 2;
                              res = gen_peephole2_79 (insn, operands);
                              if (res != NULL_RTX)
                                return res;
                            }
                        }
                    }
                }
            }
          if (GET_CODE (x5) != PLUS
              || pattern428 (x2, SImode) != 0)
            return NULL;
          if ((
#line 18428 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_SINGLE_PUSH || optimize_insn_for_size_p ())
   && INTVAL (operands[0]) == -GET_MODE_SIZE (word_mode)
   && !ix86_using_red_zone ()) && (((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
            {
              *pmatch_len_ = 0;
              res = gen_peephole2_105 (insn, operands);
              if (res != NULL_RTX)
                return res;
            }
          if ((
#line 18428 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_SINGLE_PUSH || optimize_insn_for_size_p ())
   && INTVAL (operands[0]) == -GET_MODE_SIZE (word_mode)
   && !ix86_using_red_zone ()) && (((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
            {
              *pmatch_len_ = 0;
              res = gen_peephole2_106 (insn, operands);
              if (res != NULL_RTX)
                return res;
            }
          if ((
#line 18440 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_DOUBLE_PUSH || optimize_insn_for_size_p ())
   && INTVAL (operands[0]) == -2*GET_MODE_SIZE (word_mode)
   && !ix86_using_red_zone ()) && ((((((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
            {
              *pmatch_len_ = 0;
              res = gen_peephole2_109 (insn, operands);
              if (res != NULL_RTX)
                return res;
            }
          if ((
#line 18440 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_DOUBLE_PUSH || optimize_insn_for_size_p ())
   && INTVAL (operands[0]) == -2*GET_MODE_SIZE (word_mode)
   && !ix86_using_red_zone ()) && ((((((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
            {
              *pmatch_len_ = 0;
              res = gen_peephole2_110 (insn, operands);
              if (res != NULL_RTX)
                return res;
            }
          if ((
#line 18496 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(INTVAL (operands[0]) == GET_MODE_SIZE (word_mode)) && (((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
            {
              *pmatch_len_ = 0;
              res = gen_peephole2_125 (insn, operands);
              if (res != NULL_RTX)
                return res;
            }
          if ((
#line 18496 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(INTVAL (operands[0]) == GET_MODE_SIZE (word_mode)) && (((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
            {
              *pmatch_len_ = 0;
              res = gen_peephole2_126 (insn, operands);
              if (res != NULL_RTX)
                return res;
            }
          if ((
#line 18508 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(INTVAL (operands[0]) == 2*GET_MODE_SIZE (word_mode)) && ((((((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
            {
              *pmatch_len_ = 0;
              res = gen_peephole2_129 (insn, operands);
              if (res != NULL_RTX)
                return res;
            }
          if ((
#line 18508 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(INTVAL (operands[0]) == 2*GET_MODE_SIZE (word_mode)) && ((((((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
            {
              *pmatch_len_ = 0;
              res = gen_peephole2_130 (insn, operands);
              if (res != NULL_RTX)
                return res;
            }
          if ((
#line 18518 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(optimize_insn_for_size_p ()
   && INTVAL (operands[0]) == 2*GET_MODE_SIZE (word_mode)) && ((((((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
            {
              *pmatch_len_ = 0;
              res = gen_peephole2_133 (insn, operands);
              if (res != NULL_RTX)
                return res;
            }
          if (!(
#line 18518 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(optimize_insn_for_size_p ()
   && INTVAL (operands[0]) == 2*GET_MODE_SIZE (word_mode)) && ((((((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
            return NULL;
          *pmatch_len_ = 0;
          return gen_peephole2_134 (insn, operands);

        case MULT:
          x6 = XEXP (x2, 0);
          operands[0] = x6;
          x8 = XEXP (x5, 0);
          operands[1] = x8;
          x7 = XEXP (x5, 1);
          operands[2] = x7;
          switch (GET_MODE (operands[0]))
            {
            case SImode:
              if (!register_operand (operands[0], SImode)
                  || GET_MODE (x5) != SImode)
                return NULL;
              if (const359_operand (operands[2], SImode))
                {
                  if (register_operand (operands[1], SImode))
                    {
                      *pmatch_len_ = 0;
                      res = gen_peephole2_138 (insn, operands);
                      if (res != NULL_RTX)
                        return res;
                    }
                  if (nonimmediate_operand (operands[1], SImode)
                      && 
#line 18561 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(optimize_insn_for_speed_p ()
   && (!TARGET_PARTIAL_REG_STALL || SImode == SImode)))
                    {
                      *pmatch_len_ = 0;
                      res = gen_peephole2_140 (insn, operands);
                      if (res != NULL_RTX)
                        return res;
                    }
                }
              if (memory_operand (operands[1], SImode)
                  && immediate_operand (operands[2], SImode)
                  && 
#line 18577 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_SLOW_IMUL_IMM32_MEM && optimize_insn_for_speed_p ()
   && !satisfies_constraint_K (operands[2])))
                {
                  *pmatch_len_ = 0;
                  res = gen_peephole2_142 (insn, operands);
                  if (res != NULL_RTX)
                    return res;
                }
              if (!nonimmediate_operand (operands[1], SImode)
                  || !const_int_operand (operands[2], SImode)
                  || !
#line 18609 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_SLOW_IMUL_IMM8 && optimize_insn_for_speed_p ()
   && satisfies_constraint_K (operands[2])))
                return NULL;
              *pmatch_len_ = 0;
              return gen_peephole2_146 (insn, operands);

            case DImode:
              if (!register_operand (operands[0], DImode)
                  || GET_MODE (x5) != DImode)
                return NULL;
              if (const359_operand (operands[2], DImode))
                {
                  if (register_operand (operands[1], DImode)
                      && (
#line 18547 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(!TARGET_PARTIAL_REG_STALL
   || DImode == SImode
   || optimize_function_for_size_p (cfun)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                    {
                      *pmatch_len_ = 0;
                      res = gen_peephole2_139 (insn, operands);
                      if (res != NULL_RTX)
                        return res;
                    }
                  if (nonimmediate_operand (operands[1], DImode)
                      && (
#line 18561 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(optimize_insn_for_speed_p ()
   && (!TARGET_PARTIAL_REG_STALL || DImode == SImode)) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                    {
                      *pmatch_len_ = 0;
                      res = gen_peephole2_141 (insn, operands);
                      if (res != NULL_RTX)
                        return res;
                    }
                }
              if (memory_operand (operands[1], DImode)
                  && immediate_operand (operands[2], DImode)
                  && (
#line 18577 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_SLOW_IMUL_IMM32_MEM && optimize_insn_for_speed_p ()
   && !satisfies_constraint_K (operands[2])) && 
#line 994 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                {
                  *pmatch_len_ = 0;
                  res = gen_peephole2_143 (insn, operands);
                  if (res != NULL_RTX)
                    return res;
                }
              if (!nonimmediate_operand (operands[1], DImode)
                  || !const_int_operand (operands[2], DImode)
                  || !(
#line 18609 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_SLOW_IMUL_IMM8 && optimize_insn_for_speed_p ()
   && satisfies_constraint_K (operands[2])) && 
#line 991 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT)))
                return NULL;
              *pmatch_len_ = 0;
              return gen_peephole2_147 (insn, operands);

            case HImode:
              if (!register_operand (operands[0], HImode)
                  || GET_MODE (x5) != HImode
                  || !nonimmediate_operand (operands[1], HImode)
                  || !const_int_operand (operands[2], HImode)
                  || !
#line 18609 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_SLOW_IMUL_IMM8 && optimize_insn_for_speed_p ()
   && satisfies_constraint_K (operands[2])))
                return NULL;
              *pmatch_len_ = 0;
              return gen_peephole2_145 (insn, operands);

            default:
              return NULL;
            }

        case ASHIFT:
          if (peep2_current_count < 2)
            return NULL;
          x6 = XEXP (x2, 0);
          operands[0] = x6;
          if (!register_operand (operands[0], VOIDmode))
            return NULL;
          x8 = XEXP (x5, 0);
          operands[1] = x8;
          if (!register_operand (operands[1], VOIDmode))
            return NULL;
          x7 = XEXP (x5, 1);
          operands[2] = x7;
          if (!const_int_operand (operands[2], VOIDmode))
            return NULL;
          x9 = PATTERN (peep2_next_insn (1));
          if (GET_CODE (x9) != PARALLEL
              || XVECLEN (x9, 0) != 2)
            return NULL;
          x10 = XVECEXP (x9, 0, 0);
          if (GET_CODE (x10) != SET)
            return NULL;
          x11 = XEXP (x10, 1);
          if (GET_CODE (x11) != PLUS)
            return NULL;
          x12 = XVECEXP (x9, 0, 1);
          if (pattern479 (x12) != 0)
            return NULL;
          x13 = XEXP (x10, 0);
          operands[3] = x13;
          if (!register_operand (operands[3], VOIDmode))
            return NULL;
          x14 = XEXP (x11, 1);
          operands[4] = x14;
          if (!x86_64_general_operand (operands[4], VOIDmode))
            return NULL;
          x15 = XEXP (x11, 0);
          if (!rtx_equal_p (x15, operands[0]))
            return NULL;
          if ((
#line 18641 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(IN_RANGE (INTVAL (operands[2]), 1, 3)
   /* Validate MODE for lea.  */
   && ((!TARGET_PARTIAL_REG_STALL
	&& (GET_MODE (operands[0]) == QImode
	    || GET_MODE (operands[0]) == HImode))
       || GET_MODE (operands[0]) == SImode
       || (TARGET_64BIT && GET_MODE (operands[0]) == DImode))
   && (rtx_equal_p (operands[0], operands[3])
       || peep2_reg_dead_p (2, operands[0]))
   /* We reorder load and the shift.  */
   && !reg_overlap_mentioned_p (operands[0], operands[4])) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)))
            {
              *pmatch_len_ = 1;
              res = gen_peephole2_148 (insn, operands);
              if (res != NULL_RTX)
                return res;
            }
          if (!(
#line 18641 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(IN_RANGE (INTVAL (operands[2]), 1, 3)
   /* Validate MODE for lea.  */
   && ((!TARGET_PARTIAL_REG_STALL
	&& (GET_MODE (operands[0]) == QImode
	    || GET_MODE (operands[0]) == HImode))
       || GET_MODE (operands[0]) == SImode
       || (TARGET_64BIT && GET_MODE (operands[0]) == DImode))
   && (rtx_equal_p (operands[0], operands[3])
       || peep2_reg_dead_p (2, operands[0]))
   /* We reorder load and the shift.  */
   && !reg_overlap_mentioned_p (operands[0], operands[4])) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)))
            return NULL;
          *pmatch_len_ = 1;
          return gen_peephole2_149 (insn, operands);

        default:
          return NULL;
        }

    case ZERO_EXTEND:
      if (GET_MODE (x5) != DImode)
        return NULL;
      x8 = XEXP (x5, 0);
      if (GET_CODE (x8) != MULT
          || GET_MODE (x8) != SImode)
        return NULL;
      x6 = XEXP (x2, 0);
      operands[0] = x6;
      if (!register_operand (operands[0], DImode))
        return NULL;
      x16 = XEXP (x8, 0);
      operands[1] = x16;
      if (!memory_operand (operands[1], SImode))
        return NULL;
      x17 = XEXP (x8, 1);
      operands[2] = x17;
      if (!immediate_operand (operands[2], SImode)
          || !
#line 18590 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT
   && TARGET_SLOW_IMUL_IMM32_MEM && optimize_insn_for_speed_p ()
   && !satisfies_constraint_K (operands[2])))
        return NULL;
      *pmatch_len_ = 0;
      return gen_peephole2_144 (insn, operands);

    default:
      return NULL;
    }
}

rtx_insn *
peephole2_insns (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pmatch_len_ ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24, x25;
  rtx x26, x27, x28, x29, x30, x31, x32, x33;
  rtx x34, x35, x36, x37;
  rtx_insn *res ATTRIBUTE_UNUSED;
  recog_data.insn = NULL;
  switch (GET_CODE (x1))
    {
    case SET:
      x2 = XEXP (x1, 1);
      switch (GET_CODE (x2))
        {
        case CONST_INT:
        case CONST_WIDE_INT:
        case CONST_FIXED:
        case CONST_DOUBLE:
        case CONST_VECTOR:
        case CONST:
        case LABEL_REF:
        case SYMBOL_REF:
        case HIGH:
          operands[1] = x2;
          if (immediate_operand (operands[1], DImode))
            {
              x3 = XEXP (x1, 0);
              operands[0] = x3;
              if (push_operand (operands[0], DImode))
                {
                  if (
#line 1764 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && !symbolic_operand (operands[1], DImode)
   && !x86_64_immediate_operand (operands[1], DImode)))
                    {
                      *pmatch_len_ = 0;
                      res = gen_peephole2_1 (insn, operands);
                      if (res != NULL_RTX)
                        return res;
                    }
                  if (
#line 1775 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_64BIT && !symbolic_operand (operands[1], DImode)
   && !x86_64_immediate_operand (operands[1], DImode) && 1))
                    {
                      *pmatch_len_ = 0;
                      res = gen_peephole2_2 (insn, operands);
                      if (res != NULL_RTX)
                        return res;
                    }
                }
            }
          if (x2 == const_int_rtx[MAX_SAVED_CONST_INT + 0])
            {
              x3 = XEXP (x1, 0);
              switch (GET_CODE (x3))
                {
                case SUBREG:
                case MEM:
                  operands[0] = x3;
                  switch (GET_MODE (operands[0]))
                    {
                    case QImode:
                      if (memory_operand (operands[0], QImode)
                          && 
#line 17928 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(optimize_insn_for_speed_p ()
   && ((QImode == HImode
       && TARGET_LCP_STALL)
       || (!TARGET_USE_MOV0
          && TARGET_SPLIT_LONG_MOVES
          && get_attr_length (insn) >= ix86_cur_cost ()->large_insn))
   && peep2_regno_dead_p (0, FLAGS_REG)))
                        {
                          *pmatch_len_ = 0;
                          res = gen_peephole2_54 (insn, operands);
                          if (res != NULL_RTX)
                            return res;
                        }
                      break;

                    case HImode:
                      if (memory_operand (operands[0], HImode)
                          && 
#line 17928 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(optimize_insn_for_speed_p ()
   && ((HImode == HImode
       && TARGET_LCP_STALL)
       || (!TARGET_USE_MOV0
          && TARGET_SPLIT_LONG_MOVES
          && get_attr_length (insn) >= ix86_cur_cost ()->large_insn))
   && peep2_regno_dead_p (0, FLAGS_REG)))
                        {
                          *pmatch_len_ = 0;
                          res = gen_peephole2_55 (insn, operands);
                          if (res != NULL_RTX)
                            return res;
                        }
                      break;

                    case SImode:
                      if (memory_operand (operands[0], SImode)
                          && 
#line 17928 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(optimize_insn_for_speed_p ()
   && ((SImode == HImode
       && TARGET_LCP_STALL)
       || (!TARGET_USE_MOV0
          && TARGET_SPLIT_LONG_MOVES
          && get_attr_length (insn) >= ix86_cur_cost ()->large_insn))
   && peep2_regno_dead_p (0, FLAGS_REG)))
                        {
                          *pmatch_len_ = 0;
                          res = gen_peephole2_56 (insn, operands);
                          if (res != NULL_RTX)
                            return res;
                        }
                      break;

                    default:
                      break;
                    }
                  break;

                case STRICT_LOW_PART:
                  x4 = XEXP (x3, 0);
                  operands[0] = x4;
                  if (register_operand (operands[0], VOIDmode)
                      && 
#line 18280 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((GET_MODE (operands[0]) == QImode
    || GET_MODE (operands[0]) == HImode)
   && (! TARGET_USE_MOV0 || optimize_insn_for_size_p ())
   && peep2_regno_dead_p (0, FLAGS_REG)))
                    {
                      *pmatch_len_ = 0;
                      res = gen_peephole2_84 (insn, operands);
                      if (res != NULL_RTX)
                        return res;
                    }
                  break;

                default:
                  break;
                }
            }
          operands[1] = x2;
          x3 = XEXP (x1, 0);
          operands[0] = x3;
          switch (GET_MODE (operands[0]))
            {
            case QImode:
              if (memory_operand (operands[0], QImode)
                  && immediate_operand (operands[1], QImode)
                  && 
#line 17944 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(optimize_insn_for_speed_p ()
   && ((QImode == HImode
       && TARGET_LCP_STALL)
       || (TARGET_SPLIT_LONG_MOVES
          && get_attr_length (insn) >= ix86_cur_cost ()->large_insn))))
                {
                  *pmatch_len_ = 0;
                  res = gen_peephole2_57 (insn, operands);
                  if (res != NULL_RTX)
                    return res;
                }
              break;

            case HImode:
              if (memory_operand (operands[0], HImode)
                  && immediate_operand (operands[1], HImode)
                  && 
#line 17944 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(optimize_insn_for_speed_p ()
   && ((HImode == HImode
       && TARGET_LCP_STALL)
       || (TARGET_SPLIT_LONG_MOVES
          && get_attr_length (insn) >= ix86_cur_cost ()->large_insn))))
                {
                  *pmatch_len_ = 0;
                  res = gen_peephole2_58 (insn, operands);
                  if (res != NULL_RTX)
                    return res;
                }
              break;

            case SImode:
              if (memory_operand (operands[0], SImode)
                  && immediate_operand (operands[1], SImode)
                  && 
#line 17944 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(optimize_insn_for_speed_p ()
   && ((SImode == HImode
       && TARGET_LCP_STALL)
       || (TARGET_SPLIT_LONG_MOVES
          && get_attr_length (insn) >= ix86_cur_cost ()->large_insn))))
                {
                  *pmatch_len_ = 0;
                  res = gen_peephole2_59 (insn, operands);
                  if (res != NULL_RTX)
                    return res;
                }
              break;

            default:
              break;
            }
          break;

        case REG:
        case SUBREG:
        case MEM:
          res = peephole2_6 (x1, insn, pmatch_len_);
          if (res != NULL_RTX)
            return res;
          break;

        case FLOAT_EXTEND:
          if (GET_MODE (x2) == DFmode)
            {
              x3 = XEXP (x1, 0);
              operands[0] = x3;
              if (register_operand (operands[0], DFmode))
                {
                  x5 = XEXP (x2, 0);
                  operands[1] = x5;
                  if (memory_operand (operands[1], SFmode)
                      && 
#line 4304 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS
   && optimize_insn_for_speed_p ()
   && SSE_REG_P (operands[0])))
                    {
                      *pmatch_len_ = 0;
                      res = gen_peephole2_5 (insn, operands);
                      if (res != NULL_RTX)
                        return res;
                    }
                  if (nonimmediate_operand (operands[1], SFmode)
                      && 
#line 5257 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_SSE2 && TARGET_SSE_MATH
   && TARGET_SSE_PARTIAL_REG_DEPENDENCY
   && optimize_function_for_speed_p (cfun)
   && SSE_REG_P (operands[0])
   && (!SSE_REG_P (operands[1])
       || REGNO (operands[0]) != REGNO (operands[1]))
   && (!EXT_REX_SSE_REG_P (operands[0])
       || TARGET_AVX512VL)))
                    {
                      *pmatch_len_ = 0;
                      res = gen_peephole2_12 (insn, operands);
                      if (res != NULL_RTX)
                        return res;
                    }
                }
            }
          break;

        case FLOAT_TRUNCATE:
          if (GET_MODE (x2) == SFmode)
            {
              x3 = XEXP (x1, 0);
              operands[0] = x3;
              if (register_operand (operands[0], SFmode))
                {
                  x5 = XEXP (x2, 0);
                  operands[1] = x5;
                  if (memory_operand (operands[1], DFmode)
                      && 
#line 4455 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS
   && optimize_insn_for_speed_p ()
   && SSE_REG_P (operands[0])))
                    {
                      *pmatch_len_ = 0;
                      res = gen_peephole2_6 (insn, operands);
                      if (res != NULL_RTX)
                        return res;
                    }
                  if (nonimmediate_operand (operands[1], DFmode)
                      && 
#line 5228 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(TARGET_SSE2 && TARGET_SSE_MATH
   && TARGET_SSE_PARTIAL_REG_DEPENDENCY
   && optimize_function_for_speed_p (cfun)
   && SSE_REG_P (operands[0])
   && (!SSE_REG_P (operands[1])
       || REGNO (operands[0]) != REGNO (operands[1]))
   && (!EXT_REX_SSE_REG_P (operands[0])
       || TARGET_AVX512VL)))
                    {
                      *pmatch_len_ = 0;
                      res = gen_peephole2_11 (insn, operands);
                      if (res != NULL_RTX)
                        return res;
                    }
                }
            }
          break;

        case FIX:
          res = peephole2_7 (x1, insn, pmatch_len_);
          if (res != NULL_RTX)
            return res;
          break;

        default:
          break;
        }
      if (peep2_current_count >= 2)
        {
          res = peephole2_8 (x1, insn, pmatch_len_);
          if (res != NULL_RTX)
            return res;
        }
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      return peephole2_10 (x1, insn, pmatch_len_);

    case PARALLEL:
      switch (XVECLEN (x1, 0))
        {
        case 2:
          return peephole2_14 (x1, insn, pmatch_len_);

        case 6:
          if (peep2_current_count < 2
              || peep2_current_count < 3
              || peep2_current_count < 4
              || pattern16 (x1) != 0
              || !register_operand (operands[0], VOIDmode))
            return NULL;
          x6 = XVECEXP (x1, 0, 4);
          x7 = XEXP (x6, 0);
          operands[1] = x7;
          if (!register_operand (operands[1], VOIDmode))
            return NULL;
          x8 = XVECEXP (x1, 0, 5);
          x9 = XEXP (x8, 0);
          operands[2] = x9;
          if (!register_operand (operands[2], VOIDmode))
            return NULL;
          x10 = PATTERN (peep2_next_insn (1));
          if (GET_CODE (x10) != SET)
            return NULL;
          x11 = XEXP (x10, 1);
          if (GET_CODE (x11) != GTU
              || GET_MODE (x11) != QImode)
            return NULL;
          x12 = XEXP (x11, 0);
          if (GET_CODE (x12) != REG
              || REGNO (x12) != 17
              || GET_MODE (x12) != CCmode)
            return NULL;
          x13 = XEXP (x11, 1);
          if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return NULL;
          x14 = XEXP (x10, 0);
          operands[7] = x14;
          if (!register_operand (operands[7], QImode))
            return NULL;
          x15 = PATTERN (peep2_next_insn (2));
          if (GET_CODE (x15) != SET)
            return NULL;
          x16 = XEXP (x15, 1);
          if (GET_CODE (x16) != LTU
              || GET_MODE (x16) != QImode)
            return NULL;
          x17 = XEXP (x16, 0);
          if (GET_CODE (x17) != REG
              || REGNO (x17) != 17
              || GET_MODE (x17) != CCmode)
            return NULL;
          x18 = XEXP (x16, 1);
          if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return NULL;
          x19 = XEXP (x15, 0);
          operands[8] = x19;
          if (!register_operand (operands[8], QImode))
            return NULL;
          x20 = PATTERN (peep2_next_insn (3));
          if (GET_CODE (x20) != SET)
            return NULL;
          x21 = XEXP (x20, 1);
          if (GET_CODE (x21) != COMPARE)
            return NULL;
          x22 = XEXP (x20, 0);
          if (GET_CODE (x22) != REG
              || REGNO (x22) != 17)
            return NULL;
          x23 = XEXP (x21, 0);
          if (!rtx_equal_p (x23, operands[7]))
            return NULL;
          x24 = XEXP (x21, 1);
          if (!rtx_equal_p (x24, operands[8]))
            return NULL;
          switch (pattern686 (x1))
            {
            case 0:
              if (!register_operand (operands[4], VOIDmode))
                return NULL;
              x25 = XVECEXP (x1, 0, 0);
              x26 = XEXP (x25, 1);
              x27 = XEXP (x26, 1);
              x28 = XEXP (x27, 0);
              operands[5] = x28;
              if (!register_operand (operands[5], VOIDmode))
                return NULL;
              x29 = XVECEXP (x1, 0, 1);
              x30 = XEXP (x29, 0);
              operands[6] = x30;
              if (!register_operand (operands[6], VOIDmode))
                return NULL;
              x31 = XVECEXP (x1, 0, 2);
              x32 = XEXP (x31, 0);
              operands[3] = x32;
              if (!immediate_operand (operands[3], SImode)
                  || !
#line 17123 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(peep2_reg_dead_p (4, operands[7]) && peep2_reg_dead_p (4, operands[8])))
                return NULL;
              *pmatch_len_ = 3;
              return gen_peephole2_40 (insn, operands);

            case 1:
              if (!register_operand (operands[6], VOIDmode))
                return NULL;
              x25 = XVECEXP (x1, 0, 0);
              x26 = XEXP (x25, 1);
              x27 = XEXP (x26, 1);
              x28 = XEXP (x27, 0);
              x33 = XEXP (x28, 0);
              operands[4] = x33;
              if (!register_operand (operands[4], VOIDmode))
                return NULL;
              x34 = XEXP (x27, 1);
              x35 = XEXP (x34, 0);
              operands[5] = x35;
              if (!register_operand (operands[5], VOIDmode))
                return NULL;
              x29 = XVECEXP (x1, 0, 1);
              x30 = XEXP (x29, 0);
              operands[3] = x30;
              if (!immediate_operand (operands[3], SImode)
                  || !
#line 17155 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(peep2_reg_dead_p (4, operands[7]) && peep2_reg_dead_p (4, operands[8])))
                return NULL;
              *pmatch_len_ = 3;
              return gen_peephole2_41 (insn, operands);

            default:
              return NULL;
            }

        case 3:
          x25 = XVECEXP (x1, 0, 0);
          if (GET_CODE (x25) != SET)
            return NULL;
          x26 = XEXP (x25, 1);
          if (GET_CODE (x26) != PLUS)
            return NULL;
          x36 = XEXP (x26, 0);
          if (GET_CODE (x36) != REG
              || REGNO (x36) != 7)
            return NULL;
          x37 = XEXP (x25, 0);
          if (GET_CODE (x37) != REG
              || REGNO (x37) != 7
              || pattern114 (x1) != 0)
            return NULL;
          x27 = XEXP (x26, 1);
          operands[0] = x27;
          switch (GET_MODE (x37))
            {
            case SImode:
              if (GET_MODE (x26) != SImode
                  || GET_MODE (x36) != SImode
                  || !const_int_operand (operands[0], SImode))
                return NULL;
              if ((
#line 18399 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_SINGLE_PUSH || optimize_insn_for_size_p ())
   && INTVAL (operands[0]) == -GET_MODE_SIZE (word_mode)
   && !ix86_using_red_zone ()) && (((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                {
                  *pmatch_len_ = 0;
                  res = gen_peephole2_97 (insn, operands);
                  if (res != NULL_RTX)
                    return res;
                }
              if ((
#line 18399 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_SINGLE_PUSH || optimize_insn_for_size_p ())
   && INTVAL (operands[0]) == -GET_MODE_SIZE (word_mode)
   && !ix86_using_red_zone ()) && (((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                {
                  *pmatch_len_ = 0;
                  res = gen_peephole2_98 (insn, operands);
                  if (res != NULL_RTX)
                    return res;
                }
              if ((
#line 18413 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_DOUBLE_PUSH || optimize_insn_for_size_p ())
   && INTVAL (operands[0]) == -2*GET_MODE_SIZE (word_mode)
   && !ix86_using_red_zone ()) && ((((((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                {
                  *pmatch_len_ = 0;
                  res = gen_peephole2_101 (insn, operands);
                  if (res != NULL_RTX)
                    return res;
                }
              if ((
#line 18413 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_DOUBLE_PUSH || optimize_insn_for_size_p ())
   && INTVAL (operands[0]) == -2*GET_MODE_SIZE (word_mode)
   && !ix86_using_red_zone ()) && ((((((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                {
                  *pmatch_len_ = 0;
                  res = gen_peephole2_102 (insn, operands);
                  if (res != NULL_RTX)
                    return res;
                }
              if ((
#line 18455 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_SINGLE_POP || optimize_insn_for_size_p ())
   && INTVAL (operands[0]) == GET_MODE_SIZE (word_mode)) && (((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                {
                  *pmatch_len_ = 0;
                  res = gen_peephole2_113 (insn, operands);
                  if (res != NULL_RTX)
                    return res;
                }
              if ((
#line 18455 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_SINGLE_POP || optimize_insn_for_size_p ())
   && INTVAL (operands[0]) == GET_MODE_SIZE (word_mode)) && (((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                {
                  *pmatch_len_ = 0;
                  res = gen_peephole2_114 (insn, operands);
                  if (res != NULL_RTX)
                    return res;
                }
              if ((
#line 18470 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_DOUBLE_POP || optimize_insn_for_size_p ())
   && INTVAL (operands[0]) == 2*GET_MODE_SIZE (word_mode)) && ((((((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                {
                  *pmatch_len_ = 0;
                  res = gen_peephole2_117 (insn, operands);
                  if (res != NULL_RTX)
                    return res;
                }
              if ((
#line 18470 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_DOUBLE_POP || optimize_insn_for_size_p ())
   && INTVAL (operands[0]) == 2*GET_MODE_SIZE (word_mode)) && ((((((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                {
                  *pmatch_len_ = 0;
                  res = gen_peephole2_118 (insn, operands);
                  if (res != NULL_RTX)
                    return res;
                }
              if ((
#line 18483 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(optimize_insn_for_size_p ()
   && INTVAL (operands[0]) == 2*GET_MODE_SIZE (word_mode)) && ((((((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                {
                  *pmatch_len_ = 0;
                  res = gen_peephole2_121 (insn, operands);
                  if (res != NULL_RTX)
                    return res;
                }
              if (!(
#line 18483 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(optimize_insn_for_size_p ()
   && INTVAL (operands[0]) == 2*GET_MODE_SIZE (word_mode)) && ((((((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == SImode))))
                return NULL;
              *pmatch_len_ = 0;
              return gen_peephole2_122 (insn, operands);

            case DImode:
              if (GET_MODE (x26) != DImode
                  || GET_MODE (x36) != DImode
                  || !const_int_operand (operands[0], DImode))
                return NULL;
              if ((
#line 18399 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_SINGLE_PUSH || optimize_insn_for_size_p ())
   && INTVAL (operands[0]) == -GET_MODE_SIZE (word_mode)
   && !ix86_using_red_zone ()) && (((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                {
                  *pmatch_len_ = 0;
                  res = gen_peephole2_99 (insn, operands);
                  if (res != NULL_RTX)
                    return res;
                }
              if ((
#line 18399 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_SINGLE_PUSH || optimize_insn_for_size_p ())
   && INTVAL (operands[0]) == -GET_MODE_SIZE (word_mode)
   && !ix86_using_red_zone ()) && (((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                {
                  *pmatch_len_ = 0;
                  res = gen_peephole2_100 (insn, operands);
                  if (res != NULL_RTX)
                    return res;
                }
              if ((
#line 18413 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_DOUBLE_PUSH || optimize_insn_for_size_p ())
   && INTVAL (operands[0]) == -2*GET_MODE_SIZE (word_mode)
   && !ix86_using_red_zone ()) && ((((((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                {
                  *pmatch_len_ = 0;
                  res = gen_peephole2_103 (insn, operands);
                  if (res != NULL_RTX)
                    return res;
                }
              if ((
#line 18413 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_DOUBLE_PUSH || optimize_insn_for_size_p ())
   && INTVAL (operands[0]) == -2*GET_MODE_SIZE (word_mode)
   && !ix86_using_red_zone ()) && ((((((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                {
                  *pmatch_len_ = 0;
                  res = gen_peephole2_104 (insn, operands);
                  if (res != NULL_RTX)
                    return res;
                }
              if ((
#line 18455 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_SINGLE_POP || optimize_insn_for_size_p ())
   && INTVAL (operands[0]) == GET_MODE_SIZE (word_mode)) && (((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                {
                  *pmatch_len_ = 0;
                  res = gen_peephole2_115 (insn, operands);
                  if (res != NULL_RTX)
                    return res;
                }
              if ((
#line 18455 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_SINGLE_POP || optimize_insn_for_size_p ())
   && INTVAL (operands[0]) == GET_MODE_SIZE (word_mode)) && (((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                {
                  *pmatch_len_ = 0;
                  res = gen_peephole2_116 (insn, operands);
                  if (res != NULL_RTX)
                    return res;
                }
              if ((
#line 18470 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_DOUBLE_POP || optimize_insn_for_size_p ())
   && INTVAL (operands[0]) == 2*GET_MODE_SIZE (word_mode)) && ((((((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                {
                  *pmatch_len_ = 0;
                  res = gen_peephole2_119 (insn, operands);
                  if (res != NULL_RTX)
                    return res;
                }
              if ((
#line 18470 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
((TARGET_DOUBLE_POP || optimize_insn_for_size_p ())
   && INTVAL (operands[0]) == 2*GET_MODE_SIZE (word_mode)) && ((((((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                {
                  *pmatch_len_ = 0;
                  res = gen_peephole2_120 (insn, operands);
                  if (res != NULL_RTX)
                    return res;
                }
              if ((
#line 18483 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(optimize_insn_for_size_p ()
   && INTVAL (operands[0]) == 2*GET_MODE_SIZE (word_mode)) && ((((((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == SImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                {
                  *pmatch_len_ = 0;
                  res = gen_peephole2_123 (insn, operands);
                  if (res != NULL_RTX)
                    return res;
                }
              if (!(
#line 18483 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(optimize_insn_for_size_p ()
   && INTVAL (operands[0]) == 2*GET_MODE_SIZE (word_mode)) && ((((((((((
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1184 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(word_mode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode)) && 
#line 1179 "/usr/src/ports/cygwin64-gcc/cygwin64-gcc-6.4.0-1.i686/src/gcc-6.4.0/gcc/config/i386/i386.md"
(Pmode == DImode))))
                return NULL;
              *pmatch_len_ = 0;
              return gen_peephole2_124 (insn, operands);

            default:
              return NULL;
            }

        default:
          return NULL;
        }

    default:
      return NULL;
    }
}
