Line data Source code
1 : /* Generated automatically by the program `genrecog' from the target
2 : machine description file. */
3 :
4 : #define IN_TARGET_CODE 1
5 :
6 : #include "config.h"
7 : #include "system.h"
8 : #include "coretypes.h"
9 : #include "backend.h"
10 : #include "predict.h"
11 : #include "rtl.h"
12 : #include "memmodel.h"
13 : #include "tm_p.h"
14 : #include "emit-rtl.h"
15 : #include "insn-config.h"
16 : #include "recog.h"
17 : #include "output.h"
18 : #include "flags.h"
19 : #include "df.h"
20 : #include "resource.h"
21 : #include "diagnostic-core.h"
22 : #include "reload.h"
23 : #include "regs.h"
24 : #include "tm-constrs.h"
25 : #include "insn-recog.h"
26 :
27 :
28 : /* `recog' contains a decision tree that recognizes whether the rtx
29 : X0 is a valid instruction.
30 :
31 : recog returns -1 if the rtx is not valid. If the rtx is valid, recog
32 : returns a nonnegative number which is the insn code number for the
33 : pattern that matched. This is the same as the order in the machine
34 : description of the entry that matched. This number can be used as an
35 : index into `insn_data' and other tables.
36 : The third parameter to recog is an optional pointer to an int. If
37 : present, recog will accept a pattern if it matches except for missing
38 : CLOBBER expressions at the end. In that case, the value pointed to by
39 : the optional pointer will be set to the number of CLOBBERs that need
40 : 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
41 : appropriate size, copy the initial entries, and call add_clobbers
42 : (found in insn-emit.cc) to fill in the CLOBBERs.
43 :
44 : The function split_insns returns 0 if the rtl could not
45 : be split or the split rtl as an INSN list if it can be.
46 :
47 : The function peephole2_insns returns 0 if the rtl could not
48 : be matched. If there was a match, the new rtl is returned in an INSN list,
49 : and LAST_INSN will point to the last recognized insn in the old sequence.
50 : */
51 :
52 :
53 :
54 :
55 : int
56 59 : pattern9 (rtx x1, machine_mode i1)
57 : {
58 59 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
59 59 : int res ATTRIBUTE_UNUSED;
60 59 : if (!memory_operand (operands[0], i1)
61 59 : || GET_MODE (x1) != i1)
62 : return -1;
63 5 : switch (GET_MODE (operands[1]))
64 : {
65 0 : case E_V4SImode:
66 0 : if (!register_operand (operands[1], E_V4SImode))
67 : return -1;
68 : return 0;
69 :
70 5 : case E_V4DImode:
71 5 : if (!register_operand (operands[1], E_V4DImode))
72 : return -1;
73 : return 1;
74 :
75 : default:
76 : return -1;
77 : }
78 : }
79 :
80 : int
81 21326 : pattern15 (rtx x1)
82 : {
83 21326 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
84 21326 : rtx x2, x3;
85 21326 : int res ATTRIBUTE_UNUSED;
86 21326 : x2 = XEXP (x1, 1);
87 21326 : x3 = XEXP (x2, 1);
88 21326 : operands[3] = x3;
89 21326 : if (!const_int_operand (operands[3], E_QImode))
90 : return -1;
91 20214 : return pattern14 (x1); /* [-1, 1] */
92 : }
93 :
94 : int
95 33498 : pattern18 (rtx x1, int *pnum_clobbers)
96 : {
97 33498 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
98 33498 : rtx x2, x3, x4, x5, x6, x7;
99 33498 : int res ATTRIBUTE_UNUSED;
100 33498 : x2 = XEXP (x1, 0);
101 33498 : operands[0] = x2;
102 33498 : x3 = XEXP (x1, 1);
103 33498 : x4 = XEXP (x3, 0);
104 33498 : operands[1] = x4;
105 33498 : x5 = XEXP (x3, 1);
106 33498 : switch (GET_CODE (x5))
107 : {
108 21 : case AND:
109 21 : return pattern17 (x3, pnum_clobbers); /* [-1, 1] */
110 :
111 48 : case PLUS:
112 48 : if (pnum_clobbers == NULL
113 48 : || GET_MODE (x5) != E_QImode)
114 : return -1;
115 48 : x6 = XEXP (x5, 0);
116 48 : operands[2] = x6;
117 48 : if (!nonimmediate_operand (operands[2], E_QImode))
118 : return -1;
119 48 : res = pattern15 (x3);
120 48 : if (res >= 0)
121 29 : return res + 2; /* [2, 3] */
122 : return -1;
123 :
124 40 : case MINUS:
125 40 : if (pnum_clobbers == NULL
126 40 : || GET_MODE (x5) != E_QImode)
127 : return -1;
128 40 : x6 = XEXP (x5, 0);
129 40 : operands[3] = x6;
130 40 : if (!const_int_operand (operands[3], E_QImode))
131 : return -1;
132 13 : x7 = XEXP (x5, 1);
133 13 : operands[2] = x7;
134 13 : if (!nonimmediate_operand (operands[2], E_QImode))
135 : return -1;
136 10 : res = pattern14 (x3);
137 10 : if (res >= 0)
138 2 : return res + 4; /* [4, 5] */
139 : return -1;
140 :
141 : case CONST_INT:
142 : case CONST_WIDE_INT:
143 : case CONST_POLY_INT:
144 : case CONST_FIXED:
145 : case CONST_DOUBLE:
146 : case CONST_VECTOR:
147 : case CONST:
148 : case REG:
149 : case SUBREG:
150 : case LABEL_REF:
151 : case SYMBOL_REF:
152 : case HIGH:
153 : return 6;
154 :
155 : default:
156 : return -1;
157 : }
158 : }
159 :
160 : int
161 74260 : pattern36 (rtx x1)
162 : {
163 74260 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
164 74260 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
165 74260 : rtx x10, x11, x12;
166 74260 : int res ATTRIBUTE_UNUSED;
167 74260 : x2 = XVECEXP (x1, 0, 0);
168 74260 : if (GET_CODE (x2) != SET)
169 : return -1;
170 25040 : x3 = XEXP (x2, 1);
171 25040 : if (GET_CODE (x3) != COMPARE
172 245 : || GET_MODE (x3) != E_CCmode)
173 : return -1;
174 245 : x4 = XEXP (x3, 0);
175 245 : if (GET_CODE (x4) != MEM
176 245 : || GET_MODE (x4) != E_BLKmode)
177 : return -1;
178 245 : x5 = XEXP (x3, 1);
179 245 : if (GET_CODE (x5) != MEM
180 245 : || GET_MODE (x5) != E_BLKmode)
181 : return -1;
182 245 : x6 = XEXP (x2, 0);
183 245 : if (GET_CODE (x6) != REG
184 245 : || REGNO (x6) != 17
185 490 : || GET_MODE (x6) != E_CCmode)
186 : return -1;
187 245 : x7 = XVECEXP (x1, 0, 1);
188 245 : if (GET_CODE (x7) != USE)
189 : return -1;
190 245 : x8 = XVECEXP (x1, 0, 2);
191 245 : if (GET_CODE (x8) != USE)
192 : return -1;
193 0 : x9 = XVECEXP (x1, 0, 3);
194 0 : if (GET_CODE (x9) != CLOBBER)
195 : return -1;
196 0 : x10 = XVECEXP (x1, 0, 4);
197 0 : if (GET_CODE (x10) != CLOBBER)
198 : return -1;
199 0 : x11 = XVECEXP (x1, 0, 5);
200 0 : if (GET_CODE (x11) != CLOBBER)
201 : return -1;
202 0 : x12 = XEXP (x4, 0);
203 0 : operands[4] = x12;
204 0 : return 0;
205 : }
206 :
207 : int
208 107255 : pattern40 (rtx x1)
209 : {
210 107255 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
211 107255 : rtx x2, x3, x4, x5, x6;
212 107255 : int res ATTRIBUTE_UNUSED;
213 107255 : x2 = XEXP (x1, 1);
214 107255 : x3 = XEXP (x2, 0);
215 107255 : if (GET_MODE (x3) != E_TImode)
216 : return -1;
217 8256 : x4 = XEXP (x1, 0);
218 8256 : operands[0] = x4;
219 8256 : if (!nonimmediate_operand (operands[0], E_TImode)
220 8256 : || GET_MODE (x2) != E_TImode)
221 : return -1;
222 8256 : x5 = XEXP (x3, 0);
223 8256 : operands[1] = x5;
224 8256 : if (!nonimmediate_operand (operands[1], E_DImode))
225 : return -1;
226 6162 : x6 = XEXP (x2, 1);
227 6162 : switch (GET_CODE (x6))
228 : {
229 0 : case ASHIFT:
230 0 : if (GET_MODE (x6) != E_TImode)
231 : return -1;
232 0 : return pattern39 (x6,
233 : E_TImode,
234 0 : E_DImode); /* [-1, 2] */
235 :
236 2927 : case CONST_INT:
237 2927 : case CONST_WIDE_INT:
238 2927 : operands[2] = x6;
239 2927 : if (!const_scalar_int_operand (operands[2], E_TImode))
240 : return -1;
241 : return 3;
242 :
243 : default:
244 : return -1;
245 : }
246 : }
247 :
248 : int
249 11216 : pattern47 (rtx x1)
250 : {
251 11216 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
252 11216 : rtx x2, x3;
253 11216 : int res ATTRIBUTE_UNUSED;
254 11216 : x2 = XEXP (x1, 0);
255 11216 : operands[1] = x2;
256 11216 : x3 = XEXP (x1, 1);
257 11216 : operands[2] = x3;
258 11216 : switch (GET_MODE (operands[0]))
259 : {
260 994 : case E_V8QImode:
261 994 : return pattern6 (x1,
262 994 : E_V8QImode); /* [-1, 0] */
263 :
264 940 : case E_V4HImode:
265 940 : if (pattern6 (x1,
266 : E_V4HImode) != 0)
267 : return -1;
268 : return 1;
269 :
270 162 : case E_V4QImode:
271 162 : if (pattern5 (x1,
272 : E_V4QImode) != 0)
273 : return -1;
274 : return 2;
275 :
276 220 : case E_V2QImode:
277 220 : if (pattern5 (x1,
278 : E_V2QImode) != 0)
279 : return -1;
280 : return 3;
281 :
282 237 : case E_V2HImode:
283 237 : if (pattern5 (x1,
284 : E_V2HImode) != 0)
285 : return -1;
286 : return 4;
287 :
288 : default:
289 : return -1;
290 : }
291 : }
292 :
293 : int
294 1277 : pattern57 (rtx x1)
295 : {
296 1277 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
297 1277 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
298 1277 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
299 1277 : int res ATTRIBUTE_UNUSED;
300 1277 : x2 = XEXP (x1, 1);
301 1277 : if (GET_MODE (x2) != E_V4HImode)
302 : return -1;
303 284 : x3 = XEXP (x2, 0);
304 284 : if (GET_CODE (x3) != VEC_SELECT
305 60 : || GET_MODE (x3) != E_V4HImode)
306 : return -1;
307 60 : x4 = XEXP (x3, 0);
308 60 : if (GET_CODE (x4) != VEC_CONCAT
309 60 : || GET_MODE (x4) != E_V8HImode)
310 : return -1;
311 60 : x5 = XEXP (x3, 1);
312 60 : if (GET_CODE (x5) != PARALLEL
313 60 : || XVECLEN (x5, 0) != 4)
314 : return -1;
315 60 : x6 = XVECEXP (x5, 0, 0);
316 60 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
317 : return -1;
318 60 : x7 = XVECEXP (x5, 0, 1);
319 60 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
320 : return -1;
321 60 : x8 = XVECEXP (x5, 0, 2);
322 60 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
323 : return -1;
324 60 : x9 = XVECEXP (x5, 0, 3);
325 60 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
326 : return -1;
327 60 : x10 = XEXP (x2, 1);
328 60 : if (GET_CODE (x10) != VEC_SELECT
329 60 : || GET_MODE (x10) != E_V4HImode)
330 : return -1;
331 60 : x11 = XEXP (x10, 0);
332 60 : if (GET_CODE (x11) != VEC_CONCAT
333 60 : || GET_MODE (x11) != E_V8HImode)
334 : return -1;
335 60 : x12 = XEXP (x10, 1);
336 60 : if (GET_CODE (x12) != PARALLEL
337 60 : || XVECLEN (x12, 0) != 4)
338 : return -1;
339 60 : x13 = XVECEXP (x12, 0, 0);
340 60 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
341 : return -1;
342 60 : x14 = XVECEXP (x12, 0, 1);
343 60 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
344 : return -1;
345 60 : x15 = XVECEXP (x12, 0, 2);
346 60 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
347 : return -1;
348 60 : x16 = XVECEXP (x12, 0, 3);
349 60 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
350 : return -1;
351 60 : x17 = XEXP (x1, 0);
352 60 : operands[0] = x17;
353 60 : if (!register_operand (operands[0], E_V4HImode)
354 60 : || pattern56 (x2) != 0)
355 0 : return -1;
356 : return 0;
357 : }
358 :
359 : int
360 2805078 : pattern76 (rtx x1)
361 : {
362 2805078 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
363 2805078 : rtx x2, x3, x4;
364 2805078 : int res ATTRIBUTE_UNUSED;
365 2805078 : x2 = XEXP (x1, 0);
366 2805078 : x3 = XEXP (x2, 0);
367 2805078 : operands[1] = x3;
368 2805078 : x4 = XEXP (x2, 1);
369 2805078 : operands[3] = x4;
370 2805078 : return pattern75 (x1); /* [-1, 2] */
371 : }
372 :
373 : int
374 70961 : pattern79 (rtx x1, int *pnum_clobbers)
375 : {
376 70961 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
377 70961 : int res ATTRIBUTE_UNUSED;
378 70961 : if (pnum_clobbers == NULL
379 70961 : || !nonimmediate_operand (operands[0], E_TImode)
380 70949 : || GET_MODE (x1) != E_TImode
381 70949 : || !nonimmediate_operand (operands[1], E_TImode)
382 131874 : || !x86_64_hilo_general_operand (operands[2], E_TImode))
383 27664 : return -1;
384 : return 0;
385 : }
386 :
387 : int
388 59401 : pattern87 (rtx x1)
389 : {
390 59401 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
391 59401 : rtx x2, x3, x4;
392 59401 : int res ATTRIBUTE_UNUSED;
393 59401 : x2 = XEXP (x1, 0);
394 59401 : if (GET_MODE (x2) != E_QImode
395 10021 : || !register_operand (operands[0], E_HImode)
396 59910 : || GET_MODE (x1) != E_HImode)
397 58892 : return -1;
398 509 : x3 = XEXP (x2, 0);
399 509 : operands[1] = x3;
400 509 : if (!nonimmediate_operand (operands[1], E_QImode))
401 : return -1;
402 509 : x4 = XEXP (x2, 1);
403 509 : operands[2] = x4;
404 509 : if (!nonmemory_operand (operands[2], E_QImode))
405 : return -1;
406 : return 0;
407 : }
408 :
409 : int
410 11433 : pattern94 (rtx x1, int *pnum_clobbers)
411 : {
412 11433 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
413 11433 : rtx x2, x3, x4, x5, x6, x7;
414 11433 : int res ATTRIBUTE_UNUSED;
415 11433 : if (pnum_clobbers == NULL)
416 : return -1;
417 11433 : x2 = XEXP (x1, 1);
418 11433 : x3 = XEXP (x2, 0);
419 11433 : operands[2] = x3;
420 11433 : x4 = XEXP (x3, 0);
421 11433 : if (GET_CODE (x4) != REG
422 11433 : || REGNO (x4) != 17)
423 : return -1;
424 6731 : x5 = XEXP (x3, 1);
425 6731 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
426 : return -1;
427 6731 : x6 = XEXP (x1, 0);
428 6731 : operands[0] = x6;
429 6731 : x7 = XEXP (x2, 1);
430 6731 : operands[1] = x7;
431 6731 : switch (GET_MODE (operands[0]))
432 : {
433 : case E_QImode:
434 : return 0;
435 :
436 28 : case E_HImode:
437 28 : return 1;
438 :
439 : default:
440 : return -1;
441 : }
442 : }
443 :
444 : int
445 1245 : pattern99 (rtx x1)
446 : {
447 1245 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
448 1245 : rtx x2, x3, x4, x5;
449 1245 : int res ATTRIBUTE_UNUSED;
450 1245 : x2 = XEXP (x1, 1);
451 1245 : if (GET_MODE (x2) != E_BLKmode)
452 : return -1;
453 1245 : x3 = XEXP (x1, 0);
454 1245 : operands[0] = x3;
455 1245 : if (!memory_operand (operands[0], E_BLKmode))
456 : return -1;
457 1245 : x4 = XVECEXP (x2, 0, 0);
458 1245 : operands[1] = x4;
459 1245 : if (!register_operand (operands[1], E_SImode))
460 : return -1;
461 1204 : x5 = XVECEXP (x2, 0, 1);
462 1204 : operands[2] = x5;
463 1204 : if (!register_operand (operands[2], E_SImode))
464 : return -1;
465 : return 0;
466 : }
467 :
468 : int
469 674 : pattern108 (rtx x1)
470 : {
471 674 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
472 674 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
473 674 : rtx x10, x11, x12, x13, x14, x15;
474 674 : int res ATTRIBUTE_UNUSED;
475 674 : x2 = XEXP (x1, 0);
476 674 : if (GET_MODE (x2) != E_V4HImode)
477 : return -1;
478 238 : x3 = XEXP (x2, 0);
479 238 : if (GET_CODE (x3) != VEC_CONCAT
480 238 : || GET_MODE (x3) != E_V8HImode)
481 : return -1;
482 238 : x4 = XEXP (x2, 1);
483 238 : if (GET_CODE (x4) != PARALLEL
484 238 : || XVECLEN (x4, 0) != 4)
485 : return -1;
486 238 : x5 = XVECEXP (x4, 0, 0);
487 238 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
488 : return -1;
489 238 : x6 = XVECEXP (x4, 0, 1);
490 238 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
491 : return -1;
492 238 : x7 = XVECEXP (x4, 0, 2);
493 238 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
494 : return -1;
495 238 : x8 = XVECEXP (x4, 0, 3);
496 238 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
497 : return -1;
498 238 : x9 = XEXP (x1, 1);
499 238 : if (GET_CODE (x9) != VEC_SELECT
500 238 : || GET_MODE (x9) != E_V4HImode)
501 : return -1;
502 238 : x10 = XEXP (x9, 0);
503 238 : if (GET_CODE (x10) != VEC_CONCAT
504 238 : || GET_MODE (x10) != E_V8HImode)
505 : return -1;
506 238 : x11 = XEXP (x9, 1);
507 238 : if (GET_CODE (x11) != PARALLEL
508 238 : || XVECLEN (x11, 0) != 4)
509 : return -1;
510 238 : x12 = XVECEXP (x11, 0, 0);
511 238 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
512 : return -1;
513 238 : x13 = XVECEXP (x11, 0, 1);
514 238 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
515 : return -1;
516 238 : x14 = XVECEXP (x11, 0, 2);
517 238 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
518 : return -1;
519 238 : x15 = XVECEXP (x11, 0, 3);
520 238 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
521 238 : || !register_operand (operands[0], E_V4HImode)
522 238 : || GET_MODE (x1) != E_V4HImode
523 476 : || pattern56 (x1) != 0)
524 8 : return -1;
525 : return 0;
526 : }
527 :
528 : int
529 234 : pattern130 (rtx x1, machine_mode i1)
530 : {
531 234 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
532 234 : rtx x2;
533 234 : int res ATTRIBUTE_UNUSED;
534 234 : if (!register_operand (operands[0], i1)
535 234 : || GET_MODE (x1) != i1)
536 : return -1;
537 202 : x2 = XVECEXP (x1, 0, 0);
538 202 : switch (GET_MODE (x2))
539 : {
540 103 : case E_DFmode:
541 103 : if (!nonimmediate_operand (operands[1], E_V2DFmode))
542 : return -1;
543 : return 0;
544 :
545 99 : case E_SFmode:
546 99 : if (!nonimmediate_operand (operands[1], E_V4SFmode))
547 : return -1;
548 : return 1;
549 :
550 : default:
551 : return -1;
552 : }
553 : }
554 :
555 : int
556 900 : pattern137 (rtx x1, machine_mode i1)
557 : {
558 900 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
559 900 : rtx x2;
560 900 : int res ATTRIBUTE_UNUSED;
561 900 : if (!register_operand (operands[0], i1)
562 900 : || GET_MODE (x1) != i1)
563 : return -1;
564 876 : x2 = XEXP (x1, 0);
565 876 : if (GET_MODE (x2) != i1
566 876 : || !register_operand (operands[1], i1)
567 1692 : || !nonimmediate_operand (operands[2], i1))
568 112 : return -1;
569 : return 0;
570 : }
571 :
572 : int
573 0 : pattern144 (rtx x1)
574 : {
575 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
576 0 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
577 0 : rtx x10, x11;
578 0 : int res ATTRIBUTE_UNUSED;
579 0 : x2 = XEXP (x1, 1);
580 0 : operands[2] = x2;
581 0 : x3 = XEXP (x1, 2);
582 0 : operands[3] = x3;
583 0 : x4 = XEXP (x1, 0);
584 0 : x5 = XEXP (x4, 0);
585 0 : switch (GET_CODE (x5))
586 : {
587 0 : case REG:
588 0 : case SUBREG:
589 0 : case MEM:
590 0 : operands[1] = x5;
591 0 : switch (GET_MODE (operands[0]))
592 : {
593 0 : case E_V8HImode:
594 0 : return pattern141 (x1,
595 : E_V8HImode,
596 : E_QImode,
597 0 : E_V8HFmode); /* [-1, 0] */
598 :
599 0 : case E_V16HImode:
600 0 : if (pattern141 (x1,
601 : E_V16HImode,
602 : E_HImode,
603 : E_V16HFmode) != 0)
604 : return -1;
605 : return 1;
606 :
607 0 : case E_V32HImode:
608 0 : if (pattern141 (x1,
609 : E_V32HImode,
610 : E_SImode,
611 : E_V32HFmode) != 0)
612 : return -1;
613 : return 2;
614 :
615 0 : case E_V8SImode:
616 0 : if (pattern142 (x1,
617 : E_V8SImode,
618 : E_QImode) != 0)
619 : return -1;
620 : return 3;
621 :
622 0 : case E_V16SImode:
623 0 : if (!register_operand (operands[0], E_V16SImode)
624 0 : || GET_MODE (x1) != E_V16SImode
625 0 : || GET_MODE (x4) != E_V16SImode
626 0 : || !nonimm_or_0_operand (operands[2], E_V16SImode)
627 0 : || !register_operand (operands[3], E_HImode))
628 0 : return -1;
629 0 : switch (GET_MODE (operands[1]))
630 : {
631 0 : case E_V16HFmode:
632 0 : if (!vector_operand (operands[1], E_V16HFmode))
633 : return -1;
634 : return 4;
635 :
636 0 : case E_V16SFmode:
637 0 : if (!vector_operand (operands[1], E_V16SFmode))
638 : return -1;
639 : return 5;
640 :
641 : default:
642 : return -1;
643 : }
644 :
645 0 : case E_V8DImode:
646 0 : if (!register_operand (operands[0], E_V8DImode)
647 0 : || GET_MODE (x1) != E_V8DImode
648 0 : || GET_MODE (x4) != E_V8DImode
649 0 : || !nonimm_or_0_operand (operands[2], E_V8DImode)
650 0 : || !register_operand (operands[3], E_QImode))
651 0 : return -1;
652 0 : switch (GET_MODE (operands[1]))
653 : {
654 0 : case E_V8HFmode:
655 0 : if (!vector_operand (operands[1], E_V8HFmode))
656 : return -1;
657 : return 6;
658 :
659 0 : case E_V8DFmode:
660 0 : if (!vector_operand (operands[1], E_V8DFmode))
661 : return -1;
662 : return 7;
663 :
664 0 : case E_V8SFmode:
665 0 : if (!vector_operand (operands[1], E_V8SFmode))
666 : return -1;
667 : return 8;
668 :
669 : default:
670 : return -1;
671 : }
672 :
673 0 : case E_V4SImode:
674 0 : if (pattern142 (x1,
675 : E_V4SImode,
676 : E_QImode) != 0)
677 : return -1;
678 : return 9;
679 :
680 0 : case E_V4DImode:
681 0 : if (!register_operand (operands[0], E_V4DImode)
682 0 : || GET_MODE (x1) != E_V4DImode
683 0 : || GET_MODE (x4) != E_V4DImode
684 0 : || !nonimm_or_0_operand (operands[2], E_V4DImode)
685 0 : || !register_operand (operands[3], E_QImode))
686 0 : return -1;
687 0 : switch (GET_MODE (operands[1]))
688 : {
689 0 : case E_V4HFmode:
690 0 : if (!memory_operand (operands[1], E_V4HFmode))
691 : return -1;
692 : return 10;
693 :
694 0 : case E_V4DFmode:
695 0 : if (!vector_operand (operands[1], E_V4DFmode))
696 : return -1;
697 : return 11;
698 :
699 0 : case E_V4SFmode:
700 0 : if (!vector_operand (operands[1], E_V4SFmode))
701 : return -1;
702 : return 12;
703 :
704 : default:
705 : return -1;
706 : }
707 :
708 0 : case E_V2DImode:
709 0 : if (!register_operand (operands[0], E_V2DImode)
710 0 : || GET_MODE (x1) != E_V2DImode
711 0 : || GET_MODE (x4) != E_V2DImode
712 0 : || !nonimm_or_0_operand (operands[2], E_V2DImode)
713 0 : || !register_operand (operands[3], E_QImode))
714 0 : return -1;
715 0 : switch (GET_MODE (operands[1]))
716 : {
717 0 : case E_V2HFmode:
718 0 : if (!memory_operand (operands[1], E_V2HFmode))
719 : return -1;
720 : return 13;
721 :
722 0 : case E_V2DFmode:
723 0 : if (!vector_operand (operands[1], E_V2DFmode))
724 : return -1;
725 : return 14;
726 :
727 : default:
728 : return -1;
729 : }
730 :
731 : default:
732 : return -1;
733 : }
734 :
735 0 : case VEC_SELECT:
736 0 : x6 = XEXP (x5, 1);
737 0 : if (GET_CODE (x6) != PARALLEL)
738 : return -1;
739 0 : x7 = XEXP (x5, 0);
740 0 : operands[1] = x7;
741 0 : if (!register_operand (operands[3], E_QImode))
742 : return -1;
743 0 : switch (XVECLEN (x6, 0))
744 : {
745 0 : case 4:
746 0 : x8 = XVECEXP (x6, 0, 0);
747 0 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
748 : return -1;
749 0 : x9 = XVECEXP (x6, 0, 1);
750 0 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
751 : return -1;
752 0 : x10 = XVECEXP (x6, 0, 2);
753 0 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
754 : return -1;
755 0 : x11 = XVECEXP (x6, 0, 3);
756 0 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 3]
757 0 : || GET_MODE (x5) != E_V4HFmode
758 0 : || !register_operand (operands[1], E_V8HFmode))
759 0 : return -1;
760 0 : switch (GET_MODE (operands[0]))
761 : {
762 0 : case E_V4SImode:
763 0 : if (pattern143 (x1,
764 : E_V4SImode) != 0)
765 : return -1;
766 : return 15;
767 :
768 0 : case E_V4DImode:
769 0 : if (pattern143 (x1,
770 : E_V4DImode) != 0)
771 : return -1;
772 : return 16;
773 :
774 : default:
775 : return -1;
776 : }
777 :
778 0 : case 2:
779 0 : x8 = XVECEXP (x6, 0, 0);
780 0 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
781 : return -1;
782 0 : x9 = XVECEXP (x6, 0, 1);
783 0 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
784 0 : || !register_operand (operands[0], E_V2DImode)
785 0 : || GET_MODE (x1) != E_V2DImode
786 0 : || GET_MODE (x4) != E_V2DImode
787 0 : || !nonimm_or_0_operand (operands[2], E_V2DImode))
788 0 : return -1;
789 0 : switch (GET_MODE (x5))
790 : {
791 0 : case E_V2HFmode:
792 0 : if (!nonimmediate_operand (operands[1], E_V8HFmode))
793 : return -1;
794 : return 17;
795 :
796 0 : case E_V2SFmode:
797 0 : if (!nonimmediate_operand (operands[1], E_V4SFmode))
798 : return -1;
799 : return 18;
800 :
801 : default:
802 : return -1;
803 : }
804 :
805 : default:
806 : return -1;
807 : }
808 :
809 : default:
810 : return -1;
811 : }
812 : }
813 :
814 : int
815 444 : pattern205 (rtx x1)
816 : {
817 444 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
818 444 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
819 444 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
820 444 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
821 444 : rtx x26, x27;
822 444 : int res ATTRIBUTE_UNUSED;
823 444 : x2 = XEXP (x1, 0);
824 444 : x3 = XEXP (x2, 0);
825 444 : if (GET_CODE (x3) != VEC_CONCAT)
826 : return -1;
827 444 : x4 = XEXP (x2, 1);
828 444 : if (GET_CODE (x4) != PARALLEL)
829 : return -1;
830 444 : x5 = XEXP (x1, 1);
831 444 : if (GET_CODE (x5) != VEC_SELECT)
832 : return -1;
833 444 : x6 = XEXP (x5, 0);
834 444 : if (GET_CODE (x6) != VEC_CONCAT)
835 : return -1;
836 444 : x7 = XEXP (x5, 1);
837 444 : if (GET_CODE (x7) != PARALLEL)
838 : return -1;
839 444 : x8 = XEXP (x3, 0);
840 444 : operands[1] = x8;
841 444 : x9 = XEXP (x3, 1);
842 444 : operands[2] = x9;
843 444 : x10 = XEXP (x6, 0);
844 444 : if (!rtx_equal_p (x10, operands[1]))
845 : return -1;
846 444 : x11 = XEXP (x6, 1);
847 444 : if (!rtx_equal_p (x11, operands[2]))
848 : return -1;
849 444 : switch (XVECLEN (x4, 0))
850 : {
851 197 : case 16:
852 197 : return pattern195 (x1); /* [-1, 0] */
853 :
854 239 : case 8:
855 239 : x12 = XVECEXP (x4, 0, 0);
856 239 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
857 : return -1;
858 239 : x13 = XVECEXP (x4, 0, 1);
859 239 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
860 : return -1;
861 239 : x14 = XVECEXP (x4, 0, 2);
862 239 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
863 : return -1;
864 239 : x15 = XVECEXP (x4, 0, 3);
865 239 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
866 : return -1;
867 239 : x16 = XVECEXP (x4, 0, 4);
868 239 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
869 : return -1;
870 239 : x17 = XVECEXP (x4, 0, 5);
871 239 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
872 : return -1;
873 239 : x18 = XVECEXP (x4, 0, 6);
874 239 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
875 : return -1;
876 239 : x19 = XVECEXP (x4, 0, 7);
877 239 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 14]
878 239 : || XVECLEN (x7, 0) != 8)
879 : return -1;
880 239 : x20 = XVECEXP (x7, 0, 0);
881 239 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
882 : return -1;
883 239 : x21 = XVECEXP (x7, 0, 1);
884 239 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
885 : return -1;
886 239 : x22 = XVECEXP (x7, 0, 2);
887 239 : if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
888 : return -1;
889 239 : x23 = XVECEXP (x7, 0, 3);
890 239 : if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
891 : return -1;
892 239 : x24 = XVECEXP (x7, 0, 4);
893 239 : if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
894 : return -1;
895 239 : x25 = XVECEXP (x7, 0, 5);
896 239 : if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 11])
897 : return -1;
898 239 : x26 = XVECEXP (x7, 0, 6);
899 239 : if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 13])
900 : return -1;
901 239 : x27 = XVECEXP (x7, 0, 7);
902 239 : if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 15]
903 239 : || pattern196 (x1,
904 : E_V16HImode,
905 : E_V8HImode) != 0)
906 16 : return -1;
907 : return 1;
908 :
909 : default:
910 : return -1;
911 : }
912 : }
913 :
914 : int
915 314166 : pattern226 (rtx x1, machine_mode i1, machine_mode i2)
916 : {
917 314166 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
918 314166 : int res ATTRIBUTE_UNUSED;
919 314166 : if (!register_operand (operands[0], i2)
920 313564 : || GET_MODE (x1) != i2
921 313564 : || !register_operand (operands[1], i2)
922 563560 : || !vector_operand (operands[2], i1))
923 106566 : return -1;
924 : return 0;
925 : }
926 :
927 : int
928 2250 : pattern229 (rtx x1)
929 : {
930 2250 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
931 2250 : rtx x2, x3, x4;
932 2250 : int res ATTRIBUTE_UNUSED;
933 2250 : x2 = XVECEXP (x1, 0, 1);
934 2250 : if (GET_CODE (x2) != CLOBBER)
935 : return -1;
936 1870 : x3 = XEXP (x2, 0);
937 1870 : if (GET_CODE (x3) != REG
938 1870 : || REGNO (x3) != 17
939 3740 : || GET_MODE (x3) != E_CCmode)
940 : return -1;
941 1870 : x4 = XVECEXP (x1, 0, 2);
942 1870 : if (GET_CODE (x4) != CLOBBER)
943 : return -1;
944 898 : return pattern228 (x1); /* [-1, 1] */
945 : }
946 :
947 : int
948 112065 : pattern237 (rtx x1)
949 : {
950 112065 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
951 112065 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
952 112065 : rtx x10, x11, x12, x13, x14, x15;
953 112065 : int res ATTRIBUTE_UNUSED;
954 112065 : x2 = XVECEXP (x1, 0, 0);
955 112065 : x3 = XEXP (x2, 1);
956 112065 : if (GET_MODE (x3) != E_CCmode)
957 : return -1;
958 112065 : x4 = XEXP (x3, 0);
959 112065 : if (GET_CODE (x4) != NE)
960 : return -1;
961 109092 : x5 = XEXP (x4, 1);
962 109092 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
963 : return -1;
964 109060 : x6 = XEXP (x3, 1);
965 109060 : if (GET_CODE (x6) != COMPARE
966 109060 : || GET_MODE (x6) != E_CCmode)
967 : return -1;
968 109060 : x7 = XEXP (x6, 0);
969 109060 : if (GET_CODE (x7) != MEM
970 109060 : || GET_MODE (x7) != E_BLKmode)
971 : return -1;
972 109060 : x8 = XEXP (x6, 1);
973 109060 : if (GET_CODE (x8) != MEM
974 109060 : || GET_MODE (x8) != E_BLKmode)
975 : return -1;
976 109060 : x9 = XEXP (x3, 2);
977 109060 : if (GET_CODE (x9) != REG
978 76293 : || REGNO (x9) != 17
979 185353 : || GET_MODE (x9) != E_CCmode)
980 : return -1;
981 76293 : x10 = XEXP (x2, 0);
982 76293 : if (GET_CODE (x10) != REG
983 76293 : || REGNO (x10) != 17
984 152586 : || GET_MODE (x10) != E_CCmode)
985 : return -1;
986 76293 : x11 = XVECEXP (x1, 0, 1);
987 76293 : if (GET_CODE (x11) != USE)
988 : return -1;
989 76293 : x12 = XVECEXP (x1, 0, 2);
990 76293 : if (GET_CODE (x12) != CLOBBER)
991 : return -1;
992 76293 : x13 = XVECEXP (x1, 0, 3);
993 76293 : if (GET_CODE (x13) != CLOBBER)
994 : return -1;
995 76293 : x14 = XVECEXP (x1, 0, 4);
996 76293 : if (GET_CODE (x14) != CLOBBER)
997 : return -1;
998 76293 : x15 = XEXP (x4, 0);
999 76293 : operands[6] = x15;
1000 76293 : return 0;
1001 : }
1002 :
1003 : int
1004 61063 : pattern257 (rtx x1, int *pnum_clobbers)
1005 : {
1006 61063 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1007 61063 : rtx x2, x3, x4, x5;
1008 61063 : int res ATTRIBUTE_UNUSED;
1009 61063 : if (pnum_clobbers == NULL)
1010 : return -1;
1011 61063 : x2 = XEXP (x1, 1);
1012 61063 : x3 = XEXP (x2, 0);
1013 61063 : if (GET_MODE (x3) != E_QImode)
1014 : return -1;
1015 245 : x4 = XEXP (x3, 0);
1016 245 : if (GET_CODE (x4) != SUBREG
1017 160 : || maybe_ne (SUBREG_BYTE (x4), 0)
1018 405 : || GET_MODE (x4) != E_QImode)
1019 : return -1;
1020 160 : x5 = XEXP (x4, 0);
1021 160 : switch (GET_CODE (x5))
1022 : {
1023 136 : case ASHIFTRT:
1024 136 : case LSHIFTRT:
1025 136 : case SIGN_EXTRACT:
1026 136 : case ZERO_EXTRACT:
1027 136 : operands[3] = x5;
1028 136 : return pattern256 (x1); /* [-1, 0] */
1029 :
1030 : default:
1031 : return -1;
1032 : }
1033 : }
1034 :
1035 : int
1036 2669212 : pattern274 (rtx x1)
1037 : {
1038 2669212 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1039 2669212 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1040 2669212 : rtx x10, x11, x12, x13;
1041 2669212 : int res ATTRIBUTE_UNUSED;
1042 2669212 : x2 = XEXP (x1, 0);
1043 2669212 : x3 = XEXP (x2, 0);
1044 2669212 : operands[1] = x3;
1045 2669212 : x4 = XEXP (x2, 1);
1046 2669212 : operands[2] = x4;
1047 2669212 : x5 = XEXP (x1, 1);
1048 2669212 : switch (XVECLEN (x5, 0))
1049 : {
1050 290668 : case 2:
1051 290668 : x6 = XVECEXP (x5, 0, 0);
1052 290668 : if (GET_CODE (x6) != CONST_INT)
1053 : return -1;
1054 : return 0;
1055 :
1056 586107 : case 8:
1057 586107 : x6 = XVECEXP (x5, 0, 0);
1058 586107 : if (GET_CODE (x6) != CONST_INT)
1059 : return -1;
1060 586107 : x7 = XVECEXP (x5, 0, 1);
1061 586107 : if (GET_CODE (x7) != CONST_INT)
1062 : return -1;
1063 586107 : x8 = XVECEXP (x5, 0, 2);
1064 586107 : if (GET_CODE (x8) != CONST_INT)
1065 : return -1;
1066 586107 : x9 = XVECEXP (x5, 0, 3);
1067 586107 : if (GET_CODE (x9) != CONST_INT)
1068 : return -1;
1069 586107 : x10 = XVECEXP (x5, 0, 4);
1070 586107 : if (GET_CODE (x10) != CONST_INT)
1071 : return -1;
1072 586107 : x11 = XVECEXP (x5, 0, 5);
1073 586107 : if (GET_CODE (x11) != CONST_INT)
1074 : return -1;
1075 586107 : x12 = XVECEXP (x5, 0, 6);
1076 586107 : if (GET_CODE (x12) != CONST_INT)
1077 : return -1;
1078 586107 : x13 = XVECEXP (x5, 0, 7);
1079 586107 : if (GET_CODE (x13) != CONST_INT
1080 586107 : || !register_operand (operands[0], E_V8QImode)
1081 42876 : || GET_MODE (x1) != E_V8QImode
1082 42876 : || GET_MODE (x2) != E_V16QImode
1083 42876 : || !register_operand (operands[1], E_V8QImode)
1084 627984 : || !register_mmxmem_operand (operands[2], E_V8QImode))
1085 549087 : return -1;
1086 37020 : switch (XWINT (x6, 0))
1087 : {
1088 8476 : case 4L:
1089 8476 : if (XWINT (x7, 0) != 12L
1090 6634 : || XWINT (x8, 0) != 5L
1091 6530 : || XWINT (x9, 0) != 13L
1092 6530 : || XWINT (x10, 0) != 6L
1093 6530 : || XWINT (x11, 0) != 14L
1094 6530 : || XWINT (x12, 0) != 7L
1095 6530 : || XWINT (x13, 0) != 15L)
1096 : return -1;
1097 : return 1;
1098 :
1099 14252 : case 0L:
1100 14252 : if (XWINT (x7, 0) != 8L
1101 8257 : || XWINT (x8, 0) != 1L
1102 7488 : || XWINT (x9, 0) != 9L
1103 7274 : || XWINT (x10, 0) != 2L
1104 7274 : || XWINT (x11, 0) != 10L
1105 7274 : || XWINT (x12, 0) != 3L
1106 7274 : || XWINT (x13, 0) != 11L)
1107 : return -1;
1108 : return 2;
1109 :
1110 : default:
1111 : return -1;
1112 : }
1113 :
1114 1560807 : case 4:
1115 1560807 : x6 = XVECEXP (x5, 0, 0);
1116 1560807 : if (GET_CODE (x6) != CONST_INT)
1117 : return -1;
1118 1560807 : x7 = XVECEXP (x5, 0, 1);
1119 1560807 : if (GET_CODE (x7) != CONST_INT)
1120 : return -1;
1121 1560807 : x8 = XVECEXP (x5, 0, 2);
1122 1560807 : if (GET_CODE (x8) != CONST_INT)
1123 : return -1;
1124 1560807 : x9 = XVECEXP (x5, 0, 3);
1125 1560807 : if (GET_CODE (x9) != CONST_INT)
1126 : return -1;
1127 1560807 : switch (XWINT (x6, 0))
1128 : {
1129 291761 : case 2L:
1130 291761 : if (XWINT (x7, 0) != 6L
1131 126142 : || XWINT (x8, 0) != 3L
1132 125113 : || XWINT (x9, 0) != 7L)
1133 : return -1;
1134 124948 : switch (GET_MODE (operands[0]))
1135 : {
1136 4344 : case E_V4QImode:
1137 4344 : if (pattern272 (x1,
1138 : E_V4QImode,
1139 : E_V8QImode) != 0)
1140 : return -1;
1141 : return 3;
1142 :
1143 23232 : case E_V4HImode:
1144 23232 : if (pattern273 (x1,
1145 : E_V4HImode,
1146 : E_V8HImode) != 0)
1147 : return -1;
1148 : return 4;
1149 :
1150 : default:
1151 : return -1;
1152 : }
1153 :
1154 798794 : case 0L:
1155 798794 : if (XWINT (x7, 0) != 4L
1156 362872 : || XWINT (x8, 0) != 1L
1157 347269 : || XWINT (x9, 0) != 5L)
1158 : return -1;
1159 346661 : switch (GET_MODE (operands[0]))
1160 : {
1161 6516 : case E_V4QImode:
1162 6516 : if (pattern272 (x1,
1163 : E_V4QImode,
1164 : E_V8QImode) != 0)
1165 : return -1;
1166 : return 5;
1167 :
1168 31892 : case E_V4HImode:
1169 31892 : if (pattern273 (x1,
1170 : E_V4HImode,
1171 : E_V8HImode) != 0)
1172 : return -1;
1173 : return 6;
1174 :
1175 : default:
1176 : return -1;
1177 : }
1178 :
1179 : default:
1180 : return -1;
1181 : }
1182 :
1183 : default:
1184 : return -1;
1185 : }
1186 : }
1187 :
1188 : int
1189 752 : pattern325 (rtx x1)
1190 : {
1191 752 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1192 752 : rtx x2;
1193 752 : int res ATTRIBUTE_UNUSED;
1194 752 : x2 = XVECEXP (x1, 0, 0);
1195 752 : operands[1] = x2;
1196 752 : switch (GET_MODE (operands[0]))
1197 : {
1198 126 : case E_V16SFmode:
1199 126 : if (!register_operand (operands[0], E_V16SFmode)
1200 117 : || GET_MODE (x1) != E_V16SFmode
1201 243 : || !nonimmediate_operand (operands[1], E_V16SFmode))
1202 11 : return -1;
1203 : return 0;
1204 :
1205 126 : case E_V8SFmode:
1206 126 : if (!register_operand (operands[0], E_V8SFmode)
1207 117 : || GET_MODE (x1) != E_V8SFmode
1208 243 : || !nonimmediate_operand (operands[1], E_V8SFmode))
1209 11 : return -1;
1210 : return 1;
1211 :
1212 121 : case E_V4SFmode:
1213 121 : if (!register_operand (operands[0], E_V4SFmode)
1214 115 : || GET_MODE (x1) != E_V4SFmode
1215 236 : || !nonimmediate_operand (operands[1], E_V4SFmode))
1216 7 : return -1;
1217 : return 2;
1218 :
1219 129 : case E_V8DFmode:
1220 129 : if (!register_operand (operands[0], E_V8DFmode)
1221 120 : || GET_MODE (x1) != E_V8DFmode
1222 249 : || !nonimmediate_operand (operands[1], E_V8DFmode))
1223 12 : return -1;
1224 : return 3;
1225 :
1226 126 : case E_V4DFmode:
1227 126 : if (!register_operand (operands[0], E_V4DFmode)
1228 117 : || GET_MODE (x1) != E_V4DFmode
1229 243 : || !nonimmediate_operand (operands[1], E_V4DFmode))
1230 11 : return -1;
1231 : return 4;
1232 :
1233 124 : case E_V2DFmode:
1234 124 : if (!register_operand (operands[0], E_V2DFmode)
1235 118 : || GET_MODE (x1) != E_V2DFmode
1236 242 : || !nonimmediate_operand (operands[1], E_V2DFmode))
1237 8 : return -1;
1238 : return 5;
1239 :
1240 : default:
1241 : return -1;
1242 : }
1243 : }
1244 :
1245 : int
1246 663969 : pattern334 (rtx x1)
1247 : {
1248 663969 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1249 663969 : rtx x2, x3, x4, x5;
1250 663969 : int res ATTRIBUTE_UNUSED;
1251 663969 : x2 = XEXP (x1, 0);
1252 663969 : x3 = XEXP (x2, 0);
1253 663969 : operands[1] = x3;
1254 663969 : x4 = XEXP (x2, 1);
1255 663969 : operands[2] = x4;
1256 663969 : x5 = XEXP (x1, 1);
1257 663969 : operands[3] = x5;
1258 663969 : switch (GET_MODE (operands[0]))
1259 : {
1260 5997 : case E_V8HImode:
1261 5997 : return pattern333 (x1,
1262 5997 : E_V8HImode); /* [-1, 0] */
1263 :
1264 4226 : case E_V4SImode:
1265 4226 : if (pattern333 (x1,
1266 : E_V4SImode) != 0)
1267 : return -1;
1268 : return 1;
1269 :
1270 : default:
1271 : return -1;
1272 : }
1273 : }
1274 :
1275 : int
1276 61010 : pattern338 (rtx x1, rtx_code i1)
1277 : {
1278 61010 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1279 61010 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1280 61010 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
1281 61010 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
1282 61010 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
1283 61010 : rtx x34, x35;
1284 61010 : int res ATTRIBUTE_UNUSED;
1285 61010 : x2 = XEXP (x1, 0);
1286 61010 : x3 = XEXP (x2, 0);
1287 61010 : x4 = XEXP (x3, 0);
1288 61010 : if (GET_CODE (x4) != VEC_SELECT)
1289 : return -1;
1290 349 : x5 = XEXP (x4, 1);
1291 349 : if (GET_CODE (x5) != PARALLEL)
1292 : return -1;
1293 349 : x6 = XEXP (x2, 1);
1294 349 : if (GET_CODE (x6) != i1)
1295 : return -1;
1296 252 : x7 = XEXP (x6, 0);
1297 252 : if (GET_CODE (x7) != VEC_SELECT)
1298 : return -1;
1299 190 : x8 = XEXP (x7, 1);
1300 190 : if (GET_CODE (x8) != PARALLEL)
1301 : return -1;
1302 190 : x9 = XEXP (x1, 1);
1303 190 : if (GET_CODE (x9) != PLUS)
1304 : return -1;
1305 190 : x10 = XEXP (x9, 0);
1306 190 : if (GET_CODE (x10) != i1)
1307 : return -1;
1308 190 : x11 = XEXP (x10, 0);
1309 190 : if (GET_CODE (x11) != VEC_SELECT)
1310 : return -1;
1311 190 : x12 = XEXP (x11, 1);
1312 190 : if (GET_CODE (x12) != PARALLEL)
1313 : return -1;
1314 190 : x13 = XEXP (x9, 1);
1315 190 : if (GET_CODE (x13) != i1)
1316 : return -1;
1317 190 : x14 = XEXP (x13, 0);
1318 190 : if (GET_CODE (x14) != VEC_SELECT)
1319 : return -1;
1320 190 : x15 = XEXP (x14, 1);
1321 190 : if (GET_CODE (x15) != PARALLEL)
1322 : return -1;
1323 190 : x16 = XEXP (x4, 0);
1324 190 : operands[1] = x16;
1325 190 : x17 = XEXP (x7, 0);
1326 190 : if (!rtx_equal_p (x17, operands[1]))
1327 : return -1;
1328 190 : x18 = XEXP (x11, 0);
1329 190 : if (!rtx_equal_p (x18, operands[1]))
1330 : return -1;
1331 190 : x19 = XEXP (x14, 0);
1332 190 : if (!rtx_equal_p (x19, operands[1]))
1333 : return -1;
1334 190 : switch (XVECLEN (x5, 0))
1335 : {
1336 90 : case 4:
1337 90 : x20 = XVECEXP (x5, 0, 0);
1338 90 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1339 : return -1;
1340 90 : x21 = XVECEXP (x5, 0, 1);
1341 90 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
1342 : return -1;
1343 90 : x22 = XVECEXP (x5, 0, 2);
1344 90 : if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
1345 : return -1;
1346 90 : x23 = XVECEXP (x5, 0, 3);
1347 90 : if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 12]
1348 90 : || XVECLEN (x8, 0) != 4)
1349 : return -1;
1350 90 : x24 = XVECEXP (x8, 0, 0);
1351 90 : if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
1352 : return -1;
1353 90 : x25 = XVECEXP (x8, 0, 1);
1354 90 : if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
1355 : return -1;
1356 90 : x26 = XVECEXP (x8, 0, 2);
1357 90 : if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
1358 : return -1;
1359 90 : x27 = XVECEXP (x8, 0, 3);
1360 90 : if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 13]
1361 90 : || XVECLEN (x12, 0) != 4)
1362 : return -1;
1363 90 : x28 = XVECEXP (x12, 0, 0);
1364 90 : if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
1365 : return -1;
1366 90 : x29 = XVECEXP (x12, 0, 1);
1367 90 : if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
1368 : return -1;
1369 90 : x30 = XVECEXP (x12, 0, 2);
1370 90 : if (x30 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
1371 : return -1;
1372 90 : x31 = XVECEXP (x12, 0, 3);
1373 90 : if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 14]
1374 90 : || XVECLEN (x15, 0) != 4)
1375 : return -1;
1376 90 : x32 = XVECEXP (x15, 0, 0);
1377 90 : if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
1378 : return -1;
1379 90 : x33 = XVECEXP (x15, 0, 1);
1380 90 : if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
1381 : return -1;
1382 90 : x34 = XVECEXP (x15, 0, 2);
1383 90 : if (x34 != const_int_rtx[MAX_SAVED_CONST_INT + 11])
1384 : return -1;
1385 90 : x35 = XVECEXP (x15, 0, 3);
1386 90 : if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + 15]
1387 90 : || pattern337 (x1,
1388 : E_V4QImode,
1389 : E_V4SImode,
1390 : E_V16QImode) != 0)
1391 4 : return -1;
1392 : return 0;
1393 :
1394 100 : case 2:
1395 100 : x20 = XVECEXP (x5, 0, 0);
1396 100 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1397 : return -1;
1398 100 : x21 = XVECEXP (x5, 0, 1);
1399 100 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 4]
1400 100 : || XVECLEN (x8, 0) != 2)
1401 : return -1;
1402 100 : x24 = XVECEXP (x8, 0, 0);
1403 100 : if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
1404 : return -1;
1405 100 : x25 = XVECEXP (x8, 0, 1);
1406 100 : if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 5]
1407 100 : || XVECLEN (x12, 0) != 2)
1408 : return -1;
1409 100 : x28 = XVECEXP (x12, 0, 0);
1410 100 : if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
1411 : return -1;
1412 100 : x29 = XVECEXP (x12, 0, 1);
1413 100 : if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 6]
1414 100 : || XVECLEN (x15, 0) != 2)
1415 : return -1;
1416 100 : x32 = XVECEXP (x15, 0, 0);
1417 100 : if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
1418 : return -1;
1419 100 : x33 = XVECEXP (x15, 0, 1);
1420 100 : if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
1421 100 : || pattern337 (x1,
1422 : E_V2HImode,
1423 : E_V2DImode,
1424 : E_V8HImode) != 0)
1425 4 : return -1;
1426 : return 1;
1427 :
1428 : default:
1429 : return -1;
1430 : }
1431 : }
1432 :
1433 : int
1434 303 : pattern377 (rtx x1)
1435 : {
1436 303 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1437 303 : int res ATTRIBUTE_UNUSED;
1438 303 : switch (GET_MODE (operands[0]))
1439 : {
1440 288 : case E_QImode:
1441 288 : if (!register_operand (operands[0], E_QImode)
1442 288 : || GET_MODE (x1) != E_QImode
1443 576 : || !register_operand (operands[1], E_QImode))
1444 37 : return -1;
1445 : return 0;
1446 :
1447 15 : case E_HImode:
1448 15 : if (!register_operand (operands[0], E_HImode)
1449 15 : || GET_MODE (x1) != E_HImode
1450 30 : || !register_operand (operands[1], E_HImode))
1451 0 : return -1;
1452 : return 1;
1453 :
1454 : default:
1455 : return -1;
1456 : }
1457 : }
1458 :
1459 : int
1460 2519 : pattern385 (rtx x1, int i1)
1461 : {
1462 2519 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1463 2519 : rtx x2;
1464 2519 : int res ATTRIBUTE_UNUSED;
1465 2519 : if (GET_CODE (x1) != UNSPEC
1466 12 : || XVECLEN (x1, 0) != 1
1467 12 : || XINT (x1, 1) != i1)
1468 : return -1;
1469 12 : x2 = XVECEXP (x1, 0, 0);
1470 12 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1471 0 : return -1;
1472 : return 0;
1473 : }
1474 :
1475 : int
1476 3346 : pattern390 (rtx x1)
1477 : {
1478 3346 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1479 3346 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1480 3346 : rtx x10, x11;
1481 3346 : int res ATTRIBUTE_UNUSED;
1482 3346 : x2 = XVECEXP (x1, 0, 1);
1483 3346 : if (GET_CODE (x2) != CLOBBER)
1484 : return -1;
1485 3346 : x3 = XVECEXP (x1, 0, 2);
1486 3346 : if (GET_CODE (x3) != CLOBBER)
1487 : return -1;
1488 3346 : x4 = XVECEXP (x1, 0, 0);
1489 3346 : x5 = XEXP (x4, 0);
1490 3346 : operands[0] = x5;
1491 3346 : x6 = XEXP (x4, 1);
1492 3346 : x7 = XEXP (x6, 0);
1493 3346 : operands[1] = x7;
1494 3346 : if (!register_operand (operands[1], E_DImode))
1495 : return -1;
1496 3343 : x8 = XEXP (x2, 0);
1497 3343 : operands[2] = x8;
1498 3343 : if (!memory_operand (operands[2], E_DImode))
1499 : return -1;
1500 3343 : x9 = XEXP (x3, 0);
1501 3343 : operands[3] = x9;
1502 3343 : if (!scratch_operand (operands[3], E_V4SImode))
1503 : return -1;
1504 3343 : x10 = XVECEXP (x1, 0, 3);
1505 3343 : x11 = XEXP (x10, 0);
1506 3343 : operands[4] = x11;
1507 3343 : if (!scratch_operand (operands[4], E_V4SImode))
1508 : return -1;
1509 3343 : return pattern389 (x6); /* [-1, 2] */
1510 : }
1511 :
1512 : int
1513 9506 : pattern405 (rtx x1)
1514 : {
1515 9506 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1516 9506 : rtx x2, x3, x4, x5, x6;
1517 9506 : int res ATTRIBUTE_UNUSED;
1518 9506 : x2 = XEXP (x1, 0);
1519 9506 : x3 = XEXP (x2, 0);
1520 9506 : operands[1] = x3;
1521 9506 : x4 = XEXP (x1, 1);
1522 9506 : switch (GET_CODE (x4))
1523 : {
1524 0 : case ASHIFT:
1525 0 : x5 = XEXP (x4, 1);
1526 0 : operands[3] = x5;
1527 0 : if (!const_int_operand (operands[3], E_QImode))
1528 : return -1;
1529 0 : x6 = XEXP (x4, 0);
1530 0 : switch (GET_CODE (x6))
1531 : {
1532 0 : case REG:
1533 0 : case SUBREG:
1534 0 : operands[2] = x6;
1535 0 : switch (GET_MODE (operands[0]))
1536 : {
1537 0 : case E_DImode:
1538 0 : return pattern401 (x1,
1539 : E_DImode,
1540 0 : E_SImode); /* [-1, 0] */
1541 :
1542 0 : case E_TImode:
1543 0 : if (pattern401 (x1,
1544 : E_TImode,
1545 : E_DImode) != 0)
1546 : return -1;
1547 : return 1;
1548 :
1549 : default:
1550 : return -1;
1551 : }
1552 :
1553 0 : case SIGN_EXTEND:
1554 0 : res = pattern403 (x1);
1555 0 : if (res >= 0)
1556 0 : return res + 2; /* [2, 3] */
1557 : return -1;
1558 :
1559 0 : case ZERO_EXTEND:
1560 0 : res = pattern403 (x1);
1561 0 : if (res >= 0)
1562 0 : return res + 4; /* [4, 5] */
1563 : return -1;
1564 :
1565 : default:
1566 : return -1;
1567 : }
1568 :
1569 2229 : case CONST_INT:
1570 2229 : case CONST_WIDE_INT:
1571 2229 : operands[2] = x4;
1572 2229 : switch (GET_MODE (operands[0]))
1573 : {
1574 647 : case E_DImode:
1575 647 : if (pattern404 (x1,
1576 : E_DImode,
1577 : E_SImode) != 0)
1578 : return -1;
1579 : return 6;
1580 :
1581 1146 : case E_TImode:
1582 1146 : if (pattern404 (x1,
1583 : E_TImode,
1584 : E_DImode) != 0)
1585 : return -1;
1586 : return 7;
1587 :
1588 : default:
1589 : return -1;
1590 : }
1591 :
1592 : default:
1593 : return -1;
1594 : }
1595 : }
1596 :
1597 : int
1598 125562 : pattern425 (rtx x1)
1599 : {
1600 125562 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1601 125562 : rtx x2, x3, x4, x5, x6;
1602 125562 : int res ATTRIBUTE_UNUSED;
1603 125562 : x2 = XEXP (x1, 1);
1604 125562 : x3 = XEXP (x2, 0);
1605 125562 : x4 = XEXP (x3, 0);
1606 125562 : if (GET_CODE (x4) != SUBREG
1607 38900 : || maybe_ne (SUBREG_BYTE (x4), 0)
1608 163707 : || GET_MODE (x4) != E_QImode)
1609 : return -1;
1610 120 : x5 = XEXP (x4, 0);
1611 120 : switch (GET_CODE (x5))
1612 : {
1613 3 : case ASHIFTRT:
1614 3 : case LSHIFTRT:
1615 3 : case SIGN_EXTRACT:
1616 3 : case ZERO_EXTRACT:
1617 3 : operands[3] = x5;
1618 3 : x6 = XEXP (x1, 0);
1619 3 : return pattern424 (x6); /* [-1, 0] */
1620 :
1621 : default:
1622 : return -1;
1623 : }
1624 : }
1625 :
1626 : int
1627 427 : pattern432 (rtx x1, machine_mode i1)
1628 : {
1629 427 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1630 427 : rtx x2, x3;
1631 427 : int res ATTRIBUTE_UNUSED;
1632 427 : if (!register_operand (operands[0], i1)
1633 427 : || GET_MODE (x1) != i1)
1634 : return -1;
1635 355 : x2 = XEXP (x1, 0);
1636 355 : if (GET_MODE (x2) != i1)
1637 : return -1;
1638 355 : x3 = XEXP (x2, 0);
1639 355 : if (GET_MODE (x3) != i1
1640 355 : || !register_no_SP_operand (operands[1], i1)
1641 310 : || !register_operand (operands[3], i1)
1642 628 : || !immediate_operand (operands[4], i1))
1643 152 : return -1;
1644 : return 0;
1645 : }
1646 :
1647 : int
1648 330 : pattern441 (rtx x1)
1649 : {
1650 330 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1651 330 : rtx x2, x3;
1652 330 : int res ATTRIBUTE_UNUSED;
1653 330 : if (GET_MODE (x1) != E_SImode)
1654 : return -1;
1655 318 : x2 = XEXP (x1, 0);
1656 318 : if (GET_CODE (x2) != ASHIFT
1657 72 : || GET_MODE (x2) != E_SImode)
1658 : return -1;
1659 72 : x3 = XEXP (x2, 0);
1660 72 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
1661 46 : return -1;
1662 : return 0;
1663 : }
1664 :
1665 : int
1666 6783 : pattern447 (rtx x1, int *pnum_clobbers)
1667 : {
1668 6783 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1669 6783 : rtx x2, x3, x4, x5, x6, x7, x8;
1670 6783 : int res ATTRIBUTE_UNUSED;
1671 6783 : x2 = XEXP (x1, 1);
1672 6783 : x3 = XEXP (x2, 1);
1673 6783 : switch (GET_CODE (x3))
1674 : {
1675 3888 : case CONST_INT:
1676 3888 : operands[3] = x3;
1677 3888 : x4 = XEXP (x1, 0);
1678 3888 : x5 = XEXP (x4, 0);
1679 3888 : operands[4] = x5;
1680 3888 : x6 = XEXP (x4, 1);
1681 3888 : operands[2] = x6;
1682 3888 : x7 = XEXP (x2, 0);
1683 3888 : operands[1] = x7;
1684 3888 : return pattern445 (x1); /* [-1, 1] */
1685 :
1686 297 : case MINUS:
1687 297 : if (pnum_clobbers == NULL
1688 297 : || GET_MODE (x3) != E_QImode)
1689 : return -1;
1690 290 : x8 = XEXP (x3, 0);
1691 290 : if (GET_CODE (x8) != CONST_INT)
1692 : return -1;
1693 116 : x4 = XEXP (x1, 0);
1694 116 : x6 = XEXP (x4, 1);
1695 116 : if (!nonmemory_operand (x6, E_QImode))
1696 : return -1;
1697 116 : switch (XWINT (x8, 0))
1698 : {
1699 90 : case 64L:
1700 90 : if (pattern446 (x1,
1701 : E_DImode) != 0)
1702 : return -1;
1703 : return 2;
1704 :
1705 20 : case 32L:
1706 20 : if (pattern446 (x1,
1707 : E_SImode) != 0)
1708 : return -1;
1709 : return 3;
1710 :
1711 : default:
1712 : return -1;
1713 : }
1714 :
1715 : default:
1716 : return -1;
1717 : }
1718 : }
1719 :
1720 : int
1721 3663 : pattern460 (rtx x1)
1722 : {
1723 3663 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1724 3663 : rtx x2;
1725 3663 : int res ATTRIBUTE_UNUSED;
1726 3663 : x2 = XEXP (x1, 1);
1727 3663 : if (!rtx_equal_p (x2, operands[1]))
1728 : return -1;
1729 3246 : switch (GET_MODE (operands[0]))
1730 : {
1731 569 : case E_V8HFmode:
1732 569 : return pattern459 (x1,
1733 569 : E_V8HFmode); /* [-1, 0] */
1734 :
1735 1684 : case E_V4SFmode:
1736 1684 : if (pattern459 (x1,
1737 : E_V4SFmode) != 0)
1738 : return -1;
1739 : return 1;
1740 :
1741 993 : case E_V2DFmode:
1742 993 : if (pattern459 (x1,
1743 : E_V2DFmode) != 0)
1744 : return -1;
1745 : return 2;
1746 :
1747 : default:
1748 : return -1;
1749 : }
1750 : }
1751 :
1752 : int
1753 6229 : pattern470 (rtx x1, machine_mode i1, machine_mode i2)
1754 : {
1755 6229 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1756 6229 : rtx x2;
1757 6229 : int res ATTRIBUTE_UNUSED;
1758 6229 : if (!register_operand (operands[0], i1)
1759 6229 : || GET_MODE (x1) != i1)
1760 : return -1;
1761 5836 : x2 = XEXP (x1, 0);
1762 5836 : if (GET_MODE (x2) != i1
1763 5836 : || !nonimmediate_operand (operands[1], i1)
1764 5774 : || !nonimm_or_0_operand (operands[3], i1)
1765 11526 : || !register_operand (operands[4], i2))
1766 403 : return -1;
1767 : return 0;
1768 : }
1769 :
1770 : int
1771 7363 : pattern475 (rtx x1, machine_mode i1, machine_mode i2)
1772 : {
1773 7363 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1774 7363 : rtx x2;
1775 7363 : int res ATTRIBUTE_UNUSED;
1776 7363 : if (!register_operand (operands[0], i1)
1777 7363 : || GET_MODE (x1) != i1)
1778 : return -1;
1779 6899 : x2 = XEXP (x1, 0);
1780 6899 : if (GET_MODE (x2) != i1
1781 6899 : || !register_operand (operands[1], i1)
1782 6886 : || !vector_operand (operands[2], i1)
1783 6844 : || !nonimm_or_0_operand (operands[4], i1)
1784 13604 : || !register_operand (operands[5], i2))
1785 290 : return -1;
1786 : return 0;
1787 : }
1788 :
1789 : int
1790 4225 : pattern481 (rtx x1)
1791 : {
1792 4225 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1793 4225 : rtx x2, x3, x4, x5, x6, x7;
1794 4225 : int res ATTRIBUTE_UNUSED;
1795 4225 : x2 = XEXP (x1, 0);
1796 4225 : x3 = XVECEXP (x2, 0, 0);
1797 4225 : operands[1] = x3;
1798 4225 : x4 = XVECEXP (x2, 0, 1);
1799 4225 : operands[2] = x4;
1800 4225 : x5 = XVECEXP (x2, 0, 2);
1801 4225 : operands[3] = x5;
1802 4225 : if (!const_0_to_255_operand (operands[3], E_SImode))
1803 : return -1;
1804 4225 : x6 = XEXP (x1, 1);
1805 4225 : operands[4] = x6;
1806 4225 : x7 = XEXP (x1, 2);
1807 4225 : operands[5] = x7;
1808 4225 : switch (GET_MODE (operands[0]))
1809 : {
1810 400 : case E_V32HImode:
1811 400 : return pattern480 (x1,
1812 : E_V32HImode,
1813 400 : E_SImode); /* [-1, 0] */
1814 :
1815 509 : case E_V16SImode:
1816 509 : if (pattern480 (x1,
1817 : E_V16SImode,
1818 : E_HImode) != 0)
1819 : return -1;
1820 : return 1;
1821 :
1822 536 : case E_V8DImode:
1823 536 : if (pattern480 (x1,
1824 : E_V8DImode,
1825 : E_QImode) != 0)
1826 : return -1;
1827 : return 2;
1828 :
1829 434 : case E_V16HImode:
1830 434 : if (pattern480 (x1,
1831 : E_V16HImode,
1832 : E_HImode) != 0)
1833 : return -1;
1834 : return 3;
1835 :
1836 488 : case E_V8SImode:
1837 488 : if (pattern480 (x1,
1838 : E_V8SImode,
1839 : E_QImode) != 0)
1840 : return -1;
1841 : return 4;
1842 :
1843 502 : case E_V4DImode:
1844 502 : if (pattern480 (x1,
1845 : E_V4DImode,
1846 : E_QImode) != 0)
1847 : return -1;
1848 : return 5;
1849 :
1850 426 : case E_V8HImode:
1851 426 : if (pattern480 (x1,
1852 : E_V8HImode,
1853 : E_QImode) != 0)
1854 : return -1;
1855 : return 6;
1856 :
1857 458 : case E_V4SImode:
1858 458 : if (pattern480 (x1,
1859 : E_V4SImode,
1860 : E_QImode) != 0)
1861 : return -1;
1862 : return 7;
1863 :
1864 472 : case E_V2DImode:
1865 472 : if (pattern480 (x1,
1866 : E_V2DImode,
1867 : E_QImode) != 0)
1868 : return -1;
1869 : return 8;
1870 :
1871 : default:
1872 : return -1;
1873 : }
1874 : }
1875 :
1876 : int
1877 8 : pattern496 (rtx x1, machine_mode i1)
1878 : {
1879 8 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1880 8 : int res ATTRIBUTE_UNUSED;
1881 8 : if (!register_operand (operands[0], i1)
1882 8 : || GET_MODE (x1) != i1
1883 8 : || !register_operand (operands[1], i1)
1884 12 : || !nonimmediate_operand (operands[2], i1))
1885 6 : return -1;
1886 : return 0;
1887 : }
1888 :
1889 : int
1890 696 : pattern499 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
1891 : {
1892 696 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1893 696 : rtx x2, x3, x4;
1894 696 : int res ATTRIBUTE_UNUSED;
1895 696 : if (!register_operand (operands[0], i2)
1896 696 : || GET_MODE (x1) != i2)
1897 : return -1;
1898 678 : x2 = XEXP (x1, 0);
1899 678 : if (GET_MODE (x2) != i1)
1900 : return -1;
1901 678 : x3 = XEXP (x2, 0);
1902 678 : if (GET_MODE (x3) != i1
1903 678 : || !nonimmediate_operand (operands[1], i3))
1904 0 : return -1;
1905 678 : x4 = XEXP (x2, 1);
1906 678 : if (GET_MODE (x4) != i1
1907 678 : || !nonimm_or_0_operand (operands[2], i2)
1908 1351 : || !const0_operand (operands[4], i1))
1909 5 : return -1;
1910 : return 0;
1911 : }
1912 :
1913 : int
1914 0 : pattern505 (rtx x1)
1915 : {
1916 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1917 0 : rtx x2, x3, x4, x5, x6, x7;
1918 0 : int res ATTRIBUTE_UNUSED;
1919 0 : x2 = XEXP (x1, 0);
1920 0 : x3 = XEXP (x2, 0);
1921 0 : if (GET_MODE (x3) != E_V2SImode)
1922 : return -1;
1923 0 : x4 = XEXP (x1, 1);
1924 0 : if (GET_CODE (x4) != CONST_VECTOR
1925 0 : || XVECLEN (x4, 0) != 2
1926 0 : || GET_MODE (x4) != E_V2SImode)
1927 : return -1;
1928 0 : x5 = XVECEXP (x4, 0, 0);
1929 0 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1930 : return -1;
1931 0 : x6 = XVECEXP (x4, 0, 1);
1932 0 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
1933 0 : || !register_operand (operands[0], E_V4SImode)
1934 0 : || GET_MODE (x1) != E_V4SImode
1935 0 : || GET_MODE (x2) != E_V2SImode)
1936 0 : return -1;
1937 0 : x7 = XEXP (x3, 0);
1938 0 : operands[1] = x7;
1939 0 : if (!nonimmediate_operand (operands[1], E_V2DFmode))
1940 : return -1;
1941 0 : return pattern504 (x2); /* [-1, 1] */
1942 : }
1943 :
1944 : int
1945 720 : pattern510 (rtx x1, machine_mode i1, machine_mode i2)
1946 : {
1947 720 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1948 720 : rtx x2, x3, x4;
1949 720 : int res ATTRIBUTE_UNUSED;
1950 720 : if (!register_operand (operands[0], i2)
1951 720 : || GET_MODE (x1) != i2)
1952 : return -1;
1953 720 : x2 = XEXP (x1, 0);
1954 720 : if (GET_MODE (x2) != i1)
1955 : return -1;
1956 720 : x3 = XEXP (x2, 0);
1957 720 : if (GET_MODE (x3) != i1)
1958 : return -1;
1959 720 : x4 = XEXP (x2, 1);
1960 720 : if (GET_MODE (x4) != i1)
1961 : return -1;
1962 720 : switch (GET_MODE (operands[1]))
1963 : {
1964 360 : case E_V4SImode:
1965 360 : if (!register_operand (operands[1], E_V4SImode))
1966 : return -1;
1967 : return 0;
1968 :
1969 360 : case E_V4DImode:
1970 360 : if (!register_operand (operands[1], E_V4DImode))
1971 : return -1;
1972 : return 1;
1973 :
1974 : default:
1975 : return -1;
1976 : }
1977 : }
1978 :
1979 : int
1980 251 : pattern518 (rtx x1)
1981 : {
1982 251 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1983 251 : int res ATTRIBUTE_UNUSED;
1984 251 : if (!register_operand (operands[0], E_V16HFmode)
1985 251 : || GET_MODE (x1) != E_V16HFmode)
1986 : return -1;
1987 221 : switch (GET_MODE (operands[1]))
1988 : {
1989 138 : case E_V16HImode:
1990 138 : if (!vector_operand (operands[1], E_V16HImode))
1991 : return -1;
1992 : return 0;
1993 :
1994 79 : case E_V16SImode:
1995 79 : if (!vector_operand (operands[1], E_V16SImode))
1996 : return -1;
1997 : return 1;
1998 :
1999 : default:
2000 : return -1;
2001 : }
2002 : }
2003 :
2004 : int
2005 8 : pattern522 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
2006 : {
2007 8 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2008 8 : rtx x2, x3;
2009 8 : int res ATTRIBUTE_UNUSED;
2010 8 : if (!register_operand (operands[0], i1)
2011 8 : || GET_MODE (x1) != i1)
2012 : return -1;
2013 8 : x2 = XEXP (x1, 0);
2014 8 : if (GET_MODE (x2) != i3)
2015 : return -1;
2016 8 : x3 = XEXP (x2, 0);
2017 8 : if (GET_MODE (x3) != i1
2018 8 : || !nonimmediate_operand (operands[1], i2)
2019 8 : || !const0_operand (operands[2], i2)
2020 16 : || !const0_operand (operands[3], i1))
2021 0 : return -1;
2022 : return 0;
2023 : }
2024 :
2025 : int
2026 26764 : pattern531 (rtx x1)
2027 : {
2028 26764 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2029 26764 : rtx x2, x3, x4;
2030 26764 : int res ATTRIBUTE_UNUSED;
2031 26764 : x2 = XEXP (x1, 0);
2032 26764 : x3 = XEXP (x2, 1);
2033 26764 : operands[2] = x3;
2034 26764 : x4 = XEXP (x1, 1);
2035 26764 : operands[3] = x4;
2036 26764 : switch (GET_CODE (x2))
2037 : {
2038 18653 : case GT:
2039 18653 : switch (GET_MODE (operands[0]))
2040 : {
2041 21 : case E_V4DImode:
2042 21 : return pattern530 (x1,
2043 21 : E_V4DImode); /* [-1, 0] */
2044 :
2045 116 : case E_V2DImode:
2046 116 : if (pattern530 (x1,
2047 : E_V2DImode) != 0)
2048 : return -1;
2049 : return 1;
2050 :
2051 : default:
2052 : return -1;
2053 : }
2054 :
2055 : case LT:
2056 : return 2;
2057 :
2058 : default:
2059 : return -1;
2060 : }
2061 : }
2062 :
2063 : int
2064 1316229 : pattern535 (rtx x1)
2065 : {
2066 1316229 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2067 1316229 : rtx x2, x3, x4, x5;
2068 1316229 : int res ATTRIBUTE_UNUSED;
2069 1316229 : x2 = XEXP (x1, 0);
2070 1316229 : x3 = XEXP (x2, 0);
2071 1316229 : operands[1] = x3;
2072 1316229 : x4 = XEXP (x2, 1);
2073 1316229 : operands[2] = x4;
2074 1316229 : x5 = XEXP (x1, 1);
2075 1316229 : switch (GET_CODE (x5))
2076 : {
2077 73034 : case AND:
2078 73034 : return pattern533 (x1); /* [-1, 11] */
2079 :
2080 314 : case IOR:
2081 314 : res = pattern533 (x1);
2082 314 : if (res >= 0)
2083 124 : return res + 12; /* [12, 23] */
2084 : return -1;
2085 :
2086 1619 : case XOR:
2087 1619 : res = pattern533 (x1);
2088 1619 : if (res >= 0)
2089 72 : return res + 24; /* [24, 35] */
2090 : return -1;
2091 :
2092 761782 : case REG:
2093 761782 : case SUBREG:
2094 761782 : case MEM:
2095 761782 : case NOT:
2096 761782 : operands[3] = x5;
2097 761782 : switch (GET_MODE (operands[0]))
2098 : {
2099 19 : case E_V64QImode:
2100 19 : if (pattern534 (x1,
2101 : E_V64QImode) != 0)
2102 : return -1;
2103 : return 36;
2104 :
2105 468 : case E_V32QImode:
2106 468 : if (pattern534 (x1,
2107 : E_V32QImode) != 0)
2108 : return -1;
2109 : return 37;
2110 :
2111 95704 : case E_V16QImode:
2112 95704 : if (pattern534 (x1,
2113 : E_V16QImode) != 0)
2114 : return -1;
2115 : return 38;
2116 :
2117 0 : case E_V32HImode:
2118 0 : if (pattern534 (x1,
2119 : E_V32HImode) != 0)
2120 : return -1;
2121 : return 39;
2122 :
2123 140 : case E_V16HImode:
2124 140 : if (pattern534 (x1,
2125 : E_V16HImode) != 0)
2126 : return -1;
2127 : return 40;
2128 :
2129 4838 : case E_V8HImode:
2130 4838 : if (pattern534 (x1,
2131 : E_V8HImode) != 0)
2132 : return -1;
2133 : return 41;
2134 :
2135 8 : case E_V16SImode:
2136 8 : if (pattern534 (x1,
2137 : E_V16SImode) != 0)
2138 : return -1;
2139 : return 42;
2140 :
2141 5534 : case E_V8SImode:
2142 5534 : if (pattern534 (x1,
2143 : E_V8SImode) != 0)
2144 : return -1;
2145 : return 43;
2146 :
2147 44836 : case E_V4SImode:
2148 44836 : if (pattern534 (x1,
2149 : E_V4SImode) != 0)
2150 : return -1;
2151 : return 44;
2152 :
2153 0 : case E_V8DImode:
2154 0 : if (pattern534 (x1,
2155 : E_V8DImode) != 0)
2156 : return -1;
2157 : return 45;
2158 :
2159 529 : case E_V4DImode:
2160 529 : if (pattern534 (x1,
2161 : E_V4DImode) != 0)
2162 : return -1;
2163 : return 46;
2164 :
2165 14003 : case E_V2DImode:
2166 14003 : if (pattern534 (x1,
2167 : E_V2DImode) != 0)
2168 : return -1;
2169 : return 47;
2170 :
2171 : default:
2172 : return -1;
2173 : }
2174 :
2175 : default:
2176 : return -1;
2177 : }
2178 : }
2179 :
2180 : int
2181 1109 : pattern549 (rtx x1)
2182 : {
2183 1109 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2184 1109 : rtx x2, x3, x4, x5, x6, x7;
2185 1109 : int res ATTRIBUTE_UNUSED;
2186 1109 : x2 = XVECEXP (x1, 0, 0);
2187 1109 : x3 = XEXP (x2, 0);
2188 1109 : operands[0] = x3;
2189 1109 : x4 = XEXP (x2, 1);
2190 1109 : x5 = XVECEXP (x4, 0, 0);
2191 1109 : operands[1] = x5;
2192 1109 : x6 = XVECEXP (x1, 0, 1);
2193 1109 : switch (GET_CODE (x6))
2194 : {
2195 1107 : case CLOBBER:
2196 1107 : x7 = XEXP (x6, 0);
2197 1107 : if (GET_CODE (x7) != REG
2198 1107 : || REGNO (x7) != 17
2199 2214 : || GET_MODE (x7) != E_CCmode)
2200 : return -1;
2201 1107 : switch (GET_MODE (operands[0]))
2202 : {
2203 387 : case E_SImode:
2204 387 : if (!register_operand (operands[0], E_SImode)
2205 387 : || GET_MODE (x4) != E_SImode
2206 774 : || !nonimmediate_operand (operands[1], E_SImode))
2207 2 : return -1;
2208 : return 0;
2209 :
2210 382 : case E_DImode:
2211 382 : if (!register_operand (operands[0], E_DImode)
2212 382 : || GET_MODE (x4) != E_DImode
2213 764 : || !nonimmediate_operand (operands[1], E_DImode))
2214 2 : return -1;
2215 : return 1;
2216 :
2217 338 : case E_HImode:
2218 338 : if (!register_operand (operands[0], E_HImode)
2219 338 : || GET_MODE (x4) != E_HImode
2220 676 : || !nonimmediate_operand (operands[1], E_HImode))
2221 3 : return -1;
2222 : return 2;
2223 :
2224 : default:
2225 : return -1;
2226 : }
2227 :
2228 0 : case UNSPEC:
2229 0 : if (XVECLEN (x6, 0) != 1
2230 0 : || XINT (x6, 1) != 39)
2231 : return -1;
2232 0 : res = pattern548 (x1);
2233 0 : if (res >= 0)
2234 0 : return res + 3; /* [3, 4] */
2235 : return -1;
2236 :
2237 : default:
2238 : return -1;
2239 : }
2240 : }
2241 :
2242 : int
2243 2168732 : pattern567 (rtx x1, machine_mode i1)
2244 : {
2245 2168732 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2246 2168732 : int res ATTRIBUTE_UNUSED;
2247 2168732 : if (!nonimmediate_operand (operands[0], i1)
2248 2168093 : || GET_MODE (x1) != i1
2249 2168093 : || !nonimmediate_operand (operands[1], i1)
2250 4270558 : || !general_operand (operands[2], i1))
2251 68962 : return -1;
2252 : return 0;
2253 : }
2254 :
2255 : int
2256 16650 : pattern570 (rtx x1, machine_mode i1)
2257 : {
2258 16650 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2259 16650 : int res ATTRIBUTE_UNUSED;
2260 16650 : if (!register_operand (operands[0], i1)
2261 16618 : || GET_MODE (x1) != i1
2262 16618 : || !register_operand (operands[1], i1)
2263 32877 : || !register_operand (operands[2], i1))
2264 5430 : return -1;
2265 : return 0;
2266 : }
2267 :
2268 : int
2269 4515 : pattern575 (rtx x1)
2270 : {
2271 4515 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2272 4515 : rtx x2, x3;
2273 4515 : int res ATTRIBUTE_UNUSED;
2274 4515 : if (!ix86_carry_flag_operator (operands[1], E_VOIDmode))
2275 : return -1;
2276 3706 : x2 = XEXP (x1, 0);
2277 3706 : if (GET_CODE (x2) != REG
2278 3706 : || REGNO (x2) != 17)
2279 : return -1;
2280 2638 : x3 = XEXP (x1, 1);
2281 2638 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2282 0 : return -1;
2283 : return 0;
2284 : }
2285 :
2286 : int
2287 210258 : pattern580 (rtx x1)
2288 : {
2289 210258 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2290 210258 : rtx x2, x3, x4, x5;
2291 210258 : int res ATTRIBUTE_UNUSED;
2292 210258 : x2 = XEXP (x1, 0);
2293 210258 : x3 = XEXP (x2, 0);
2294 210258 : x4 = XEXP (x3, 0);
2295 210258 : operands[1] = x4;
2296 210258 : x5 = XEXP (x3, 1);
2297 210258 : operands[2] = x5;
2298 210258 : if (!const123_operand (operands[2], E_VOIDmode))
2299 : return -1;
2300 177702 : return pattern433 (x1); /* [-1, 1] */
2301 : }
2302 :
2303 : int
2304 8825 : pattern585 (rtx x1)
2305 : {
2306 8825 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2307 8825 : rtx x2, x3, x4, x5, x6, x7, x8;
2308 8825 : int res ATTRIBUTE_UNUSED;
2309 8825 : x2 = XEXP (x1, 1);
2310 8825 : if (GET_MODE (x2) != E_DImode)
2311 : return -1;
2312 4368 : x3 = XEXP (x2, 0);
2313 4368 : if (GET_CODE (x3) != XOR
2314 6 : || GET_MODE (x3) != E_SImode)
2315 : return -1;
2316 6 : x4 = XEXP (x3, 0);
2317 6 : if (GET_CODE (x4) != MINUS
2318 6 : || GET_MODE (x4) != E_SImode)
2319 : return -1;
2320 6 : x5 = XEXP (x4, 0);
2321 6 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 31])
2322 : return -1;
2323 6 : x6 = XEXP (x4, 1);
2324 6 : if (GET_CODE (x6) != CLZ
2325 6 : || GET_MODE (x6) != E_SImode)
2326 : return -1;
2327 6 : x7 = XEXP (x3, 1);
2328 6 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 31]
2329 6 : || !register_operand (operands[0], E_DImode)
2330 6 : || GET_MODE (x1) != E_DImode
2331 12 : || !const_int_operand (operands[2], E_DImode))
2332 2 : return -1;
2333 4 : x8 = XEXP (x6, 0);
2334 4 : operands[1] = x8;
2335 4 : if (!nonimmediate_operand (operands[1], E_SImode))
2336 : return -1;
2337 : return 0;
2338 : }
2339 :
2340 : int
2341 66 : pattern594 (rtx x1)
2342 : {
2343 66 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2344 66 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2345 66 : rtx x10;
2346 66 : int res ATTRIBUTE_UNUSED;
2347 66 : x2 = XVECEXP (x1, 0, 0);
2348 66 : x3 = XEXP (x2, 1);
2349 66 : x4 = XEXP (x3, 0);
2350 66 : operands[2] = x4;
2351 66 : x5 = XEXP (x3, 1);
2352 66 : operands[3] = x5;
2353 66 : x6 = XVECEXP (x1, 0, 1);
2354 66 : x7 = XEXP (x6, 0);
2355 66 : operands[1] = x7;
2356 66 : x8 = XEXP (x6, 1);
2357 66 : x9 = XEXP (x8, 0);
2358 66 : if (!rtx_equal_p (x9, operands[2]))
2359 : return -1;
2360 66 : x10 = XEXP (x8, 1);
2361 66 : if (!rtx_equal_p (x10, operands[3]))
2362 : return -1;
2363 66 : switch (GET_MODE (operands[0]))
2364 : {
2365 28 : case E_SImode:
2366 28 : return pattern391 (x1,
2367 28 : E_SImode); /* [-1, 0] */
2368 :
2369 38 : case E_DImode:
2370 38 : if (pattern391 (x1,
2371 : E_DImode) != 0)
2372 : return -1;
2373 : return 1;
2374 :
2375 : default:
2376 : return -1;
2377 : }
2378 : }
2379 :
2380 : int
2381 205 : pattern603 (rtx x1)
2382 : {
2383 205 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2384 205 : rtx x2, x3;
2385 205 : int res ATTRIBUTE_UNUSED;
2386 205 : x2 = XVECEXP (x1, 0, 1);
2387 205 : if (GET_CODE (x2) != SUBREG
2388 205 : || maybe_ne (SUBREG_BYTE (x2), 0))
2389 : return -1;
2390 14 : x3 = XVECEXP (x1, 0, 0);
2391 14 : operands[1] = x3;
2392 14 : return pattern602 (x1); /* [-1, 2] */
2393 : }
2394 :
2395 : int
2396 291917 : pattern607 (rtx x1)
2397 : {
2398 291917 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2399 291917 : rtx x2, x3, x4, x5;
2400 291917 : int res ATTRIBUTE_UNUSED;
2401 291917 : if (GET_CODE (x1) != SET)
2402 : return -1;
2403 285439 : x2 = XEXP (x1, 1);
2404 285439 : if (!commutative_operator (x2, E_VOIDmode))
2405 : return -1;
2406 89535 : operands[3] = x2;
2407 89535 : x3 = XEXP (x2, 1);
2408 89535 : operands[2] = x3;
2409 89535 : if (!memory_operand (operands[2], E_VOIDmode))
2410 : return -1;
2411 17929 : x4 = XEXP (x2, 0);
2412 17929 : if (!rtx_equal_p (x4, operands[0]))
2413 : return -1;
2414 14627 : x5 = XEXP (x1, 0);
2415 14627 : if (!rtx_equal_p (x5, operands[0]))
2416 : return -1;
2417 : return 0;
2418 : }
2419 :
2420 : int
2421 114 : pattern612 (rtx x1, machine_mode i1)
2422 : {
2423 114 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2424 114 : rtx x2, x3, x4, x5;
2425 114 : int res ATTRIBUTE_UNUSED;
2426 114 : x2 = XVECEXP (x1, 0, 0);
2427 114 : x3 = XEXP (x2, 0);
2428 114 : if (GET_MODE (x3) != i1
2429 114 : || !vector_operand (operands[0], i1)
2430 102 : || !const0_operand (operands[1], i1)
2431 126 : || !const0_operand (operands[2], i1))
2432 102 : return -1;
2433 12 : x4 = XVECEXP (x1, 0, 1);
2434 12 : if (GET_MODE (x4) != i1)
2435 : return -1;
2436 12 : x5 = XEXP (x4, 0);
2437 12 : if (GET_MODE (x5) != i1)
2438 : return -1;
2439 : return 0;
2440 : }
2441 :
2442 : int
2443 306433 : pattern617 (rtx x1)
2444 : {
2445 306433 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2446 306433 : rtx x2;
2447 306433 : int res ATTRIBUTE_UNUSED;
2448 306433 : x2 = XEXP (x1, 1);
2449 306433 : switch (GET_CODE (x2))
2450 : {
2451 13435 : case CONST_INT:
2452 13435 : case CONST_WIDE_INT:
2453 13435 : operands[3] = x2;
2454 13435 : switch (GET_MODE (operands[0]))
2455 : {
2456 459 : case E_QImode:
2457 459 : return pattern614 (x1,
2458 459 : E_QImode); /* [-1, 0] */
2459 :
2460 1999 : case E_HImode:
2461 1999 : if (pattern614 (x1,
2462 : E_HImode) != 0)
2463 : return -1;
2464 : return 1;
2465 :
2466 1 : case E_TImode:
2467 1 : if (pattern615 (x1,
2468 : E_TImode) != 0)
2469 : return -1;
2470 : return 2;
2471 :
2472 : default:
2473 : return -1;
2474 : }
2475 :
2476 32460 : case ZERO_EXTEND:
2477 32460 : if (pattern616 (x1,
2478 : E_DImode,
2479 : E_TImode) != 0)
2480 : return -1;
2481 : return 3;
2482 :
2483 : default:
2484 : return -1;
2485 : }
2486 : }
2487 :
2488 : int
2489 47 : pattern628 (rtx x1, machine_mode i1, machine_mode i2)
2490 : {
2491 47 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2492 47 : rtx x2;
2493 47 : int res ATTRIBUTE_UNUSED;
2494 47 : if (!register_operand (operands[0], i1)
2495 47 : || GET_MODE (x1) != i1)
2496 : return -1;
2497 47 : x2 = XEXP (x1, 0);
2498 47 : if (GET_MODE (x2) != i2
2499 47 : || !nonimmediate_operand (operands[1], i2))
2500 28 : return -1;
2501 : return 0;
2502 : }
2503 :
2504 : int
2505 1056603 : pattern633 (rtx x1)
2506 : {
2507 1056603 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2508 1056603 : rtx x2, x3;
2509 1056603 : int res ATTRIBUTE_UNUSED;
2510 1056603 : x2 = XEXP (x1, 1);
2511 1056603 : if (GET_CODE (x2) != SUBREG
2512 300209 : || maybe_ne (SUBREG_BYTE (x2), 0)
2513 1356812 : || GET_MODE (x2) != E_QImode)
2514 : return -1;
2515 298222 : x3 = XEXP (x2, 0);
2516 298222 : if (GET_CODE (x3) != AND
2517 298222 : || pattern291 (x1,
2518 : E_DImode) != 0)
2519 297024 : return -1;
2520 : return 0;
2521 : }
2522 :
2523 : int
2524 3446 : pattern640 (rtx x1)
2525 : {
2526 3446 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2527 3446 : rtx x2, x3, x4;
2528 3446 : int res ATTRIBUTE_UNUSED;
2529 3446 : x2 = XEXP (x1, 0);
2530 3446 : x3 = XVECEXP (x2, 0, 0);
2531 3446 : operands[1] = x3;
2532 3446 : x4 = XEXP (x1, 2);
2533 3446 : switch (GET_CODE (x4))
2534 : {
2535 2878 : case REG:
2536 2878 : case SUBREG:
2537 2878 : operands[3] = x4;
2538 2878 : switch (GET_MODE (operands[0]))
2539 : {
2540 482 : case E_V16SFmode:
2541 482 : return pattern638 (x1,
2542 : E_V16SFmode,
2543 482 : E_HImode); /* [-1, 0] */
2544 :
2545 480 : case E_V8SFmode:
2546 480 : if (pattern638 (x1,
2547 : E_V8SFmode,
2548 : E_QImode) != 0)
2549 : return -1;
2550 : return 1;
2551 :
2552 473 : case E_V4SFmode:
2553 473 : if (pattern638 (x1,
2554 : E_V4SFmode,
2555 : E_QImode) != 0)
2556 : return -1;
2557 : return 2;
2558 :
2559 486 : case E_V8DFmode:
2560 486 : if (pattern638 (x1,
2561 : E_V8DFmode,
2562 : E_QImode) != 0)
2563 : return -1;
2564 : return 3;
2565 :
2566 480 : case E_V4DFmode:
2567 480 : if (pattern638 (x1,
2568 : E_V4DFmode,
2569 : E_QImode) != 0)
2570 : return -1;
2571 : return 4;
2572 :
2573 477 : case E_V2DFmode:
2574 477 : if (pattern638 (x1,
2575 : E_V2DFmode,
2576 : E_QImode) != 0)
2577 : return -1;
2578 : return 5;
2579 :
2580 : default:
2581 : return -1;
2582 : }
2583 :
2584 528 : case CONST_INT:
2585 528 : if (XWINT (x4, 0) != 1L)
2586 : return -1;
2587 382 : switch (GET_MODE (operands[0]))
2588 : {
2589 186 : case E_V4SFmode:
2590 186 : if (pattern639 (x1,
2591 : E_V4SFmode) != 0)
2592 : return -1;
2593 : return 6;
2594 :
2595 196 : case E_V2DFmode:
2596 196 : if (pattern639 (x1,
2597 : E_V2DFmode) != 0)
2598 : return -1;
2599 : return 7;
2600 :
2601 : default:
2602 : return -1;
2603 : }
2604 :
2605 : default:
2606 : return -1;
2607 : }
2608 : }
2609 :
2610 : int
2611 374 : pattern656 (rtx x1)
2612 : {
2613 374 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2614 374 : int res ATTRIBUTE_UNUSED;
2615 374 : if (!register_operand (operands[0], E_V2DImode)
2616 374 : || GET_MODE (x1) != E_V2DImode)
2617 : return -1;
2618 344 : switch (GET_MODE (operands[1]))
2619 : {
2620 110 : case E_V8HFmode:
2621 110 : if (!nonimmediate_operand (operands[1], E_V8HFmode))
2622 : return -1;
2623 : return 0;
2624 :
2625 116 : case E_V2DFmode:
2626 116 : if (!vector_operand (operands[1], E_V2DFmode))
2627 : return -1;
2628 : return 1;
2629 :
2630 118 : case E_V4SFmode:
2631 118 : if (!nonimmediate_operand (operands[1], E_V4SFmode))
2632 : return -1;
2633 : return 2;
2634 :
2635 : default:
2636 : return -1;
2637 : }
2638 : }
2639 :
2640 : int
2641 0 : pattern664 (rtx x1)
2642 : {
2643 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2644 0 : rtx x2, x3, x4, x5, x6, x7;
2645 0 : int res ATTRIBUTE_UNUSED;
2646 0 : x2 = XVECEXP (x1, 0, 0);
2647 0 : x3 = XEXP (x2, 0);
2648 0 : x4 = XEXP (x3, 0);
2649 0 : operands[1] = x4;
2650 0 : x5 = XEXP (x2, 1);
2651 0 : operands[2] = x5;
2652 0 : x6 = XEXP (x2, 2);
2653 0 : operands[3] = x6;
2654 0 : x7 = XVECEXP (x1, 0, 1);
2655 0 : operands[4] = x7;
2656 0 : if (!const48_operand (operands[4], E_SImode))
2657 : return -1;
2658 0 : switch (GET_MODE (operands[0]))
2659 : {
2660 0 : case E_V8HImode:
2661 0 : return pattern663 (x1,
2662 : E_QImode,
2663 : E_V8HImode,
2664 0 : E_V8HFmode); /* [-1, 0] */
2665 :
2666 0 : case E_V16HImode:
2667 0 : if (pattern663 (x1,
2668 : E_HImode,
2669 : E_V16HImode,
2670 : E_V16HFmode) != 0)
2671 : return -1;
2672 : return 1;
2673 :
2674 0 : case E_V32HImode:
2675 0 : if (pattern663 (x1,
2676 : E_SImode,
2677 : E_V32HImode,
2678 : E_V32HFmode) != 0)
2679 : return -1;
2680 : return 2;
2681 :
2682 0 : case E_V8SImode:
2683 0 : if (!register_operand (operands[0], E_V8SImode)
2684 0 : || GET_MODE (x1) != E_V8SImode
2685 0 : || GET_MODE (x2) != E_V8SImode
2686 0 : || GET_MODE (x3) != E_V8SImode
2687 0 : || !nonimm_or_0_operand (operands[2], E_V8SImode)
2688 0 : || !register_operand (operands[3], E_QImode))
2689 0 : return -1;
2690 0 : switch (GET_MODE (operands[1]))
2691 : {
2692 0 : case E_V8HFmode:
2693 0 : if (!register_operand (operands[1], E_V8HFmode))
2694 : return -1;
2695 : return 3;
2696 :
2697 0 : case E_V8DFmode:
2698 0 : if (!register_operand (operands[1], E_V8DFmode))
2699 : return -1;
2700 : return 4;
2701 :
2702 : default:
2703 : return -1;
2704 : }
2705 :
2706 0 : case E_V16SImode:
2707 0 : if (!register_operand (operands[0], E_V16SImode)
2708 0 : || GET_MODE (x1) != E_V16SImode
2709 0 : || GET_MODE (x2) != E_V16SImode
2710 0 : || GET_MODE (x3) != E_V16SImode
2711 0 : || !nonimm_or_0_operand (operands[2], E_V16SImode)
2712 0 : || !register_operand (operands[3], E_HImode))
2713 0 : return -1;
2714 0 : switch (GET_MODE (operands[1]))
2715 : {
2716 0 : case E_V16HFmode:
2717 0 : if (!register_operand (operands[1], E_V16HFmode))
2718 : return -1;
2719 : return 5;
2720 :
2721 0 : case E_V16SFmode:
2722 0 : if (!register_operand (operands[1], E_V16SFmode))
2723 : return -1;
2724 : return 6;
2725 :
2726 : default:
2727 : return -1;
2728 : }
2729 :
2730 0 : case E_V8DImode:
2731 0 : if (!register_operand (operands[0], E_V8DImode)
2732 0 : || GET_MODE (x1) != E_V8DImode
2733 0 : || GET_MODE (x2) != E_V8DImode
2734 0 : || GET_MODE (x3) != E_V8DImode
2735 0 : || !nonimm_or_0_operand (operands[2], E_V8DImode)
2736 0 : || !register_operand (operands[3], E_QImode))
2737 0 : return -1;
2738 0 : switch (GET_MODE (operands[1]))
2739 : {
2740 0 : case E_V8HFmode:
2741 0 : if (!register_operand (operands[1], E_V8HFmode))
2742 : return -1;
2743 : return 7;
2744 :
2745 0 : case E_V8DFmode:
2746 0 : if (!register_operand (operands[1], E_V8DFmode))
2747 : return -1;
2748 : return 8;
2749 :
2750 0 : case E_V8SFmode:
2751 0 : if (!register_operand (operands[1], E_V8SFmode))
2752 : return -1;
2753 : return 9;
2754 :
2755 : default:
2756 : return -1;
2757 : }
2758 :
2759 : default:
2760 : return -1;
2761 : }
2762 : }
2763 :
2764 : int
2765 200783 : pattern696 (rtx x1, rtx_code i1)
2766 : {
2767 200783 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2768 200783 : rtx x2, x3, x4, x5;
2769 200783 : int res ATTRIBUTE_UNUSED;
2770 200783 : x2 = XVECEXP (x1, 0, 0);
2771 200783 : x3 = XEXP (x2, 1);
2772 200783 : x4 = XEXP (x3, 1);
2773 200783 : if (GET_CODE (x4) != SIGN_EXTEND)
2774 : return -1;
2775 198633 : x5 = XEXP (x4, 0);
2776 198633 : if (GET_CODE (x5) != i1
2777 198633 : || pattern695 (x1,
2778 : i1) != 0)
2779 9239 : return -1;
2780 : return 0;
2781 : }
2782 :
2783 : int
2784 9178 : pattern700 (rtx x1, machine_mode i1)
2785 : {
2786 9178 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2787 9178 : rtx x2;
2788 9178 : int res ATTRIBUTE_UNUSED;
2789 9178 : if (!nonimmediate_operand (operands[0], i1)
2790 9178 : || GET_MODE (x1) != i1
2791 18356 : || !x86_64_general_operand (operands[1], i1))
2792 2 : return -1;
2793 9176 : x2 = XEXP (x1, 1);
2794 9176 : if (GET_MODE (x2) != i1)
2795 : return -1;
2796 : return 0;
2797 : }
2798 :
2799 : int
2800 225 : pattern704 (rtx x1)
2801 : {
2802 225 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2803 225 : rtx x2, x3, x4;
2804 225 : int res ATTRIBUTE_UNUSED;
2805 225 : if (GET_MODE (x1) != E_SImode)
2806 : return -1;
2807 219 : x2 = XEXP (x1, 0);
2808 219 : if (GET_CODE (x2) != ASHIFT
2809 73 : || GET_MODE (x2) != E_SImode)
2810 : return -1;
2811 73 : x3 = XEXP (x2, 0);
2812 73 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
2813 : return -1;
2814 27 : x4 = XEXP (x1, 1);
2815 27 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + -1])
2816 0 : return -1;
2817 : return 0;
2818 : }
2819 :
2820 : int
2821 8418 : pattern710 (rtx x1)
2822 : {
2823 8418 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2824 8418 : rtx x2, x3, x4, x5;
2825 8418 : int res ATTRIBUTE_UNUSED;
2826 8418 : x2 = XVECEXP (x1, 0, 1);
2827 8418 : x3 = XEXP (x2, 0);
2828 8418 : if (GET_CODE (x3) != REG
2829 8418 : || REGNO (x3) != 17
2830 16836 : || GET_MODE (x3) != E_CCmode)
2831 : return -1;
2832 8418 : x4 = XVECEXP (x1, 0, 0);
2833 8418 : x5 = XEXP (x4, 1);
2834 8418 : return pattern408 (x5); /* [-1, 1] */
2835 : }
2836 :
2837 : int
2838 264 : pattern718 (rtx x1)
2839 : {
2840 264 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2841 264 : rtx x2, x3, x4, x5, x6, x7, x8;
2842 264 : int res ATTRIBUTE_UNUSED;
2843 264 : x2 = XVECEXP (x1, 0, 0);
2844 264 : x3 = XEXP (x2, 0);
2845 264 : if (GET_CODE (x3) != REG
2846 264 : || REGNO (x3) != 17
2847 528 : || GET_MODE (x3) != E_CCmode)
2848 : return -1;
2849 264 : x4 = XVECEXP (x1, 0, 1);
2850 264 : if (GET_CODE (x4) != CLOBBER)
2851 : return -1;
2852 264 : x5 = XVECEXP (x1, 0, 2);
2853 264 : if (GET_CODE (x5) != CLOBBER)
2854 : return -1;
2855 264 : x6 = XEXP (x2, 1);
2856 264 : x7 = XVECEXP (x6, 0, 0);
2857 264 : operands[2] = x7;
2858 264 : if (!register_operand (operands[2], E_V16QImode))
2859 : return -1;
2860 264 : x8 = XVECEXP (x6, 0, 1);
2861 264 : operands[3] = x8;
2862 264 : return 0;
2863 : }
2864 :
2865 : int
2866 8350 : pattern722 (rtx x1, machine_mode i1, machine_mode i2)
2867 : {
2868 8350 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2869 8350 : rtx x2, x3;
2870 8350 : int res ATTRIBUTE_UNUSED;
2871 8350 : if (!nonimmediate_operand (operands[0], i1)
2872 8350 : || GET_MODE (x1) != i1)
2873 : return -1;
2874 8334 : x2 = XEXP (x1, 0);
2875 8334 : if (GET_MODE (x2) != i1)
2876 : return -1;
2877 8334 : x3 = XEXP (x2, 0);
2878 8334 : if (GET_MODE (x3) != i1
2879 8334 : || !nonimmediate_operand (operands[1], i2)
2880 11854 : || !const_scalar_int_operand (operands[3], i1))
2881 4814 : return -1;
2882 : return 0;
2883 : }
2884 :
2885 : int
2886 1687 : pattern732 (rtx x1, rtx_code i1)
2887 : {
2888 1687 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2889 1687 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2890 1687 : rtx x10;
2891 1687 : int res ATTRIBUTE_UNUSED;
2892 1687 : x2 = XEXP (x1, 0);
2893 1687 : x3 = XEXP (x2, 1);
2894 1687 : if (GET_CODE (x3) != i1)
2895 : return -1;
2896 476 : x4 = XEXP (x1, 1);
2897 476 : if (XVECLEN (x4, 0) < 1)
2898 : return -1;
2899 476 : operands[5] = x4;
2900 476 : if (!addsub_vs_parallel (operands[5], E_VOIDmode))
2901 : return -1;
2902 8 : operands[7] = x1;
2903 8 : x5 = XEXP (x2, 0);
2904 8 : x6 = XEXP (x5, 0);
2905 8 : operands[1] = x6;
2906 8 : x7 = XEXP (x5, 1);
2907 8 : operands[2] = x7;
2908 8 : x8 = XEXP (x3, 0);
2909 8 : operands[3] = x8;
2910 8 : x9 = XEXP (x3, 1);
2911 8 : operands[4] = x9;
2912 8 : x10 = XVECEXP (x4, 0, 0);
2913 8 : operands[6] = x10;
2914 8 : if (!const_int_operand (operands[6], E_VOIDmode))
2915 : return -1;
2916 8 : switch (GET_MODE (operands[0]))
2917 : {
2918 : case E_V8SFmode:
2919 : return 0;
2920 :
2921 0 : case E_V4SFmode:
2922 0 : return 1;
2923 :
2924 0 : case E_V4DFmode:
2925 0 : return 2;
2926 :
2927 0 : case E_V2DFmode:
2928 0 : return 3;
2929 :
2930 : default:
2931 : return -1;
2932 : }
2933 : }
2934 :
2935 : int
2936 270 : pattern742 (rtx x1, machine_mode i1)
2937 : {
2938 270 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2939 270 : rtx x2, x3;
2940 270 : int res ATTRIBUTE_UNUSED;
2941 270 : if (!register_operand (operands[0], i1)
2942 270 : || GET_MODE (x1) != i1
2943 270 : || !register_operand (operands[1], i1)
2944 432 : || !register_operand (operands[2], i1))
2945 180 : return -1;
2946 90 : x2 = XVECEXP (x1, 0, 2);
2947 90 : if (GET_MODE (x2) != i1)
2948 : return -1;
2949 90 : x3 = XEXP (x2, 0);
2950 90 : if (GET_MODE (x3) != i1
2951 90 : || !register_operand (operands[3], i1)
2952 72 : || !nonmemory_operand (operands[4], i1)
2953 162 : || !const0_operand (operands[5], i1))
2954 54 : return -1;
2955 : return 0;
2956 : }
2957 :
2958 : int
2959 15713 : pattern751 (machine_mode i1)
2960 : {
2961 15713 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2962 15713 : int res ATTRIBUTE_UNUSED;
2963 15713 : if (!register_operand (operands[0], i1)
2964 15590 : || !ix86_comparison_uns_operator (operands[1], i1)
2965 15457 : || !register_operand (operands[2], i1)
2966 25995 : || !register_operand (operands[3], i1))
2967 15641 : return -1;
2968 : return 0;
2969 : }
2970 :
2971 : int
2972 6388 : pattern755 (rtx x1, rtx_code i1)
2973 : {
2974 6388 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2975 6388 : rtx x2, x3, x4, x5, x6, x7;
2976 6388 : int res ATTRIBUTE_UNUSED;
2977 6388 : x2 = XEXP (x1, 0);
2978 6388 : x3 = XEXP (x2, 0);
2979 6388 : x4 = XEXP (x3, 1);
2980 6388 : if (GET_CODE (x4) != i1)
2981 : return -1;
2982 5994 : x5 = XEXP (x3, 0);
2983 5994 : x6 = XEXP (x5, 0);
2984 5994 : operands[1] = x6;
2985 5994 : x7 = XEXP (x4, 0);
2986 5994 : operands[2] = x7;
2987 5994 : switch (GET_MODE (operands[0]))
2988 : {
2989 584 : case E_V4HImode:
2990 584 : if (!register_operand (operands[0], E_V4HImode)
2991 574 : || GET_MODE (x1) != E_V4HImode
2992 574 : || GET_MODE (x2) != E_V4SImode
2993 574 : || GET_MODE (x3) != E_V4SImode
2994 574 : || GET_MODE (x5) != E_V4SImode
2995 574 : || !register_mmxmem_operand (operands[1], E_V4HImode)
2996 455 : || GET_MODE (x4) != E_V4SImode
2997 1039 : || !register_mmxmem_operand (operands[2], E_V4HImode))
2998 147 : return -1;
2999 : return 0;
3000 :
3001 40 : case E_V2HImode:
3002 40 : if (!register_operand (operands[0], E_V2HImode)
3003 30 : || GET_MODE (x1) != E_V2HImode
3004 30 : || GET_MODE (x2) != E_V2SImode
3005 30 : || GET_MODE (x3) != E_V2SImode
3006 30 : || GET_MODE (x5) != E_V2SImode
3007 30 : || !register_operand (operands[1], E_V2HImode)
3008 20 : || GET_MODE (x4) != E_V2SImode
3009 60 : || !register_operand (operands[2], E_V2HImode))
3010 30 : return -1;
3011 : return 1;
3012 :
3013 : default:
3014 : return -1;
3015 : }
3016 : }
3017 :
3018 : int
3019 51 : pattern776 (rtx x1, machine_mode i1, machine_mode i2)
3020 : {
3021 51 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3022 51 : rtx x2, x3, x4;
3023 51 : int res ATTRIBUTE_UNUSED;
3024 51 : if (!register_operand (operands[0], i2)
3025 51 : || GET_MODE (x1) != i2)
3026 : return -1;
3027 46 : x2 = XEXP (x1, 0);
3028 46 : if (GET_MODE (x2) != i2)
3029 : return -1;
3030 46 : x3 = XEXP (x2, 0);
3031 46 : if (GET_MODE (x3) != i1)
3032 : return -1;
3033 46 : x4 = XVECEXP (x3, 0, 0);
3034 46 : if (GET_MODE (x4) != i1
3035 46 : || !register_operand (operands[1], i2)
3036 88 : || !nonimmediate_operand (operands[2], i1))
3037 28 : return -1;
3038 : return 0;
3039 : }
3040 :
3041 : int
3042 3994 : pattern783 (rtx x1)
3043 : {
3044 3994 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3045 3994 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
3046 3994 : rtx x10;
3047 3994 : int res ATTRIBUTE_UNUSED;
3048 3994 : x2 = XVECEXP (x1, 0, 0);
3049 3994 : x3 = XEXP (x2, 2);
3050 3994 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
3051 : return -1;
3052 3994 : x4 = XEXP (x2, 0);
3053 3994 : x5 = XEXP (x4, 0);
3054 3994 : x6 = XEXP (x5, 0);
3055 3994 : operands[1] = x6;
3056 3994 : x7 = XEXP (x5, 1);
3057 3994 : operands[2] = x7;
3058 3994 : x8 = XEXP (x4, 1);
3059 3994 : operands[3] = x8;
3060 3994 : x9 = XEXP (x4, 2);
3061 3994 : operands[4] = x9;
3062 3994 : if (!register_operand (operands[4], E_QImode))
3063 : return -1;
3064 3958 : x10 = XVECEXP (x1, 0, 1);
3065 3958 : operands[5] = x10;
3066 3958 : if (!const_4_or_8_to_11_operand (operands[5], E_SImode))
3067 : return -1;
3068 3958 : return pattern782 (x1); /* [-1, 2] */
3069 : }
3070 :
3071 : int
3072 204 : pattern796 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
3073 : {
3074 204 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3075 204 : rtx x2, x3;
3076 204 : int res ATTRIBUTE_UNUSED;
3077 204 : if (!register_operand (operands[0], i3)
3078 204 : || GET_MODE (x1) != i3)
3079 : return -1;
3080 195 : x2 = XEXP (x1, 0);
3081 195 : if (GET_MODE (x2) != i2
3082 195 : || !nonimmediate_operand (operands[2], i1))
3083 0 : return -1;
3084 195 : x3 = XEXP (x1, 1);
3085 195 : if (GET_MODE (x3) != i2
3086 195 : || !register_operand (operands[1], i1))
3087 3 : return -1;
3088 : return 0;
3089 : }
3090 :
3091 : int
3092 199694 : pattern804 (machine_mode i1)
3093 : {
3094 199694 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3095 199694 : int res ATTRIBUTE_UNUSED;
3096 199694 : if (!register_operand (operands[0], i1)
3097 195539 : || !ix86_comparison_int_operator (operands[1], i1)
3098 195454 : || !register_operand (operands[2], i1)
3099 297645 : || !nonimmediate_operand (operands[3], i1))
3100 195185 : return -1;
3101 : return 0;
3102 : }
3103 :
3104 : int
3105 1253140 : pattern813 (rtx x1)
3106 : {
3107 1253140 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3108 1253140 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
3109 1253140 : int res ATTRIBUTE_UNUSED;
3110 1253140 : if (!pmovzx_parallel (operands[4], E_VOIDmode))
3111 : return -1;
3112 404570 : x2 = XEXP (x1, 0);
3113 404570 : x3 = XEXP (x2, 0);
3114 404570 : if (GET_CODE (x3) != SUBREG
3115 404570 : || maybe_ne (SUBREG_BYTE (x3), 0))
3116 : return -1;
3117 160595 : x4 = XEXP (x3, 0);
3118 160595 : if (GET_CODE (x4) != VEC_CONCAT)
3119 : return -1;
3120 4199 : x5 = XEXP (x4, 0);
3121 4199 : operands[1] = x5;
3122 4199 : x6 = XEXP (x4, 1);
3123 4199 : operands[2] = x6;
3124 4199 : x7 = XEXP (x2, 1);
3125 4199 : operands[3] = x7;
3126 4199 : x8 = XEXP (x1, 1);
3127 4199 : x9 = XVECEXP (x8, 0, 0);
3128 4199 : operands[5] = x9;
3129 4199 : if (!const_int_operand (operands[5], E_VOIDmode))
3130 : return -1;
3131 4199 : switch (GET_MODE (operands[0]))
3132 : {
3133 4 : case E_V32QImode:
3134 4 : if (!register_operand (operands[0], E_V32QImode)
3135 4 : || GET_MODE (x1) != E_V32QImode
3136 4 : || GET_MODE (x2) != E_V64QImode
3137 4 : || GET_MODE (x3) != E_V32QImode
3138 8 : || !const0_operand (operands[3], E_V32QImode))
3139 0 : return -1;
3140 4 : switch (GET_MODE (x4))
3141 : {
3142 0 : case E_V16HImode:
3143 0 : if (!nonimmediate_operand (operands[1], E_V8HImode)
3144 0 : || !const0_operand (operands[2], E_V8HImode))
3145 0 : return -1;
3146 : return 0;
3147 :
3148 4 : case E_V8SImode:
3149 4 : if (!nonimmediate_operand (operands[1], E_V4SImode)
3150 4 : || !const0_operand (operands[2], E_V4SImode))
3151 0 : return -1;
3152 : return 1;
3153 :
3154 0 : case E_V4DImode:
3155 0 : if (!nonimmediate_operand (operands[1], E_V2DImode)
3156 0 : || !const0_operand (operands[2], E_V2DImode))
3157 0 : return -1;
3158 : return 2;
3159 :
3160 : default:
3161 : return -1;
3162 : }
3163 :
3164 4 : case E_V64QImode:
3165 4 : if (!register_operand (operands[0], E_V64QImode)
3166 4 : || GET_MODE (x1) != E_V64QImode
3167 4 : || GET_MODE (x2) != E_V128QImode
3168 4 : || GET_MODE (x3) != E_V64QImode
3169 8 : || !const0_operand (operands[3], E_V64QImode))
3170 0 : return -1;
3171 4 : switch (GET_MODE (x4))
3172 : {
3173 0 : case E_V32HImode:
3174 0 : if (!nonimmediate_operand (operands[1], E_V16HImode)
3175 0 : || !const0_operand (operands[2], E_V16HImode))
3176 0 : return -1;
3177 : return 3;
3178 :
3179 4 : case E_V16SImode:
3180 4 : if (!nonimmediate_operand (operands[1], E_V8SImode)
3181 4 : || !const0_operand (operands[2], E_V8SImode))
3182 0 : return -1;
3183 : return 4;
3184 :
3185 0 : case E_V8DImode:
3186 0 : if (!nonimmediate_operand (operands[1], E_V4DImode)
3187 0 : || !const0_operand (operands[2], E_V4DImode))
3188 0 : return -1;
3189 : return 5;
3190 :
3191 : default:
3192 : return -1;
3193 : }
3194 :
3195 108 : case E_V16QImode:
3196 108 : if (!register_operand (operands[0], E_V16QImode)
3197 90 : || GET_MODE (x1) != E_V16QImode
3198 90 : || GET_MODE (x2) != E_V32QImode
3199 90 : || GET_MODE (x3) != E_V16QImode
3200 198 : || !const0_operand (operands[3], E_V16QImode))
3201 104 : return -1;
3202 4 : switch (GET_MODE (x4))
3203 : {
3204 0 : case E_V8HImode:
3205 0 : if (!vector_operand (operands[1], E_V4HImode)
3206 0 : || !const0_operand (operands[2], E_V4HImode))
3207 0 : return -1;
3208 : return 6;
3209 :
3210 4 : case E_V4SImode:
3211 4 : if (!vector_operand (operands[1], E_V2SImode)
3212 4 : || !const0_operand (operands[2], E_V2SImode))
3213 0 : return -1;
3214 : return 7;
3215 :
3216 0 : case E_V2DImode:
3217 0 : if (!vector_operand (operands[1], E_DImode)
3218 0 : || !const0_operand (operands[2], E_DImode))
3219 0 : return -1;
3220 : return 8;
3221 :
3222 : default:
3223 : return -1;
3224 : }
3225 :
3226 8 : case E_V32HImode:
3227 8 : if (!register_operand (operands[0], E_V32HImode)
3228 8 : || GET_MODE (x1) != E_V32HImode
3229 8 : || GET_MODE (x2) != E_V64HImode
3230 8 : || GET_MODE (x3) != E_V32HImode
3231 16 : || !const0_operand (operands[3], E_V32HImode))
3232 0 : return -1;
3233 8 : switch (GET_MODE (x4))
3234 : {
3235 0 : case E_V64QImode:
3236 0 : if (!nonimmediate_operand (operands[1], E_V32QImode)
3237 0 : || !const0_operand (operands[2], E_V32QImode))
3238 0 : return -1;
3239 : return 9;
3240 :
3241 8 : case E_V16SImode:
3242 8 : if (!nonimmediate_operand (operands[1], E_V8SImode)
3243 8 : || !const0_operand (operands[2], E_V8SImode))
3244 0 : return -1;
3245 : return 10;
3246 :
3247 0 : case E_V8DImode:
3248 0 : if (!nonimmediate_operand (operands[1], E_V4DImode)
3249 0 : || !const0_operand (operands[2], E_V4DImode))
3250 0 : return -1;
3251 : return 11;
3252 :
3253 : default:
3254 : return -1;
3255 : }
3256 :
3257 8 : case E_V16HImode:
3258 8 : if (!register_operand (operands[0], E_V16HImode)
3259 8 : || GET_MODE (x1) != E_V16HImode
3260 8 : || GET_MODE (x2) != E_V32HImode
3261 8 : || GET_MODE (x3) != E_V16HImode
3262 16 : || !const0_operand (operands[3], E_V16HImode))
3263 0 : return -1;
3264 8 : switch (GET_MODE (x4))
3265 : {
3266 0 : case E_V32QImode:
3267 0 : if (!nonimmediate_operand (operands[1], E_V16QImode)
3268 0 : || !const0_operand (operands[2], E_V16QImode))
3269 0 : return -1;
3270 : return 12;
3271 :
3272 8 : case E_V8SImode:
3273 8 : if (!nonimmediate_operand (operands[1], E_V4SImode)
3274 8 : || !const0_operand (operands[2], E_V4SImode))
3275 0 : return -1;
3276 : return 13;
3277 :
3278 0 : case E_V4DImode:
3279 0 : if (!nonimmediate_operand (operands[1], E_V2DImode)
3280 0 : || !const0_operand (operands[2], E_V2DImode))
3281 0 : return -1;
3282 : return 14;
3283 :
3284 : default:
3285 : return -1;
3286 : }
3287 :
3288 105 : case E_V8HImode:
3289 105 : if (!register_operand (operands[0], E_V8HImode)
3290 105 : || GET_MODE (x1) != E_V8HImode
3291 105 : || GET_MODE (x2) != E_V16HImode
3292 105 : || GET_MODE (x3) != E_V8HImode
3293 210 : || !const0_operand (operands[3], E_V8HImode))
3294 97 : return -1;
3295 8 : switch (GET_MODE (x4))
3296 : {
3297 0 : case E_V16QImode:
3298 0 : if (!vector_operand (operands[1], E_V8QImode)
3299 0 : || !const0_operand (operands[2], E_V8QImode))
3300 0 : return -1;
3301 : return 15;
3302 :
3303 8 : case E_V4SImode:
3304 8 : if (!vector_operand (operands[1], E_V2SImode)
3305 8 : || !const0_operand (operands[2], E_V2SImode))
3306 0 : return -1;
3307 : return 16;
3308 :
3309 0 : case E_V2DImode:
3310 0 : if (!vector_operand (operands[1], E_DImode)
3311 0 : || !const0_operand (operands[2], E_DImode))
3312 0 : return -1;
3313 : return 17;
3314 :
3315 : default:
3316 : return -1;
3317 : }
3318 :
3319 : default:
3320 : return -1;
3321 : }
3322 : }
3323 :
3324 : int
3325 1431 : pattern889 (rtx x1)
3326 : {
3327 1431 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3328 1431 : rtx x2, x3, x4, x5, x6;
3329 1431 : int res ATTRIBUTE_UNUSED;
3330 1431 : x2 = XVECEXP (x1, 0, 0);
3331 1431 : x3 = XVECEXP (x2, 0, 0);
3332 1431 : if (GET_CODE (x3) != VEC_SELECT)
3333 : return -1;
3334 1014 : x4 = XEXP (x3, 1);
3335 1014 : if (GET_CODE (x4) != PARALLEL
3336 1014 : || XVECLEN (x4, 0) != 1)
3337 : return -1;
3338 1014 : x5 = XVECEXP (x4, 0, 0);
3339 1014 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3340 : return -1;
3341 1014 : x6 = XEXP (x3, 0);
3342 1014 : operands[1] = x6;
3343 1014 : if (!const48_operand (operands[2], E_SImode))
3344 : return -1;
3345 1014 : switch (GET_MODE (operands[0]))
3346 : {
3347 506 : case E_SImode:
3348 506 : return pattern888 (x1,
3349 506 : E_SImode); /* [-1, 1] */
3350 :
3351 508 : case E_DImode:
3352 508 : res = pattern888 (x1,
3353 : E_DImode);
3354 508 : if (res >= 0)
3355 482 : return res + 2; /* [2, 3] */
3356 : return -1;
3357 :
3358 : default:
3359 : return -1;
3360 : }
3361 : }
3362 :
3363 : int
3364 654 : pattern902 (rtx x1)
3365 : {
3366 654 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3367 654 : rtx x2;
3368 654 : int res ATTRIBUTE_UNUSED;
3369 654 : if (!register_operand (operands[0], E_V16HFmode)
3370 654 : || GET_MODE (x1) != E_V16HFmode)
3371 : return -1;
3372 612 : x2 = XEXP (x1, 0);
3373 612 : if (GET_MODE (x2) != E_V16HFmode
3374 612 : || !nonimm_or_0_operand (operands[2], E_V16HFmode)
3375 1224 : || !register_operand (operands[3], E_HImode))
3376 54 : return -1;
3377 558 : switch (GET_MODE (operands[1]))
3378 : {
3379 408 : case E_V16HImode:
3380 408 : if (!vector_operand (operands[1], E_V16HImode))
3381 : return -1;
3382 : return 0;
3383 :
3384 150 : case E_V16SImode:
3385 150 : if (!vector_operand (operands[1], E_V16SImode))
3386 : return -1;
3387 : return 1;
3388 :
3389 : default:
3390 : return -1;
3391 : }
3392 : }
3393 :
3394 : int
3395 305 : pattern912 (rtx x1, machine_mode i1)
3396 : {
3397 305 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3398 305 : rtx x2, x3;
3399 305 : int res ATTRIBUTE_UNUSED;
3400 305 : if (!register_operand (operands[0], i1)
3401 305 : || GET_MODE (x1) != i1)
3402 : return -1;
3403 257 : x2 = XVECEXP (x1, 0, 0);
3404 257 : if (GET_MODE (x2) != i1)
3405 : return -1;
3406 257 : x3 = XEXP (x2, 0);
3407 257 : if (GET_MODE (x3) != i1
3408 257 : || !register_operand (operands[1], i1)
3409 474 : || !nonimmediate_operand (operands[2], i1))
3410 40 : return -1;
3411 : return 0;
3412 : }
3413 :
3414 : int
3415 464 : pattern920 (rtx x1)
3416 : {
3417 464 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3418 464 : rtx x2, x3, x4, x5, x6;
3419 464 : int res ATTRIBUTE_UNUSED;
3420 464 : x2 = XEXP (x1, 0);
3421 464 : x3 = XEXP (x2, 0);
3422 464 : if (GET_MODE (x3) != E_V2SImode)
3423 : return -1;
3424 464 : x4 = XEXP (x1, 1);
3425 464 : if (GET_CODE (x4) != CONST_VECTOR
3426 464 : || XVECLEN (x4, 0) != 2
3427 464 : || GET_MODE (x4) != E_V2SImode)
3428 : return -1;
3429 464 : x5 = XVECEXP (x4, 0, 0);
3430 464 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3431 : return -1;
3432 464 : x6 = XVECEXP (x4, 0, 1);
3433 464 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
3434 464 : || !register_operand (operands[0], E_V4SImode)
3435 464 : || GET_MODE (x1) != E_V4SImode
3436 464 : || GET_MODE (x2) != E_V2SImode
3437 928 : || !nonimmediate_operand (operands[1], E_V2DFmode))
3438 32 : return -1;
3439 432 : return pattern504 (x2); /* [-1, 1] */
3440 : }
3441 :
3442 : int
3443 26352 : pattern928 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
3444 : {
3445 26352 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3446 26352 : rtx x2;
3447 26352 : int res ATTRIBUTE_UNUSED;
3448 26352 : if (!register_operand (operands[0], i3)
3449 26352 : || GET_MODE (x1) != i3)
3450 : return -1;
3451 22180 : x2 = XEXP (x1, 0);
3452 22180 : if (GET_MODE (x2) != i2
3453 22180 : || !nonimmediate_operand (operands[1], i1))
3454 5585 : return -1;
3455 : return 0;
3456 : }
3457 :
3458 : int
3459 182103 : pattern931 (rtx x1)
3460 : {
3461 182103 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3462 182103 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
3463 182103 : rtx x10, x11, x12, x13, x14, x15;
3464 182103 : int res ATTRIBUTE_UNUSED;
3465 182103 : x2 = XVECEXP (x1, 0, 2);
3466 182103 : if (GET_CODE (x2) != CONST_INT)
3467 : return -1;
3468 182103 : x3 = XVECEXP (x1, 0, 3);
3469 182103 : if (GET_CODE (x3) != CONST_INT)
3470 : return -1;
3471 182103 : x4 = XVECEXP (x1, 0, 4);
3472 182103 : if (GET_CODE (x4) != CONST_INT)
3473 : return -1;
3474 182103 : x5 = XVECEXP (x1, 0, 5);
3475 182103 : if (GET_CODE (x5) != CONST_INT)
3476 : return -1;
3477 182103 : x6 = XVECEXP (x1, 0, 6);
3478 182103 : if (GET_CODE (x6) != CONST_INT)
3479 : return -1;
3480 182103 : x7 = XVECEXP (x1, 0, 7);
3481 182103 : if (GET_CODE (x7) != CONST_INT)
3482 : return -1;
3483 182103 : x8 = XVECEXP (x1, 0, 8);
3484 182103 : if (GET_CODE (x8) != CONST_INT)
3485 : return -1;
3486 182103 : x9 = XVECEXP (x1, 0, 9);
3487 182103 : if (GET_CODE (x9) != CONST_INT)
3488 : return -1;
3489 182103 : x10 = XVECEXP (x1, 0, 10);
3490 182103 : if (GET_CODE (x10) != CONST_INT)
3491 : return -1;
3492 182103 : x11 = XVECEXP (x1, 0, 11);
3493 182103 : if (GET_CODE (x11) != CONST_INT)
3494 : return -1;
3495 182103 : x12 = XVECEXP (x1, 0, 12);
3496 182103 : if (GET_CODE (x12) != CONST_INT)
3497 : return -1;
3498 182103 : x13 = XVECEXP (x1, 0, 13);
3499 182103 : if (GET_CODE (x13) != CONST_INT)
3500 : return -1;
3501 182103 : x14 = XVECEXP (x1, 0, 14);
3502 182103 : if (GET_CODE (x14) != CONST_INT)
3503 : return -1;
3504 182103 : x15 = XVECEXP (x1, 0, 15);
3505 182103 : if (GET_CODE (x15) != CONST_INT)
3506 0 : return -1;
3507 : return 0;
3508 : }
3509 :
3510 : int
3511 7863 : pattern947 (rtx x1, machine_mode i1)
3512 : {
3513 7863 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3514 7863 : rtx x2;
3515 7863 : int res ATTRIBUTE_UNUSED;
3516 7863 : if (!register_operand (operands[0], i1)
3517 7863 : || GET_MODE (x1) != i1)
3518 : return -1;
3519 7811 : x2 = XEXP (x1, 0);
3520 7811 : if (GET_MODE (x2) != i1
3521 7811 : || !register_operand (operands[1], i1))
3522 3110 : return -1;
3523 : return 0;
3524 : }
3525 :
3526 : int
3527 834 : pattern956 (rtx x1, machine_mode i1)
3528 : {
3529 834 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3530 834 : rtx x2;
3531 834 : int res ATTRIBUTE_UNUSED;
3532 834 : if (!register_operand (operands[0], i1)
3533 834 : || GET_MODE (x1) != i1)
3534 : return -1;
3535 826 : x2 = XEXP (x1, 0);
3536 826 : if (GET_MODE (x2) != i1
3537 826 : || !register_operand (operands[1], i1)
3538 297 : || !const0_operand (operands[2], i1)
3539 906 : || !const1_operand (operands[3], i1))
3540 826 : return -1;
3541 : return 0;
3542 : }
3543 :
3544 : int
3545 4438980 : pattern964 (rtx x1, machine_mode i1)
3546 : {
3547 4438980 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3548 4438980 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
3549 4438980 : int res ATTRIBUTE_UNUSED;
3550 4438980 : operands[1] = x1;
3551 4438980 : if (!general_reg_operand (operands[1], i1))
3552 : return -1;
3553 1057122 : x2 = PATTERN (peep2_next_insn (2));
3554 1057122 : if (GET_CODE (x2) != PARALLEL
3555 151207 : || XVECLEN (x2, 0) != 2)
3556 : return -1;
3557 139364 : x3 = XVECEXP (x2, 0, 0);
3558 139364 : if (GET_CODE (x3) != SET)
3559 : return -1;
3560 139198 : x4 = XEXP (x3, 0);
3561 139198 : if (GET_CODE (x4) != REG
3562 139198 : || REGNO (x4) != 17)
3563 : return -1;
3564 17604 : x5 = XVECEXP (x2, 0, 1);
3565 17604 : if (GET_CODE (x5) != SET)
3566 : return -1;
3567 17027 : x6 = XEXP (x3, 1);
3568 17027 : operands[5] = x6;
3569 17027 : x7 = XEXP (x5, 1);
3570 17027 : operands[6] = x7;
3571 17027 : x8 = XEXP (x5, 0);
3572 17027 : if (!rtx_equal_p (x8, operands[0]))
3573 : return -1;
3574 10474 : x9 = PATTERN (peep2_next_insn (3));
3575 10474 : return pattern963 (x9,
3576 10474 : i1); /* [-1, 0] */
3577 : }
3578 :
3579 : int
3580 7326 : pattern971 (rtx x1, machine_mode i1)
3581 : {
3582 7326 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3583 7326 : int res ATTRIBUTE_UNUSED;
3584 7326 : if (!register_operand (operands[0], i1)
3585 7319 : || GET_MODE (x1) != i1
3586 7319 : || !register_operand (operands[1], i1)
3587 14614 : || !register_operand (operands[2], i1))
3588 51 : return -1;
3589 : return 0;
3590 : }
3591 :
3592 : int
3593 168 : pattern975 (rtx x1)
3594 : {
3595 168 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3596 168 : rtx x2;
3597 168 : int res ATTRIBUTE_UNUSED;
3598 168 : if (!register_operand (operands[0], E_QImode)
3599 168 : || GET_MODE (x1) != E_QImode)
3600 : return -1;
3601 168 : x2 = XEXP (x1, 0);
3602 168 : if (GET_MODE (x2) != E_QImode)
3603 : return -1;
3604 168 : switch (GET_MODE (operands[1]))
3605 : {
3606 3 : case E_V8SImode:
3607 3 : if (!register_operand (operands[1], E_V8SImode)
3608 3 : || !nonimmediate_operand (operands[2], E_V8SImode)
3609 6 : || !const_0_to_7_operand (operands[3], E_SImode))
3610 0 : return -1;
3611 : return 0;
3612 :
3613 0 : case E_V4SImode:
3614 0 : if (!register_operand (operands[1], E_V4SImode)
3615 0 : || !nonimmediate_operand (operands[2], E_V4SImode)
3616 0 : || !const_0_to_7_operand (operands[3], E_SImode))
3617 0 : return -1;
3618 : return 1;
3619 :
3620 29 : case E_V8DImode:
3621 29 : if (!register_operand (operands[1], E_V8DImode)
3622 29 : || !nonimmediate_operand (operands[2], E_V8DImode)
3623 58 : || !const_0_to_7_operand (operands[3], E_SImode))
3624 0 : return -1;
3625 : return 2;
3626 :
3627 0 : case E_V4DImode:
3628 0 : if (!register_operand (operands[1], E_V4DImode)
3629 0 : || !nonimmediate_operand (operands[2], E_V4DImode)
3630 0 : || !const_0_to_7_operand (operands[3], E_SImode))
3631 0 : return -1;
3632 : return 3;
3633 :
3634 0 : case E_V2DImode:
3635 0 : if (!register_operand (operands[1], E_V2DImode)
3636 0 : || !nonimmediate_operand (operands[2], E_V2DImode)
3637 0 : || !const_0_to_7_operand (operands[3], E_SImode))
3638 0 : return -1;
3639 : return 4;
3640 :
3641 0 : case E_V8HFmode:
3642 0 : if (!register_operand (operands[1], E_V8HFmode)
3643 0 : || !nonimmediate_operand (operands[2], E_V8HFmode)
3644 0 : || !const_0_to_31_operand (operands[3], E_SImode))
3645 0 : return -1;
3646 : return 5;
3647 :
3648 3 : case E_V8SFmode:
3649 3 : if (!register_operand (operands[1], E_V8SFmode)
3650 3 : || !nonimmediate_operand (operands[2], E_V8SFmode)
3651 6 : || !const_0_to_31_operand (operands[3], E_SImode))
3652 0 : return -1;
3653 : return 6;
3654 :
3655 21 : case E_V4SFmode:
3656 21 : if (!register_operand (operands[1], E_V4SFmode)
3657 18 : || !nonimmediate_operand (operands[2], E_V4SFmode)
3658 33 : || !const_0_to_31_operand (operands[3], E_SImode))
3659 9 : return -1;
3660 : return 7;
3661 :
3662 50 : case E_V8DFmode:
3663 50 : if (!register_operand (operands[1], E_V8DFmode)
3664 50 : || !nonimmediate_operand (operands[2], E_V8DFmode)
3665 100 : || !const_0_to_31_operand (operands[3], E_SImode))
3666 0 : return -1;
3667 : return 8;
3668 :
3669 25 : case E_V4DFmode:
3670 25 : if (!register_operand (operands[1], E_V4DFmode)
3671 25 : || !nonimmediate_operand (operands[2], E_V4DFmode)
3672 50 : || !const_0_to_31_operand (operands[3], E_SImode))
3673 0 : return -1;
3674 : return 9;
3675 :
3676 34 : case E_V2DFmode:
3677 34 : if (!register_operand (operands[1], E_V2DFmode)
3678 34 : || !nonimmediate_operand (operands[2], E_V2DFmode)
3679 68 : || !const_0_to_31_operand (operands[3], E_SImode))
3680 0 : return -1;
3681 : return 10;
3682 :
3683 3 : case E_V8HImode:
3684 3 : if (!register_operand (operands[1], E_V8HImode)
3685 3 : || !nonimmediate_operand (operands[2], E_V8HImode)
3686 6 : || !const_0_to_7_operand (operands[3], E_SImode))
3687 0 : return -1;
3688 : return 11;
3689 :
3690 : default:
3691 : return -1;
3692 : }
3693 : }
3694 :
3695 : int
3696 622 : pattern998 (rtx x1)
3697 : {
3698 622 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3699 622 : rtx x2;
3700 622 : int res ATTRIBUTE_UNUSED;
3701 622 : if (!register_operand (operands[0], E_V8DImode)
3702 622 : || GET_MODE (x1) != E_V8DImode)
3703 : return -1;
3704 508 : x2 = XEXP (x1, 0);
3705 508 : if (GET_MODE (x2) != E_V8DImode
3706 508 : || !nonimm_or_0_operand (operands[2], E_V8DImode)
3707 972 : || !register_operand (operands[3], E_QImode))
3708 108 : return -1;
3709 400 : switch (GET_MODE (operands[1]))
3710 : {
3711 146 : case E_V8HFmode:
3712 146 : if (!vector_operand (operands[1], E_V8HFmode))
3713 : return -1;
3714 : return 0;
3715 :
3716 126 : case E_V8DFmode:
3717 126 : if (!vector_operand (operands[1], E_V8DFmode))
3718 : return -1;
3719 : return 1;
3720 :
3721 128 : case E_V8SFmode:
3722 128 : if (!vector_operand (operands[1], E_V8SFmode))
3723 : return -1;
3724 : return 2;
3725 :
3726 : default:
3727 : return -1;
3728 : }
3729 : }
3730 :
3731 : int
3732 3339 : pattern1006 (rtx x1, machine_mode i1)
3733 : {
3734 3339 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3735 3339 : rtx x2, x3, x4;
3736 3339 : int res ATTRIBUTE_UNUSED;
3737 3339 : if (!register_operand (operands[0], i1)
3738 3339 : || GET_MODE (x1) != i1)
3739 : return -1;
3740 3231 : x2 = XEXP (x1, 0);
3741 3231 : if (GET_MODE (x2) != i1)
3742 : return -1;
3743 3231 : x3 = XVECEXP (x2, 0, 0);
3744 3231 : if (!register_operand (x3, i1))
3745 : return -1;
3746 3193 : x4 = XVECEXP (x2, 0, 1);
3747 3193 : if (!register_operand (x4, i1))
3748 : return -1;
3749 : return 0;
3750 : }
3751 :
3752 : int
3753 0 : pattern1016 (rtx x1, machine_mode i1, machine_mode i2)
3754 : {
3755 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3756 0 : rtx x2, x3;
3757 0 : int res ATTRIBUTE_UNUSED;
3758 0 : if (!register_operand (operands[0], i1)
3759 0 : || GET_MODE (x1) != i1
3760 0 : || !vector_operand (operands[1], i1)
3761 0 : || !vector_operand (operands[2], i1))
3762 0 : return -1;
3763 0 : x2 = XEXP (x1, 2);
3764 0 : if (GET_MODE (x2) != i2)
3765 : return -1;
3766 0 : x3 = XVECEXP (x2, 0, 0);
3767 0 : if (GET_MODE (x3) != i1
3768 0 : || !register_operand (operands[3], i1)
3769 0 : || !const0_operand (operands[4], i1))
3770 0 : return -1;
3771 : return 0;
3772 : }
3773 :
3774 : int
3775 444 : pattern1023 (rtx x1, machine_mode i1)
3776 : {
3777 444 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3778 444 : int res ATTRIBUTE_UNUSED;
3779 444 : if (!register_operand (operands[0], i1)
3780 444 : || GET_MODE (x1) != i1
3781 444 : || !ix86_comparison_uns_operator (operands[1], i1)
3782 444 : || !register_operand (operands[2], i1)
3783 888 : || !nonimmediate_operand (operands[3], i1))
3784 0 : return -1;
3785 : return 0;
3786 : }
3787 :
3788 : int
3789 213 : pattern1029 (rtx x1, machine_mode i1, machine_mode i2)
3790 : {
3791 213 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3792 213 : rtx x2;
3793 213 : int res ATTRIBUTE_UNUSED;
3794 213 : x2 = XVECEXP (x1, 0, 0);
3795 213 : if (GET_MODE (x2) != i2
3796 213 : || !register_operand (operands[0], i2)
3797 209 : || GET_MODE (x1) != i2
3798 209 : || !register_operand (operands[1], i1)
3799 418 : || !const48_operand (operands[2], E_SImode))
3800 8 : return -1;
3801 : return 0;
3802 : }
3803 :
3804 : int
3805 28565 : pattern1035 (rtx x1, machine_mode i1)
3806 : {
3807 28565 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3808 28565 : int res ATTRIBUTE_UNUSED;
3809 28565 : if (!register_operand (operands[0], i1)
3810 27697 : || GET_MODE (x1) != i1
3811 27697 : || !register_operand (operands[1], i1)
3812 20646 : || !vector_operand (operands[2], i1)
3813 46351 : || !register_operand (operands[3], i1))
3814 13557 : return -1;
3815 : return 0;
3816 : }
3817 :
3818 : int
3819 1312 : pattern1041 (rtx x1, machine_mode i1, machine_mode i2)
3820 : {
3821 1312 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3822 1312 : rtx x2;
3823 1312 : int res ATTRIBUTE_UNUSED;
3824 1312 : if (!nonimmediate_operand (operands[0], i2)
3825 1312 : || GET_MODE (x1) != i2
3826 2624 : || !nonimmediate_operand (operands[1], i1))
3827 0 : return -1;
3828 1312 : x2 = XEXP (x1, 1);
3829 1312 : if (GET_MODE (x2) != i1)
3830 : return -1;
3831 : return 0;
3832 : }
3833 :
3834 : int
3835 9006 : pattern1049 (rtx x1)
3836 : {
3837 9006 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3838 9006 : rtx x2, x3, x4;
3839 9006 : int res ATTRIBUTE_UNUSED;
3840 9006 : x2 = XEXP (x1, 0);
3841 9006 : x3 = XEXP (x2, 0);
3842 9006 : operands[1] = x3;
3843 9006 : x4 = XEXP (x2, 1);
3844 9006 : operands[2] = x4;
3845 9006 : return pattern1048 (x1); /* [-1, 5] */
3846 : }
3847 :
3848 : int
3849 328 : pattern1050 (rtx x1, machine_mode i1)
3850 : {
3851 328 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3852 328 : rtx x2, x3, x4, x5, x6;
3853 328 : int res ATTRIBUTE_UNUSED;
3854 328 : if (!register_operand (operands[0], i1))
3855 : return -1;
3856 328 : x2 = XVECEXP (x1, 0, 0);
3857 328 : x3 = XEXP (x2, 1);
3858 328 : if (GET_MODE (x3) != i1)
3859 : return -1;
3860 328 : x4 = XEXP (x3, 0);
3861 328 : switch (GET_MODE (x4))
3862 : {
3863 70 : case E_HImode:
3864 70 : if (!register_operand (operands[4], E_HImode))
3865 : return -1;
3866 70 : x5 = XVECEXP (x1, 0, 1);
3867 70 : x6 = XEXP (x5, 1);
3868 70 : if (GET_MODE (x6) != E_HImode)
3869 : return -1;
3870 70 : switch (GET_MODE (operands[1]))
3871 : {
3872 14 : case E_V16SImode:
3873 14 : if (!nonimmediate_operand (operands[1], E_V16SImode)
3874 12 : || !nonimmediate_operand (operands[2], E_V16SImode)
3875 26 : || !const_0_to_7_operand (operands[3], E_SImode))
3876 2 : return -1;
3877 : return 0;
3878 :
3879 14 : case E_V16HFmode:
3880 14 : if (!nonimmediate_operand (operands[1], E_V16HFmode)
3881 12 : || !nonimmediate_operand (operands[2], E_V16HFmode)
3882 26 : || !const_0_to_31_operand (operands[3], E_SImode))
3883 2 : return -1;
3884 : return 1;
3885 :
3886 14 : case E_V16SFmode:
3887 14 : if (!nonimmediate_operand (operands[1], E_V16SFmode)
3888 12 : || !nonimmediate_operand (operands[2], E_V16SFmode)
3889 26 : || !const_0_to_31_operand (operands[3], E_SImode))
3890 2 : return -1;
3891 : return 2;
3892 :
3893 14 : case E_V16QImode:
3894 14 : if (!nonimmediate_operand (operands[1], E_V16QImode)
3895 12 : || !nonimmediate_operand (operands[2], E_V16QImode)
3896 26 : || !const_0_to_7_operand (operands[3], E_SImode))
3897 2 : return -1;
3898 : return 3;
3899 :
3900 14 : case E_V16HImode:
3901 14 : if (!nonimmediate_operand (operands[1], E_V16HImode)
3902 12 : || !nonimmediate_operand (operands[2], E_V16HImode)
3903 26 : || !const_0_to_7_operand (operands[3], E_SImode))
3904 2 : return -1;
3905 : return 4;
3906 :
3907 : default:
3908 : return -1;
3909 : }
3910 :
3911 237 : case E_QImode:
3912 237 : if (!register_operand (operands[4], E_QImode))
3913 : return -1;
3914 237 : x5 = XVECEXP (x1, 0, 1);
3915 237 : x6 = XEXP (x5, 1);
3916 237 : if (GET_MODE (x6) != E_QImode)
3917 : return -1;
3918 237 : switch (GET_MODE (operands[1]))
3919 : {
3920 21 : case E_V8SImode:
3921 21 : if (!nonimmediate_operand (operands[1], E_V8SImode)
3922 18 : || !nonimmediate_operand (operands[2], E_V8SImode)
3923 39 : || !const_0_to_7_operand (operands[3], E_SImode))
3924 3 : return -1;
3925 : return 5;
3926 :
3927 21 : case E_V4SImode:
3928 21 : if (!nonimmediate_operand (operands[1], E_V4SImode)
3929 18 : || !nonimmediate_operand (operands[2], E_V4SImode)
3930 39 : || !const_0_to_7_operand (operands[3], E_SImode))
3931 3 : return -1;
3932 : return 6;
3933 :
3934 21 : case E_V8DImode:
3935 21 : if (!nonimmediate_operand (operands[1], E_V8DImode)
3936 18 : || !nonimmediate_operand (operands[2], E_V8DImode)
3937 39 : || !const_0_to_7_operand (operands[3], E_SImode))
3938 3 : return -1;
3939 : return 7;
3940 :
3941 21 : case E_V4DImode:
3942 21 : if (!nonimmediate_operand (operands[1], E_V4DImode)
3943 18 : || !nonimmediate_operand (operands[2], E_V4DImode)
3944 39 : || !const_0_to_7_operand (operands[3], E_SImode))
3945 3 : return -1;
3946 : return 8;
3947 :
3948 21 : case E_V2DImode:
3949 21 : if (!nonimmediate_operand (operands[1], E_V2DImode)
3950 18 : || !nonimmediate_operand (operands[2], E_V2DImode)
3951 39 : || !const_0_to_7_operand (operands[3], E_SImode))
3952 3 : return -1;
3953 : return 9;
3954 :
3955 15 : case E_V8HFmode:
3956 15 : if (!nonimmediate_operand (operands[1], E_V8HFmode)
3957 15 : || !nonimmediate_operand (operands[2], E_V8HFmode)
3958 30 : || !const_0_to_31_operand (operands[3], E_SImode))
3959 0 : return -1;
3960 : return 10;
3961 :
3962 21 : case E_V8SFmode:
3963 21 : if (!nonimmediate_operand (operands[1], E_V8SFmode)
3964 18 : || !nonimmediate_operand (operands[2], E_V8SFmode)
3965 39 : || !const_0_to_31_operand (operands[3], E_SImode))
3966 3 : return -1;
3967 : return 11;
3968 :
3969 21 : case E_V4SFmode:
3970 21 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
3971 18 : || !nonimmediate_operand (operands[2], E_V4SFmode)
3972 39 : || !const_0_to_31_operand (operands[3], E_SImode))
3973 3 : return -1;
3974 : return 12;
3975 :
3976 21 : case E_V8DFmode:
3977 21 : if (!nonimmediate_operand (operands[1], E_V8DFmode)
3978 18 : || !nonimmediate_operand (operands[2], E_V8DFmode)
3979 39 : || !const_0_to_31_operand (operands[3], E_SImode))
3980 3 : return -1;
3981 : return 13;
3982 :
3983 21 : case E_V4DFmode:
3984 21 : if (!nonimmediate_operand (operands[1], E_V4DFmode)
3985 18 : || !nonimmediate_operand (operands[2], E_V4DFmode)
3986 39 : || !const_0_to_31_operand (operands[3], E_SImode))
3987 3 : return -1;
3988 : return 14;
3989 :
3990 21 : case E_V2DFmode:
3991 21 : if (!nonimmediate_operand (operands[1], E_V2DFmode)
3992 18 : || !nonimmediate_operand (operands[2], E_V2DFmode)
3993 39 : || !const_0_to_31_operand (operands[3], E_SImode))
3994 3 : return -1;
3995 : return 15;
3996 :
3997 12 : case E_V8HImode:
3998 12 : if (!nonimmediate_operand (operands[1], E_V8HImode)
3999 12 : || !nonimmediate_operand (operands[2], E_V8HImode)
4000 24 : || !const_0_to_7_operand (operands[3], E_SImode))
4001 0 : return -1;
4002 : return 16;
4003 :
4004 : default:
4005 : return -1;
4006 : }
4007 :
4008 21 : case E_SImode:
4009 21 : if (!register_operand (operands[4], E_SImode))
4010 : return -1;
4011 21 : x5 = XVECEXP (x1, 0, 1);
4012 21 : x6 = XEXP (x5, 1);
4013 21 : if (GET_MODE (x6) != E_SImode)
4014 : return -1;
4015 21 : switch (GET_MODE (operands[1]))
4016 : {
4017 7 : case E_V32HFmode:
4018 7 : if (!nonimmediate_operand (operands[1], E_V32HFmode)
4019 6 : || !nonimmediate_operand (operands[2], E_V32HFmode)
4020 13 : || !const_0_to_31_operand (operands[3], E_SImode))
4021 1 : return -1;
4022 : return 17;
4023 :
4024 7 : case E_V32QImode:
4025 7 : if (!nonimmediate_operand (operands[1], E_V32QImode)
4026 6 : || !nonimmediate_operand (operands[2], E_V32QImode)
4027 13 : || !const_0_to_7_operand (operands[3], E_SImode))
4028 1 : return -1;
4029 : return 18;
4030 :
4031 7 : case E_V32HImode:
4032 7 : if (!nonimmediate_operand (operands[1], E_V32HImode)
4033 6 : || !nonimmediate_operand (operands[2], E_V32HImode)
4034 13 : || !const_0_to_7_operand (operands[3], E_SImode))
4035 1 : return -1;
4036 : return 19;
4037 :
4038 : default:
4039 : return -1;
4040 : }
4041 :
4042 0 : case E_DImode:
4043 0 : if (!nonimmediate_operand (operands[1], E_V64QImode)
4044 0 : || !nonimmediate_operand (operands[2], E_V64QImode)
4045 0 : || !const_0_to_7_operand (operands[3], E_SImode)
4046 0 : || !register_operand (operands[4], E_DImode))
4047 0 : return -1;
4048 0 : x5 = XVECEXP (x1, 0, 1);
4049 0 : x6 = XEXP (x5, 1);
4050 0 : if (GET_MODE (x6) != E_DImode)
4051 : return -1;
4052 : return 20;
4053 :
4054 : default:
4055 : return -1;
4056 : }
4057 : }
4058 :
4059 : int
4060 5883 : pattern1129 (rtx x1, machine_mode i1)
4061 : {
4062 5883 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4063 5883 : int res ATTRIBUTE_UNUSED;
4064 5883 : if (!register_operand (operands[0], i1)
4065 4574 : || GET_MODE (x1) != i1
4066 4574 : || !vector_operand (operands[2], i1)
4067 4423 : || !register_operand (operands[1], i1)
4068 9359 : || !const_0_to_15_operand (operands[3], E_SImode))
4069 2447 : return -1;
4070 : return 0;
4071 : }
4072 :
4073 : int
4074 357 : pattern1135 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3, machine_mode i4)
4075 : {
4076 357 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4077 357 : rtx x2, x3, x4;
4078 357 : int res ATTRIBUTE_UNUSED;
4079 357 : if (!register_operand (operands[0], i2)
4080 357 : || GET_MODE (x1) != i2)
4081 : return -1;
4082 357 : x2 = XEXP (x1, 0);
4083 357 : if (GET_MODE (x2) != i2)
4084 : return -1;
4085 357 : x3 = XEXP (x2, 0);
4086 357 : if (GET_MODE (x3) != i4
4087 357 : || !register_operand (operands[1], i3))
4088 0 : return -1;
4089 357 : x4 = XEXP (x2, 1);
4090 357 : if (GET_MODE (x4) != i4
4091 357 : || !vector_operand (operands[2], i3)
4092 357 : || !nonimm_or_0_operand (operands[3], i2)
4093 712 : || !register_operand (operands[4], i1))
4094 7 : return -1;
4095 : return 0;
4096 : }
4097 :
4098 : int
4099 368 : pattern1146 (rtx x1)
4100 : {
4101 368 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4102 368 : rtx x2, x3;
4103 368 : int res ATTRIBUTE_UNUSED;
4104 368 : x2 = XVECEXP (x1, 0, 0);
4105 368 : if (GET_MODE (x2) != E_V32HFmode
4106 368 : || !register_operand (operands[0], E_V32HFmode)
4107 350 : || GET_MODE (x1) != E_V32HFmode
4108 350 : || !register_operand (operands[1], E_V32HFmode)
4109 716 : || !register_operand (operands[2], E_V32HFmode))
4110 32 : return -1;
4111 336 : x3 = XVECEXP (x2, 0, 2);
4112 336 : operands[3] = x3;
4113 336 : if (!register_operand (operands[3], E_V32HFmode)
4114 336 : || !const_4_or_8_to_11_operand (operands[4], E_SImode))
4115 8 : return -1;
4116 : return 0;
4117 : }
4118 :
4119 : int
4120 7596 : pattern1156 (rtx x1, machine_mode i1)
4121 : {
4122 7596 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4123 7596 : rtx x2, x3, x4, x5;
4124 7596 : int res ATTRIBUTE_UNUSED;
4125 7596 : if (!register_operand (operands[0], i1)
4126 7596 : || GET_MODE (x1) != i1)
4127 : return -1;
4128 6702 : x2 = XEXP (x1, 0);
4129 6702 : if (GET_MODE (x2) != i1
4130 6702 : || !nonimmediate_operand (operands[2], i1))
4131 1072 : return -1;
4132 5630 : x3 = XEXP (x1, 1);
4133 5630 : if (GET_MODE (x3) != i1
4134 5630 : || !nonimmediate_operand (operands[1], i1))
4135 1053 : return -1;
4136 4577 : x4 = XEXP (x1, 2);
4137 4577 : if (GET_MODE (x4) != i1)
4138 : return -1;
4139 4577 : x5 = XEXP (x4, 1);
4140 4577 : if (GET_MODE (x5) != i1)
4141 : return -1;
4142 : return 0;
4143 : }
4144 :
4145 : int
4146 42 : pattern1164 (rtx x1)
4147 : {
4148 42 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4149 42 : rtx x2, x3, x4, x5, x6;
4150 42 : int res ATTRIBUTE_UNUSED;
4151 42 : x2 = XEXP (x1, 0);
4152 42 : x3 = XEXP (x2, 0);
4153 42 : operands[2] = x3;
4154 42 : x4 = XEXP (x3, 0);
4155 42 : if (GET_CODE (x4) != REG
4156 42 : || REGNO (x4) != 17)
4157 : return -1;
4158 22 : x5 = XEXP (x3, 1);
4159 22 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
4160 : return -1;
4161 22 : x6 = XEXP (x2, 1);
4162 22 : operands[1] = x6;
4163 22 : return pattern1163 (x1); /* [-1, 5] */
4164 : }
4165 :
4166 : int
4167 0 : pattern1171 (rtx x1, machine_mode i1)
4168 : {
4169 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4170 0 : rtx x2, x3;
4171 0 : int res ATTRIBUTE_UNUSED;
4172 0 : if (!nonimmediate_operand (operands[0], i1)
4173 0 : || GET_MODE (x1) != i1)
4174 : return -1;
4175 0 : x2 = XEXP (x1, 0);
4176 0 : if (GET_MODE (x2) != i1)
4177 : return -1;
4178 0 : x3 = XEXP (x2, 0);
4179 0 : if (GET_MODE (x3) != i1
4180 0 : || !nonimmediate_operand (operands[1], i1)
4181 0 : || !immediate_operand (operands[2], i1))
4182 0 : return -1;
4183 : return 0;
4184 : }
4185 :
4186 : int
4187 22213 : pattern1178 (rtx x1)
4188 : {
4189 22213 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4190 22213 : rtx x2, x3, x4;
4191 22213 : int res ATTRIBUTE_UNUSED;
4192 22213 : x2 = XEXP (x1, 1);
4193 22213 : x3 = XEXP (x2, 1);
4194 22213 : if (maybe_ne (SUBREG_BYTE (x3), 0)
4195 22213 : || GET_MODE (x3) != E_QImode)
4196 : return -1;
4197 22213 : x4 = XEXP (x1, 0);
4198 22213 : operands[0] = x4;
4199 22213 : return pattern1177 (x2); /* [-1, 11] */
4200 : }
4201 :
4202 : int
4203 280 : pattern1185 (rtx x1, machine_mode i1, machine_mode i2)
4204 : {
4205 280 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4206 280 : rtx x2, x3;
4207 280 : int res ATTRIBUTE_UNUSED;
4208 280 : x2 = XEXP (x1, 0);
4209 280 : if (GET_MODE (x2) != E_SImode
4210 280 : || !register_operand (operands[0], i2)
4211 560 : || GET_MODE (x1) != i2)
4212 0 : return -1;
4213 280 : x3 = XEXP (x2, 0);
4214 280 : operands[1] = x3;
4215 280 : if (!nonimmediate_operand (operands[1], i1))
4216 : return -1;
4217 : return 0;
4218 : }
4219 :
4220 : int
4221 49 : pattern1191 ()
4222 : {
4223 49 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4224 49 : int res ATTRIBUTE_UNUSED;
4225 49 : switch (GET_MODE (operands[4]))
4226 : {
4227 14 : case E_QImode:
4228 14 : if (!register_operand (operands[4], E_QImode))
4229 : return -1;
4230 : return 0;
4231 :
4232 14 : case E_HImode:
4233 14 : if (!register_operand (operands[4], E_HImode))
4234 : return -1;
4235 : return 1;
4236 :
4237 7 : case E_SImode:
4238 7 : if (!register_operand (operands[4], E_SImode))
4239 : return -1;
4240 : return 2;
4241 :
4242 14 : case E_DImode:
4243 14 : if (!register_operand (operands[4], E_DImode))
4244 : return -1;
4245 : return 3;
4246 :
4247 : default:
4248 : return -1;
4249 : }
4250 : }
4251 :
4252 : int
4253 14 : pattern1202 (rtx x1, machine_mode i1)
4254 : {
4255 14 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4256 14 : rtx x2, x3, x4, x5, x6;
4257 14 : int res ATTRIBUTE_UNUSED;
4258 14 : if (!rtx_equal_p (x1, operands[0]))
4259 : return -1;
4260 14 : x2 = PATTERN (peep2_next_insn (2));
4261 14 : x3 = XEXP (x2, 0);
4262 14 : switch (GET_CODE (x3))
4263 : {
4264 12 : case SUBREG:
4265 12 : case MEM:
4266 12 : if (!rtx_equal_p (x3, operands[1]))
4267 : return -1;
4268 : return 0;
4269 :
4270 2 : case REG:
4271 2 : if (peep2_current_count < 4)
4272 : return -1;
4273 2 : operands[5] = x3;
4274 2 : if (!general_reg_operand (operands[5], i1))
4275 : return -1;
4276 2 : x4 = PATTERN (peep2_next_insn (3));
4277 2 : if (GET_CODE (x4) != SET)
4278 : return -1;
4279 0 : x5 = XEXP (x4, 1);
4280 0 : if (!rtx_equal_p (x5, operands[5]))
4281 : return -1;
4282 0 : x6 = XEXP (x4, 0);
4283 0 : if (!rtx_equal_p (x6, operands[1]))
4284 : return -1;
4285 : return 1;
4286 :
4287 : default:
4288 : return -1;
4289 : }
4290 : }
4291 :
4292 : int
4293 48527 : pattern1210 ()
4294 : {
4295 48527 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4296 48527 : int res ATTRIBUTE_UNUSED;
4297 48527 : switch (GET_MODE (operands[2]))
4298 : {
4299 5659 : case E_HImode:
4300 5659 : if (!extract_high_operator (operands[2], E_HImode))
4301 : return -1;
4302 : return 0;
4303 :
4304 25478 : case E_SImode:
4305 25478 : if (!extract_high_operator (operands[2], E_SImode))
4306 : return -1;
4307 : return 1;
4308 :
4309 17390 : case E_DImode:
4310 17390 : if (!extract_high_operator (operands[2], E_DImode))
4311 : return -1;
4312 : return 2;
4313 :
4314 : default:
4315 : return -1;
4316 : }
4317 : }
4318 :
4319 : int
4320 12 : pattern1218 (rtx x1, machine_mode i1)
4321 : {
4322 12 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4323 12 : rtx x2, x3;
4324 12 : int res ATTRIBUTE_UNUSED;
4325 12 : if (!nonimmediate_operand (operands[0], i1)
4326 12 : || GET_MODE (x1) != i1)
4327 : return -1;
4328 12 : x2 = XEXP (x1, 0);
4329 12 : if (GET_MODE (x2) != i1
4330 12 : || !nonimmediate_operand (operands[1], i1))
4331 0 : return -1;
4332 12 : x3 = XEXP (x2, 1);
4333 12 : if (GET_MODE (x3) != i1
4334 12 : || !x86_64_general_operand (operands[2], i1))
4335 0 : return -1;
4336 : return 0;
4337 : }
4338 :
4339 : int
4340 715 : pattern1226 (rtx x1, machine_mode i1, machine_mode i2)
4341 : {
4342 715 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4343 715 : rtx x2, x3, x4;
4344 715 : int res ATTRIBUTE_UNUSED;
4345 715 : if (!register_operand (operands[0], i1)
4346 715 : || GET_MODE (x1) != i1)
4347 : return -1;
4348 623 : x2 = XEXP (x1, 0);
4349 623 : if (GET_MODE (x2) != i1)
4350 : return -1;
4351 623 : x3 = XEXP (x2, 0);
4352 623 : if (GET_MODE (x3) != i2
4353 623 : || !register_operand (operands[1], i1))
4354 0 : return -1;
4355 623 : x4 = XEXP (x3, 1);
4356 623 : operands[2] = x4;
4357 623 : if (!nonimmediate_operand (operands[2], i1))
4358 : return -1;
4359 : return 0;
4360 : }
4361 :
4362 : int
4363 574 : pattern1233 (rtx x1)
4364 : {
4365 574 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4366 574 : rtx x2, x3, x4;
4367 574 : int res ATTRIBUTE_UNUSED;
4368 574 : x2 = XVECEXP (x1, 0, 2);
4369 574 : x3 = XEXP (x2, 0);
4370 574 : x4 = XEXP (x3, 1);
4371 574 : operands[4] = x4;
4372 574 : switch (GET_MODE (operands[0]))
4373 : {
4374 450 : case E_V16QImode:
4375 450 : if (!register_operand (operands[0], E_V16QImode)
4376 450 : || GET_MODE (x1) != E_V16QImode
4377 450 : || !register_operand (operands[1], E_V16QImode)
4378 441 : || !vector_operand (operands[2], E_V16QImode)
4379 887 : || GET_MODE (x2) != E_V16QImode)
4380 13 : return -1;
4381 437 : switch (GET_MODE (x3))
4382 : {
4383 323 : case E_V4SImode:
4384 323 : if (!register_operand (operands[3], E_V4SImode)
4385 323 : || !const0_operand (operands[4], E_V4SImode))
4386 212 : return -1;
4387 : return 0;
4388 :
4389 110 : case E_V2DImode:
4390 110 : if (!register_operand (operands[3], E_V2DImode)
4391 110 : || !const0_operand (operands[4], E_V2DImode))
4392 44 : return -1;
4393 : return 1;
4394 :
4395 : default:
4396 : return -1;
4397 : }
4398 :
4399 119 : case E_V32QImode:
4400 119 : if (!register_operand (operands[0], E_V32QImode)
4401 119 : || GET_MODE (x1) != E_V32QImode
4402 119 : || !register_operand (operands[1], E_V32QImode)
4403 117 : || !vector_operand (operands[2], E_V32QImode)
4404 232 : || GET_MODE (x2) != E_V32QImode)
4405 6 : return -1;
4406 113 : switch (GET_MODE (x3))
4407 : {
4408 67 : case E_V8SImode:
4409 67 : if (!register_operand (operands[3], E_V8SImode)
4410 67 : || !const0_operand (operands[4], E_V8SImode))
4411 32 : return -1;
4412 : return 2;
4413 :
4414 43 : case E_V4DImode:
4415 43 : if (!register_operand (operands[3], E_V4DImode)
4416 43 : || !const0_operand (operands[4], E_V4DImode))
4417 1 : return -1;
4418 : return 3;
4419 :
4420 : default:
4421 : return -1;
4422 : }
4423 :
4424 : default:
4425 : return -1;
4426 : }
4427 : }
4428 :
4429 : int
4430 5805 : pattern1251 (rtx x1, rtx_code i1)
4431 : {
4432 5805 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4433 5805 : rtx x2, x3, x4, x5, x6;
4434 5805 : int res ATTRIBUTE_UNUSED;
4435 5805 : x2 = XEXP (x1, 1);
4436 5805 : if (maybe_ne (SUBREG_BYTE (x2), 0))
4437 : return -1;
4438 5805 : x3 = XEXP (x2, 0);
4439 5805 : if (GET_CODE (x3) != i1)
4440 : return -1;
4441 1758 : x4 = XEXP (x3, 0);
4442 1758 : if (GET_CODE (x4) != ZERO_EXTEND)
4443 : return -1;
4444 1731 : switch (GET_MODE (operands[0]))
4445 : {
4446 1474 : case E_DImode:
4447 1474 : if (GET_MODE (x1) != E_DImode)
4448 : return -1;
4449 1474 : x5 = XEXP (x1, 0);
4450 1474 : if (GET_MODE (x5) != E_DImode)
4451 : return -1;
4452 1474 : x6 = XEXP (x5, 1);
4453 1474 : if (!const_0_to_63_operand (x6, E_QImode))
4454 : return -1;
4455 : return 0;
4456 :
4457 257 : case E_SImode:
4458 257 : if (GET_MODE (x1) != E_SImode)
4459 : return -1;
4460 257 : x5 = XEXP (x1, 0);
4461 257 : if (GET_MODE (x5) != E_SImode)
4462 : return -1;
4463 257 : x6 = XEXP (x5, 1);
4464 257 : if (!const_0_to_31_operand (x6, E_QImode))
4465 : return -1;
4466 : return 1;
4467 :
4468 : default:
4469 : return -1;
4470 : }
4471 : }
4472 :
4473 : int
4474 2063 : pattern1266 (rtx x1)
4475 : {
4476 2063 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4477 2063 : rtx x2, x3;
4478 2063 : int res ATTRIBUTE_UNUSED;
4479 2063 : if (GET_CODE (x1) != SET)
4480 : return -1;
4481 2047 : x2 = XEXP (x1, 1);
4482 2047 : if (GET_CODE (x2) != PLUS
4483 2047 : || GET_MODE (x2) != E_SImode)
4484 : return -1;
4485 2047 : x3 = XEXP (x2, 0);
4486 2047 : if (GET_CODE (x3) != REG
4487 2047 : || REGNO (x3) != 7
4488 4094 : || GET_MODE (x3) != E_SImode)
4489 0 : return -1;
4490 : return 0;
4491 : }
4492 :
4493 : int
4494 2 : pattern1271 (rtx x1)
4495 : {
4496 2 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4497 2 : rtx x2, x3, x4, x5, x6, x7;
4498 2 : int res ATTRIBUTE_UNUSED;
4499 2 : x2 = XEXP (x1, 2);
4500 2 : switch (GET_CODE (x2))
4501 : {
4502 0 : case REG:
4503 0 : case SUBREG:
4504 0 : operands[1] = x2;
4505 0 : x3 = XEXP (x1, 0);
4506 0 : operands[0] = x3;
4507 0 : x4 = XEXP (x1, 1);
4508 0 : operands[3] = x4;
4509 0 : switch (GET_MODE (x1))
4510 : {
4511 0 : case E_V32QImode:
4512 0 : if (!vector_all_ones_operand (operands[0], E_V32QImode)
4513 0 : || !const0_operand (operands[3], E_V32QImode)
4514 0 : || !register_operand (operands[1], E_SImode))
4515 0 : return -1;
4516 : return 0;
4517 :
4518 0 : case E_V16QImode:
4519 0 : if (!vector_all_ones_operand (operands[0], E_V16QImode)
4520 0 : || !const0_operand (operands[3], E_V16QImode)
4521 0 : || !register_operand (operands[1], E_HImode))
4522 0 : return -1;
4523 : return 1;
4524 :
4525 : default:
4526 : return -1;
4527 : }
4528 :
4529 2 : case UNSPEC:
4530 2 : if (XVECLEN (x2, 0) != 3
4531 2 : || XINT (x2, 1) != 60)
4532 : return -1;
4533 2 : x5 = XVECEXP (x2, 0, 2);
4534 2 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
4535 : return -1;
4536 2 : x3 = XEXP (x1, 0);
4537 2 : operands[3] = x3;
4538 2 : x4 = XEXP (x1, 1);
4539 2 : operands[4] = x4;
4540 2 : x6 = XVECEXP (x2, 0, 0);
4541 2 : operands[0] = x6;
4542 2 : x7 = XVECEXP (x2, 0, 1);
4543 2 : operands[1] = x7;
4544 2 : switch (GET_MODE (x1))
4545 : {
4546 0 : case E_V32QImode:
4547 0 : if (pattern1270 (x2,
4548 : E_V32QImode,
4549 : E_SImode) != 0)
4550 : return -1;
4551 : return 2;
4552 :
4553 2 : case E_V16QImode:
4554 2 : if (pattern1270 (x2,
4555 : E_V16QImode,
4556 : E_HImode) != 0)
4557 : return -1;
4558 : return 3;
4559 :
4560 : default:
4561 : return -1;
4562 : }
4563 :
4564 : default:
4565 : return -1;
4566 : }
4567 : }
4568 :
4569 : int
4570 787 : pattern1297 (rtx x1, machine_mode i1, machine_mode i2)
4571 : {
4572 787 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4573 787 : rtx x2;
4574 787 : int res ATTRIBUTE_UNUSED;
4575 787 : if (!register_operand (operands[0], i2)
4576 787 : || GET_MODE (x1) != i2)
4577 : return -1;
4578 763 : x2 = XEXP (x1, 0);
4579 763 : if (GET_MODE (x2) != i2
4580 763 : || !nonimmediate_operand (operands[1], i2)
4581 736 : || !nonimmediate_operand (operands[2], i2)
4582 736 : || !nonimmediate_operand (operands[3], i2)
4583 1490 : || !register_operand (operands[4], i1))
4584 36 : return -1;
4585 : return 0;
4586 : }
4587 :
4588 : int
4589 378 : pattern1306 (rtx x1, machine_mode i1)
4590 : {
4591 378 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4592 378 : rtx x2;
4593 378 : int res ATTRIBUTE_UNUSED;
4594 378 : if (!register_operand (operands[0], i1)
4595 378 : || GET_MODE (x1) != i1)
4596 : return -1;
4597 367 : x2 = XEXP (x1, 0);
4598 367 : if (GET_MODE (x2) != i1
4599 367 : || !vector_operand (operands[1], i1))
4600 28 : return -1;
4601 : return 0;
4602 : }
4603 :
4604 : int
4605 1476 : pattern1312 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
4606 : {
4607 1476 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4608 1476 : rtx x2, x3;
4609 1476 : int res ATTRIBUTE_UNUSED;
4610 1476 : x2 = XVECEXP (x1, 0, 0);
4611 1476 : x3 = XEXP (x2, 0);
4612 1476 : if (GET_MODE (x3) != i2
4613 1476 : || !register_operand (operands[0], i2)
4614 1421 : || GET_MODE (x1) != i2
4615 1421 : || GET_MODE (x2) != i2
4616 1421 : || !register_operand (operands[1], i3)
4617 1421 : || !nonimm_or_0_operand (operands[2], i2)
4618 1393 : || !register_operand (operands[3], i1)
4619 2817 : || !const48_operand (operands[4], E_SImode))
4620 135 : return -1;
4621 : return 0;
4622 : }
4623 :
4624 : int
4625 253 : pattern1319 (rtx x1, machine_mode i1)
4626 : {
4627 253 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4628 253 : rtx x2;
4629 253 : int res ATTRIBUTE_UNUSED;
4630 253 : if (!register_operand (operands[0], i1)
4631 253 : || GET_MODE (x1) != i1)
4632 : return -1;
4633 242 : x2 = XVECEXP (x1, 0, 0);
4634 242 : if (GET_MODE (x2) != i1
4635 242 : || !register_operand (operands[1], i1)
4636 481 : || !nonimmediate_operand (operands[2], i1))
4637 3 : return -1;
4638 : return 0;
4639 : }
4640 :
4641 : int
4642 748439 : pattern1323 (rtx x1, machine_mode i1, machine_mode i2)
4643 : {
4644 748439 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4645 748439 : rtx x2, x3;
4646 748439 : int res ATTRIBUTE_UNUSED;
4647 748439 : if (!register_operand (operands[0], i1)
4648 748439 : || GET_MODE (x1) != i1)
4649 : return -1;
4650 374924 : x2 = XEXP (x1, 0);
4651 374924 : if (GET_MODE (x2) != i2
4652 374924 : || !register_operand (operands[1], i1))
4653 70600 : return -1;
4654 304324 : x3 = XEXP (x2, 1);
4655 304324 : operands[2] = x3;
4656 304324 : if (!vector_operand (operands[2], i1))
4657 : return -1;
4658 : return 0;
4659 : }
4660 :
4661 : int
4662 9630 : pattern1328 (rtx x1)
4663 : {
4664 9630 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4665 9630 : rtx x2, x3;
4666 9630 : int res ATTRIBUTE_UNUSED;
4667 9630 : if (GET_CODE (x1) != PLUS)
4668 : return -1;
4669 9630 : x2 = XEXP (x1, 0);
4670 9630 : if (GET_CODE (x2) != PLUS)
4671 : return -1;
4672 9630 : x3 = XEXP (x2, 0);
4673 9630 : switch (GET_CODE (x3))
4674 : {
4675 9630 : case LTU:
4676 9630 : case UNLT:
4677 9630 : if (!rtx_equal_p (x3, operands[4]))
4678 : return -1;
4679 : return 0;
4680 :
4681 : default:
4682 : return -1;
4683 : }
4684 : }
4685 :
4686 : int
4687 55393 : pattern1337 (rtx x1)
4688 : {
4689 55393 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4690 55393 : rtx x2, x3;
4691 55393 : int res ATTRIBUTE_UNUSED;
4692 55393 : x2 = XEXP (x1, 1);
4693 55393 : switch (GET_CODE (x2))
4694 : {
4695 9213 : case REG:
4696 9213 : case SUBREG:
4697 9213 : case MEM:
4698 9213 : if (!rtx_equal_p (x2, operands[1]))
4699 : return -1;
4700 2968 : switch (GET_MODE (operands[0]))
4701 : {
4702 1071 : case E_SImode:
4703 1071 : return pattern936 (x1,
4704 1071 : E_SImode); /* [-1, 0] */
4705 :
4706 1524 : case E_DImode:
4707 1524 : if (pattern936 (x1,
4708 : E_DImode) != 0)
4709 : return -1;
4710 : return 1;
4711 :
4712 : default:
4713 : return -1;
4714 : }
4715 :
4716 232 : case NOT:
4717 232 : x3 = XEXP (x2, 0);
4718 232 : if (!rtx_equal_p (x3, operands[1]))
4719 : return -1;
4720 224 : switch (GET_MODE (operands[0]))
4721 : {
4722 80 : case E_SImode:
4723 80 : if (pattern1336 (x1,
4724 : E_SImode) != 0)
4725 : return -1;
4726 : return 2;
4727 :
4728 144 : case E_DImode:
4729 144 : if (pattern1336 (x1,
4730 : E_DImode) != 0)
4731 : return -1;
4732 : return 3;
4733 :
4734 : default:
4735 : return -1;
4736 : }
4737 :
4738 : default:
4739 : return -1;
4740 : }
4741 : }
4742 :
4743 : int
4744 7343 : pattern1354 (rtx x1)
4745 : {
4746 7343 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4747 7343 : rtx x2, x3, x4, x5;
4748 7343 : int res ATTRIBUTE_UNUSED;
4749 7343 : x2 = XEXP (x1, 1);
4750 7343 : if (GET_CODE (x2) != COMPARE
4751 1196 : || GET_MODE (x2) != E_CCZmode)
4752 : return -1;
4753 730 : x3 = XEXP (x2, 1);
4754 730 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
4755 : return -1;
4756 650 : x4 = XEXP (x1, 0);
4757 650 : if (GET_CODE (x4) != REG
4758 650 : || REGNO (x4) != 17
4759 1300 : || GET_MODE (x4) != E_CCZmode)
4760 : return -1;
4761 650 : x5 = XEXP (x2, 0);
4762 650 : if (!rtx_equal_p (x5, operands[1]))
4763 : return -1;
4764 : return 0;
4765 : }
4766 :
4767 : int
4768 1248154 : pattern1363 (rtx x1, machine_mode i1)
4769 : {
4770 1248154 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4771 1248154 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
4772 1248154 : rtx x10, x11, x12, x13, x14, x15, x16;
4773 1248154 : int res ATTRIBUTE_UNUSED;
4774 1248154 : if (!general_reg_operand (operands[0], i1))
4775 : return -1;
4776 1248154 : switch (GET_CODE (x1))
4777 : {
4778 869744 : case SET:
4779 869744 : x2 = XEXP (x1, 1);
4780 869744 : switch (GET_CODE (x2))
4781 : {
4782 295758 : case CONST_INT:
4783 295758 : if (XWINT (x2, 0) != 0L)
4784 : return -1;
4785 170249 : x3 = XEXP (x1, 0);
4786 170249 : if (GET_CODE (x3) != ZERO_EXTRACT)
4787 : return -1;
4788 1 : x4 = XEXP (x3, 1);
4789 1 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
4790 : return -1;
4791 1 : x5 = XEXP (x3, 2);
4792 1 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
4793 : return -1;
4794 1 : x6 = XEXP (x3, 0);
4795 1 : operands[1] = x6;
4796 1 : if (!int248_register_operand (operands[1], E_VOIDmode))
4797 : return -1;
4798 1 : switch (GET_MODE (x3))
4799 : {
4800 : case E_HImode:
4801 : return 0;
4802 :
4803 : case E_SImode:
4804 : return 1;
4805 :
4806 : case E_DImode:
4807 : return 2;
4808 :
4809 : default:
4810 : return -1;
4811 : }
4812 :
4813 132701 : case REG:
4814 132701 : case SUBREG:
4815 132701 : case MEM:
4816 132701 : operands[2] = x2;
4817 132701 : x3 = XEXP (x1, 0);
4818 132701 : if (GET_CODE (x3) != STRICT_LOW_PART)
4819 : return -1;
4820 352 : x6 = XEXP (x3, 0);
4821 352 : operands[1] = x6;
4822 352 : res = pattern1350 ();
4823 352 : if (res >= 0)
4824 352 : return res + 3; /* [3, 4] */
4825 : return -1;
4826 :
4827 : default:
4828 : return -1;
4829 : }
4830 :
4831 62564 : case PARALLEL:
4832 62564 : if (XVECLEN (x1, 0) != 2)
4833 : return -1;
4834 22645 : x7 = XVECEXP (x1, 0, 0);
4835 22645 : if (GET_CODE (x7) != SET)
4836 : return -1;
4837 21106 : x8 = XEXP (x7, 1);
4838 21106 : switch (GET_CODE (x8))
4839 : {
4840 925 : case PLUS:
4841 925 : if (GET_MODE (x8) != i1
4842 925 : || pattern1353 (x1) != 0)
4843 915 : return -1;
4844 : return 5;
4845 :
4846 314 : case IOR:
4847 314 : if (GET_MODE (x8) != i1
4848 314 : || pattern1353 (x1) != 0)
4849 177 : return -1;
4850 : return 6;
4851 :
4852 62 : case XOR:
4853 62 : if (GET_MODE (x8) != i1
4854 62 : || pattern1353 (x1) != 0)
4855 60 : return -1;
4856 : return 7;
4857 :
4858 695 : case UNSPEC:
4859 695 : if (peep2_current_count < 3
4860 695 : || peep2_current_count < 4
4861 681 : || XVECLEN (x8, 0) != 2
4862 649 : || XINT (x8, 1) != 41
4863 649 : || GET_MODE (x8) != E_CCCmode)
4864 : return -1;
4865 645 : x9 = XVECEXP (x8, 0, 1);
4866 645 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
4867 : return -1;
4868 645 : x10 = XEXP (x7, 0);
4869 645 : if (GET_CODE (x10) != REG
4870 645 : || REGNO (x10) != 17
4871 1290 : || GET_MODE (x10) != E_CCCmode)
4872 : return -1;
4873 645 : x11 = XVECEXP (x1, 0, 1);
4874 645 : if (GET_CODE (x11) != SET)
4875 : return -1;
4876 638 : x12 = XEXP (x11, 1);
4877 638 : if (GET_CODE (x12) != NEG
4878 638 : || GET_MODE (x12) != i1)
4879 : return -1;
4880 638 : x13 = XVECEXP (x8, 0, 0);
4881 638 : operands[1] = x13;
4882 638 : if (!general_reg_operand (operands[1], i1))
4883 : return -1;
4884 638 : x14 = XEXP (x12, 0);
4885 638 : if (!rtx_equal_p (x14, operands[1]))
4886 : return -1;
4887 638 : x15 = XEXP (x11, 0);
4888 638 : if (!rtx_equal_p (x15, operands[1]))
4889 : return -1;
4890 638 : x16 = PATTERN (peep2_next_insn (2));
4891 638 : if (pattern1206 (x16,
4892 : i1) != 0)
4893 : return -1;
4894 : return 8;
4895 :
4896 : default:
4897 : return -1;
4898 : }
4899 :
4900 : default:
4901 : return -1;
4902 : }
4903 : }
4904 :
4905 : int
4906 1499 : pattern1418 (rtx x1)
4907 : {
4908 1499 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4909 1499 : rtx x2;
4910 1499 : int res ATTRIBUTE_UNUSED;
4911 1499 : x2 = XVECEXP (x1, 0, 1);
4912 1499 : operands[4] = x2;
4913 1499 : if (!const48_operand (operands[4], E_SImode))
4914 : return -1;
4915 1499 : return pattern1417 (x1); /* [-1, 2] */
4916 : }
4917 :
4918 : int
4919 1002 : pattern1424 (rtx x1, int i1, int i2, int i3, int i4, int i5)
4920 : {
4921 1002 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4922 1002 : rtx x2, x3, x4, x5, x6;
4923 1002 : int res ATTRIBUTE_UNUSED;
4924 1002 : x2 = XVECEXP (x1, 0, 3);
4925 1002 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + i5])
4926 : return -1;
4927 1002 : x3 = XVECEXP (x1, 0, 4);
4928 1002 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + i4])
4929 : return -1;
4930 1002 : x4 = XVECEXP (x1, 0, 5);
4931 1002 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + i3])
4932 : return -1;
4933 1002 : x5 = XVECEXP (x1, 0, 6);
4934 1002 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + i2])
4935 : return -1;
4936 1002 : x6 = XVECEXP (x1, 0, 7);
4937 1002 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
4938 0 : return -1;
4939 : return 0;
4940 : }
4941 :
4942 : int
4943 8780404 : pattern1434 (rtx x1, machine_mode i1)
4944 : {
4945 8780404 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4946 8780404 : int res ATTRIBUTE_UNUSED;
4947 8780404 : if (!register_operand (operands[0], i1)
4948 8338896 : || GET_MODE (x1) != i1
4949 8338896 : || !register_operand (operands[1], i1)
4950 17105302 : || !x86_64_nonmemory_operand (operands[2], i1))
4951 541470 : return -1;
4952 : return 0;
4953 : }
4954 :
4955 : int
4956 55259 : pattern1438 (rtx x1, machine_mode i1)
4957 : {
4958 55259 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4959 55259 : int res ATTRIBUTE_UNUSED;
4960 55259 : if (!nonimmediate_operand (operands[1], i1)
4961 51736 : || !general_operand (operands[2], i1)
4962 51725 : || !nonimmediate_operand (operands[0], i1)
4963 106984 : || GET_MODE (x1) != i1)
4964 3534 : return -1;
4965 : return 0;
4966 : }
4967 :
4968 : int
4969 27526 : pattern1446 (rtx x1)
4970 : {
4971 27526 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4972 27526 : rtx x2, x3, x4, x5;
4973 27526 : int res ATTRIBUTE_UNUSED;
4974 27526 : x2 = XEXP (x1, 1);
4975 27526 : x3 = XEXP (x2, 0);
4976 27526 : x4 = XEXP (x3, 0);
4977 27526 : operands[2] = x4;
4978 27526 : if (!int248_register_operand (operands[2], E_VOIDmode))
4979 : return -1;
4980 25357 : x5 = XEXP (x3, 1);
4981 25357 : operands[3] = x5;
4982 25357 : if (!const_int_operand (operands[3], E_VOIDmode))
4983 : return -1;
4984 25343 : return pattern340 (x1); /* [-1, 1] */
4985 : }
4986 :
4987 : int
4988 0 : pattern1455 (rtx x1, machine_mode i1)
4989 : {
4990 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4991 0 : rtx x2;
4992 0 : int res ATTRIBUTE_UNUSED;
4993 0 : if (!register_operand (operands[0], i1)
4994 0 : || GET_MODE (x1) != i1
4995 0 : || !vector_operand (operands[1], i1)
4996 0 : || !register_operand (operands[2], i1))
4997 0 : return -1;
4998 0 : x2 = XVECEXP (x1, 0, 2);
4999 0 : if (GET_MODE (x2) != i1)
5000 : return -1;
5001 : return 0;
5002 : }
5003 :
5004 : int
5005 302 : pattern1460 (rtx x1, machine_mode i1, machine_mode i2)
5006 : {
5007 302 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5008 302 : rtx x2;
5009 302 : int res ATTRIBUTE_UNUSED;
5010 302 : if (!memory_operand (operands[0], i2)
5011 302 : || GET_MODE (x1) != i2)
5012 : return -1;
5013 296 : x2 = XEXP (x1, 1);
5014 296 : if (GET_MODE (x2) != i2
5015 296 : || !register_operand (operands[1], i1))
5016 4 : return -1;
5017 : return 0;
5018 : }
5019 :
5020 : int
5021 660 : pattern1467 (rtx x1, machine_mode i1, machine_mode i2)
5022 : {
5023 660 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5024 660 : rtx x2;
5025 660 : int res ATTRIBUTE_UNUSED;
5026 660 : if (!register_operand (operands[0], i1)
5027 660 : || GET_MODE (x1) != i1)
5028 : return -1;
5029 625 : x2 = XEXP (x1, 0);
5030 625 : if (GET_MODE (x2) != i1
5031 625 : || !register_operand (operands[1], i1)
5032 612 : || !register_operand (operands[2], i1)
5033 612 : || !bcst_vector_operand (operands[3], i1)
5034 611 : || !const0_operand (operands[5], i1)
5035 1236 : || !register_operand (operands[6], i2))
5036 47 : return -1;
5037 : return 0;
5038 : }
5039 :
5040 : int
5041 8440 : pattern1476 (rtx x1)
5042 : {
5043 8440 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5044 8440 : rtx x2;
5045 8440 : int res ATTRIBUTE_UNUSED;
5046 8440 : switch (GET_MODE (operands[0]))
5047 : {
5048 618 : case E_V32HFmode:
5049 618 : return pattern1474 (x1,
5050 : E_V32HFmode,
5051 618 : E_SImode); /* [-1, 0] */
5052 :
5053 799 : case E_V16HFmode:
5054 799 : if (pattern1474 (x1,
5055 : E_V16HFmode,
5056 : E_HImode) != 0)
5057 : return -1;
5058 : return 1;
5059 :
5060 1638 : case E_V8HFmode:
5061 1638 : if (pattern1474 (x1,
5062 : E_V8HFmode,
5063 : E_QImode) != 0)
5064 : return -1;
5065 : return 2;
5066 :
5067 387 : case E_V16SFmode:
5068 387 : if (pattern1474 (x1,
5069 : E_V16SFmode,
5070 : E_HImode) != 0)
5071 : return -1;
5072 : return 3;
5073 :
5074 325 : case E_V8SFmode:
5075 325 : if (!register_operand (operands[0], E_V8SFmode)
5076 325 : || GET_MODE (x1) != E_V8SFmode)
5077 : return -1;
5078 308 : x2 = XEXP (x1, 2);
5079 308 : if (GET_MODE (x2) != E_QImode)
5080 : return -1;
5081 : return 4;
5082 :
5083 295 : case E_V4SFmode:
5084 295 : if (!register_operand (operands[0], E_V4SFmode)
5085 295 : || GET_MODE (x1) != E_V4SFmode)
5086 : return -1;
5087 293 : x2 = XEXP (x1, 2);
5088 293 : if (GET_MODE (x2) != E_QImode)
5089 : return -1;
5090 : return 5;
5091 :
5092 62 : case E_V8DFmode:
5093 62 : if (pattern1474 (x1,
5094 : E_V8DFmode,
5095 : E_QImode) != 0)
5096 : return -1;
5097 : return 6;
5098 :
5099 302 : case E_V4DFmode:
5100 302 : if (!register_operand (operands[0], E_V4DFmode)
5101 302 : || GET_MODE (x1) != E_V4DFmode)
5102 : return -1;
5103 295 : x2 = XEXP (x1, 2);
5104 295 : if (GET_MODE (x2) != E_QImode)
5105 : return -1;
5106 : return 7;
5107 :
5108 198 : case E_V2DFmode:
5109 198 : if (!register_operand (operands[0], E_V2DFmode)
5110 198 : || GET_MODE (x1) != E_V2DFmode)
5111 : return -1;
5112 196 : x2 = XEXP (x1, 2);
5113 196 : if (GET_MODE (x2) != E_QImode)
5114 : return -1;
5115 : return 8;
5116 :
5117 626 : case E_V4SImode:
5118 626 : if (pattern1475 (x1,
5119 : E_V4SImode,
5120 : E_QImode) != 0)
5121 : return -1;
5122 : return 9;
5123 :
5124 75 : case E_V2DImode:
5125 75 : if (pattern1475 (x1,
5126 : E_V2DImode,
5127 : E_QImode) != 0)
5128 : return -1;
5129 : return 10;
5130 :
5131 574 : case E_V8SImode:
5132 574 : if (pattern1475 (x1,
5133 : E_V8SImode,
5134 : E_QImode) != 0)
5135 : return -1;
5136 : return 11;
5137 :
5138 239 : case E_V4DImode:
5139 239 : if (pattern1475 (x1,
5140 : E_V4DImode,
5141 : E_QImode) != 0)
5142 : return -1;
5143 : return 12;
5144 :
5145 257 : case E_V32QImode:
5146 257 : if (pattern1475 (x1,
5147 : E_V32QImode,
5148 : E_SImode) != 0)
5149 : return -1;
5150 : return 13;
5151 :
5152 112 : case E_V16QImode:
5153 112 : if (pattern1475 (x1,
5154 : E_V16QImode,
5155 : E_HImode) != 0)
5156 : return -1;
5157 : return 14;
5158 :
5159 : default:
5160 : return -1;
5161 : }
5162 : }
5163 :
5164 : int
5165 1066 : pattern1514 (rtx x1, int i1, int i2, int i3, int i4, int i5)
5166 : {
5167 1066 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5168 1066 : rtx x2, x3, x4, x5, x6;
5169 1066 : int res ATTRIBUTE_UNUSED;
5170 1066 : x2 = XVECEXP (x1, 0, 7);
5171 1066 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + i5])
5172 : return -1;
5173 1066 : x3 = XVECEXP (x1, 0, 8);
5174 1066 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + i4])
5175 : return -1;
5176 1066 : x4 = XVECEXP (x1, 0, 9);
5177 1066 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + i3])
5178 : return -1;
5179 1066 : x5 = XVECEXP (x1, 0, 10);
5180 1066 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + i2])
5181 : return -1;
5182 1066 : x6 = XVECEXP (x1, 0, 11);
5183 1066 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + i1]
5184 1066 : || pattern1426 (x1) != 0)
5185 0 : return -1;
5186 : return 0;
5187 : }
5188 :
5189 : int
5190 685 : pattern1524 (rtx x1, machine_mode i1)
5191 : {
5192 685 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5193 685 : rtx x2;
5194 685 : int res ATTRIBUTE_UNUSED;
5195 685 : if (!register_operand (operands[0], i1)
5196 685 : || GET_MODE (x1) != i1
5197 1370 : || !register_operand (operands[2], i1))
5198 68 : return -1;
5199 617 : x2 = XEXP (x1, 1);
5200 617 : if (GET_MODE (x2) != i1
5201 617 : || !nonimmediate_operand (operands[3], i1))
5202 505 : return -1;
5203 : return 0;
5204 : }
5205 :
5206 : int
5207 674583 : pattern1530 ()
5208 : {
5209 674583 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5210 674583 : int res ATTRIBUTE_UNUSED;
5211 674583 : if (!const_0_to_3_operand (operands[3], E_VOIDmode)
5212 627337 : || !const_0_to_3_operand (operands[4], E_VOIDmode)
5213 431832 : || !const_4_to_7_operand (operands[5], E_VOIDmode)
5214 1102997 : || !const_4_to_7_operand (operands[6], E_VOIDmode))
5215 249709 : return -1;
5216 : return 0;
5217 : }
5218 :
5219 : int
5220 3576 : pattern1536 (rtx x1)
5221 : {
5222 3576 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5223 3576 : rtx x2, x3, x4;
5224 3576 : int res ATTRIBUTE_UNUSED;
5225 3576 : x2 = XEXP (x1, 1);
5226 3576 : x3 = XEXP (x2, 1);
5227 3576 : if (maybe_ne (SUBREG_BYTE (x3), 0)
5228 3576 : || GET_MODE (x3) != E_QImode)
5229 : return -1;
5230 3576 : x4 = XEXP (x3, 0);
5231 3576 : switch (GET_CODE (x4))
5232 : {
5233 447 : case ASHIFTRT:
5234 447 : case LSHIFTRT:
5235 447 : case SIGN_EXTRACT:
5236 447 : case ZERO_EXTRACT:
5237 447 : operands[4] = x4;
5238 447 : return pattern1055 (x1); /* [-1, 5] */
5239 :
5240 : default:
5241 : return -1;
5242 : }
5243 : }
5244 :
5245 : int
5246 21917 : pattern1545 (rtx x1)
5247 : {
5248 21917 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5249 21917 : int res ATTRIBUTE_UNUSED;
5250 21917 : switch (GET_MODE (operands[0]))
5251 : {
5252 6728 : case E_V8SFmode:
5253 6728 : if (!nonimmediate_operand (operands[0], E_V8SFmode)
5254 6728 : || GET_MODE (x1) != E_V8SFmode
5255 13456 : || !nonimmediate_operand (operands[1], E_V16SFmode))
5256 0 : return -1;
5257 : return 0;
5258 :
5259 6346 : case E_V8SImode:
5260 6346 : if (!nonimmediate_operand (operands[0], E_V8SImode)
5261 6346 : || GET_MODE (x1) != E_V8SImode
5262 12692 : || !nonimmediate_operand (operands[1], E_V16SImode))
5263 0 : return -1;
5264 : return 1;
5265 :
5266 7372 : case E_V8HImode:
5267 7372 : if (!nonimmediate_operand (operands[0], E_V8HImode)
5268 7372 : || GET_MODE (x1) != E_V8HImode
5269 14744 : || !nonimmediate_operand (operands[1], E_V16HImode))
5270 79 : return -1;
5271 : return 2;
5272 :
5273 517 : case E_V8HFmode:
5274 517 : if (!nonimmediate_operand (operands[0], E_V8HFmode)
5275 517 : || GET_MODE (x1) != E_V8HFmode
5276 1034 : || !nonimmediate_operand (operands[1], E_V16HFmode))
5277 3 : return -1;
5278 : return 3;
5279 :
5280 711 : case E_V8BFmode:
5281 711 : if (!nonimmediate_operand (operands[0], E_V8BFmode)
5282 711 : || GET_MODE (x1) != E_V8BFmode
5283 1422 : || !nonimmediate_operand (operands[1], E_V16BFmode))
5284 34 : return -1;
5285 : return 4;
5286 :
5287 : default:
5288 : return -1;
5289 : }
5290 : }
5291 :
5292 : int
5293 440 : pattern1566 ()
5294 : {
5295 440 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5296 440 : int res ATTRIBUTE_UNUSED;
5297 440 : if (!const0_operand (operands[4], E_V4HFmode))
5298 : return -1;
5299 440 : switch (GET_MODE (operands[1]))
5300 : {
5301 220 : case E_V4DFmode:
5302 220 : if (!vector_operand (operands[1], E_V4DFmode))
5303 : return -1;
5304 : return 0;
5305 :
5306 220 : case E_V4SFmode:
5307 220 : if (!vector_operand (operands[1], E_V4SFmode))
5308 : return -1;
5309 : return 1;
5310 :
5311 : default:
5312 : return -1;
5313 : }
5314 : }
5315 :
5316 : int
5317 24187 : pattern1573 (rtx x1, machine_mode i1, machine_mode i2)
5318 : {
5319 24187 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5320 24187 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5321 24187 : int res ATTRIBUTE_UNUSED;
5322 24187 : x2 = XVECEXP (x1, 0, 0);
5323 24187 : x3 = XEXP (x2, 1);
5324 24187 : x4 = XEXP (x3, 0);
5325 24187 : x5 = XEXP (x4, 0);
5326 24187 : if (GET_MODE (x5) != i2
5327 24187 : || !nonimmediate_operand (operands[1], i1)
5328 48133 : || !const_int_operand (operands[3], i2))
5329 241 : return -1;
5330 23946 : x6 = XEXP (x3, 1);
5331 23946 : if (GET_MODE (x6) != i2)
5332 : return -1;
5333 23946 : x7 = XEXP (x6, 0);
5334 23946 : if (GET_MODE (x7) != i1
5335 23946 : || !x86_64_immediate_operand (operands[2], i1)
5336 47892 : || !nonimmediate_operand (operands[0], i1))
5337 0 : return -1;
5338 23946 : x8 = XVECEXP (x1, 0, 1);
5339 23946 : x9 = XEXP (x8, 1);
5340 23946 : if (GET_MODE (x9) != i1)
5341 : return -1;
5342 : return 0;
5343 : }
5344 :
5345 : int
5346 776 : pattern1588 (rtx x1)
5347 : {
5348 776 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5349 776 : rtx x2, x3, x4;
5350 776 : int res ATTRIBUTE_UNUSED;
5351 776 : x2 = XEXP (x1, 2);
5352 776 : operands[3] = x2;
5353 776 : x3 = XEXP (x1, 1);
5354 776 : x4 = XEXP (x3, 0);
5355 776 : if (!rtx_equal_p (x4, operands[2]))
5356 : return -1;
5357 704 : switch (GET_MODE (operands[0]))
5358 : {
5359 17 : case E_HImode:
5360 17 : return pattern1587 (x1,
5361 17 : E_HImode); /* [-1, 0] */
5362 :
5363 670 : case E_SImode:
5364 670 : if (pattern1587 (x1,
5365 : E_SImode) != 0)
5366 : return -1;
5367 : return 1;
5368 :
5369 17 : case E_DImode:
5370 17 : if (pattern1587 (x1,
5371 : E_DImode) != 0)
5372 : return -1;
5373 : return 2;
5374 :
5375 : default:
5376 : return -1;
5377 : }
5378 : }
5379 :
5380 : int
5381 0 : pattern1596 (rtx x1, machine_mode i1, machine_mode i2)
5382 : {
5383 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5384 0 : rtx x2, x3, x4;
5385 0 : int res ATTRIBUTE_UNUSED;
5386 0 : if (!register_operand (operands[0], i1)
5387 0 : || GET_MODE (x1) != i1)
5388 : return -1;
5389 0 : x2 = XVECEXP (x1, 0, 0);
5390 0 : if (GET_MODE (x2) != i1)
5391 : return -1;
5392 0 : x3 = XEXP (x2, 0);
5393 0 : if (GET_MODE (x3) != i1)
5394 : return -1;
5395 0 : x4 = XEXP (x3, 0);
5396 0 : if (GET_MODE (x4) != i2
5397 0 : || !register_operand (operands[2], i2)
5398 0 : || !register_operand (operands[1], i1))
5399 0 : return -1;
5400 : return 0;
5401 : }
5402 :
5403 : int
5404 507 : pattern1605 (rtx x1, machine_mode i1, machine_mode i2)
5405 : {
5406 507 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5407 507 : rtx x2, x3, x4;
5408 507 : int res ATTRIBUTE_UNUSED;
5409 507 : if (!register_operand (operands[0], i2)
5410 507 : || GET_MODE (x1) != i2)
5411 : return -1;
5412 493 : x2 = XVECEXP (x1, 0, 0);
5413 493 : if (GET_MODE (x2) != i2)
5414 : return -1;
5415 493 : x3 = XEXP (x2, 0);
5416 493 : if (GET_MODE (x3) != i2
5417 493 : || !register_operand (operands[1], i2))
5418 5 : return -1;
5419 488 : x4 = XEXP (x3, 2);
5420 488 : return pattern1604 (x4,
5421 : i1,
5422 488 : i2); /* [-1, 0] */
5423 : }
5424 :
5425 : int
5426 0 : pattern1613 (rtx x1, machine_mode i1, machine_mode i2)
5427 : {
5428 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5429 0 : rtx x2, x3, x4, x5, x6;
5430 0 : int res ATTRIBUTE_UNUSED;
5431 0 : if (!register_operand (operands[0], i1)
5432 0 : || GET_MODE (x1) != i1)
5433 : return -1;
5434 0 : x2 = XVECEXP (x1, 0, 0);
5435 0 : if (GET_MODE (x2) != i1)
5436 : return -1;
5437 0 : x3 = XEXP (x2, 0);
5438 0 : if (GET_MODE (x3) != i1)
5439 : return -1;
5440 0 : x4 = XEXP (x3, 0);
5441 0 : if (GET_MODE (x4) != i1
5442 0 : || !register_operand (operands[1], i1)
5443 0 : || !register_operand (operands[2], i1))
5444 0 : return -1;
5445 0 : x5 = XEXP (x3, 2);
5446 0 : if (GET_MODE (x5) != i1
5447 0 : || !nonimmediate_operand (operands[3], i1)
5448 0 : || !register_operand (operands[4], i2))
5449 0 : return -1;
5450 0 : x6 = XEXP (x2, 1);
5451 0 : if (!rtx_equal_p (x6, operands[3]))
5452 : return -1;
5453 : return 0;
5454 : }
5455 :
5456 : int
5457 126 : pattern1626 (rtx x1, machine_mode i1, machine_mode i2)
5458 : {
5459 126 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5460 126 : rtx x2, x3;
5461 126 : int res ATTRIBUTE_UNUSED;
5462 126 : if (!register_operand (operands[0], i2)
5463 123 : || GET_MODE (x1) != i2
5464 123 : || !register_operand (operands[6], E_QImode)
5465 155 : || !vsib_mem_operator (operands[5], i1))
5466 97 : return -1;
5467 29 : x2 = XVECEXP (x1, 0, 2);
5468 29 : x3 = XEXP (x2, 0);
5469 29 : switch (GET_MODE (x3))
5470 : {
5471 0 : case E_SImode:
5472 0 : return pattern1625 (
5473 0 : E_SImode); /* [-1, 1] */
5474 :
5475 29 : case E_DImode:
5476 29 : res = pattern1625 (
5477 : E_DImode);
5478 29 : if (res >= 0)
5479 17 : return res + 2; /* [2, 3] */
5480 : return -1;
5481 :
5482 : default:
5483 : return -1;
5484 : }
5485 : }
5486 :
5487 : int
5488 13 : pattern1638 (rtx x1, machine_mode i1)
5489 : {
5490 13 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5491 13 : rtx x2, x3, x4, x5, x6;
5492 13 : int res ATTRIBUTE_UNUSED;
5493 13 : if (!nonimmediate_operand (operands[1], i1)
5494 13 : || !general_operand (operands[2], i1)
5495 25 : || !nonimmediate_operand (operands[0], i1))
5496 1 : return -1;
5497 12 : x2 = XVECEXP (x1, 0, 1);
5498 12 : x3 = XEXP (x2, 1);
5499 12 : if (GET_MODE (x3) != i1)
5500 : return -1;
5501 12 : x4 = XVECEXP (x1, 0, 0);
5502 12 : x5 = XEXP (x4, 1);
5503 12 : x6 = XEXP (x5, 1);
5504 12 : if (!rtx_equal_p (x6, operands[2]))
5505 : return -1;
5506 : return 0;
5507 : }
5508 :
5509 : int
5510 2036 : pattern1648 (rtx x1, machine_mode i1)
5511 : {
5512 2036 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5513 2036 : rtx x2, x3, x4;
5514 2036 : int res ATTRIBUTE_UNUSED;
5515 2036 : if (!nonmemory_operand (operands[1], i1))
5516 : return -1;
5517 2036 : operands[3] = x1;
5518 2036 : if (!register_operand (operands[3], i1))
5519 : return -1;
5520 8 : x2 = PATTERN (peep2_next_insn (1));
5521 8 : x3 = XEXP (x2, 1);
5522 8 : if (!rtx_equal_p (x3, operands[3]))
5523 : return -1;
5524 8 : x4 = XEXP (x2, 0);
5525 8 : if (!rtx_equal_p (x4, operands[0]))
5526 : return -1;
5527 : return 0;
5528 : }
5529 :
5530 : int
5531 890 : pattern1656 (rtx x1, machine_mode i1, machine_mode i2)
5532 : {
5533 890 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5534 890 : rtx x2, x3, x4;
5535 890 : int res ATTRIBUTE_UNUSED;
5536 890 : if (!register_operand (operands[0], i1)
5537 890 : || GET_MODE (x1) != i1)
5538 : return -1;
5539 840 : x2 = XEXP (x1, 0);
5540 840 : if (GET_MODE (x2) != i1)
5541 : return -1;
5542 840 : x3 = XEXP (x2, 0);
5543 840 : if (GET_MODE (x3) != i2)
5544 : return -1;
5545 840 : x4 = XEXP (x1, 1);
5546 840 : if (!nonimm_or_0_operand (x4, i1))
5547 : return -1;
5548 : return 0;
5549 : }
5550 :
5551 : int
5552 725 : pattern1663 (rtx x1, machine_mode i1, machine_mode i2)
5553 : {
5554 725 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5555 725 : rtx x2, x3;
5556 725 : int res ATTRIBUTE_UNUSED;
5557 725 : if (!register_operand (operands[0], i2)
5558 725 : || GET_MODE (x1) != i2)
5559 : return -1;
5560 705 : x2 = XVECEXP (x1, 0, 0);
5561 705 : if (GET_MODE (x2) != i2)
5562 : return -1;
5563 705 : x3 = XEXP (x2, 0);
5564 705 : if (GET_MODE (x3) != i2
5565 705 : || !register_operand (operands[1], i2)
5566 700 : || !register_operand (operands[2], i2)
5567 696 : || !register_operand (operands[3], i2)
5568 696 : || !const0_operand (operands[4], i2)
5569 1401 : || !register_operand (operands[5], i1))
5570 19 : return -1;
5571 : return 0;
5572 : }
5573 :
5574 : int
5575 115 : pattern1673 (machine_mode i1)
5576 : {
5577 115 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5578 115 : int res ATTRIBUTE_UNUSED;
5579 115 : if (!vsib_address_operand (operands[4], i1))
5580 : return -1;
5581 115 : switch (GET_MODE (operands[3]))
5582 : {
5583 82 : case E_V4SImode:
5584 82 : if (!register_operand (operands[3], E_V4SImode))
5585 : return -1;
5586 : return 0;
5587 :
5588 33 : case E_V4DImode:
5589 33 : if (!register_operand (operands[3], E_V4DImode))
5590 : return -1;
5591 : return 1;
5592 :
5593 : default:
5594 : return -1;
5595 : }
5596 : }
5597 :
5598 : int
5599 31 : pattern1681 (rtx x1, machine_mode i1)
5600 : {
5601 31 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5602 31 : rtx x2, x3, x4;
5603 31 : int res ATTRIBUTE_UNUSED;
5604 31 : x2 = XVECEXP (x1, 0, 0);
5605 31 : x3 = XEXP (x2, 0);
5606 31 : if (GET_MODE (x3) != i1)
5607 : return -1;
5608 31 : x4 = XEXP (x2, 1);
5609 31 : if (GET_MODE (x4) != i1)
5610 : return -1;
5611 31 : switch (GET_MODE (operands[2]))
5612 : {
5613 19 : case E_SImode:
5614 19 : return pattern1680 (x1,
5615 19 : E_SImode); /* [-1, 0] */
5616 :
5617 12 : case E_DImode:
5618 12 : if (pattern1680 (x1,
5619 : E_DImode) != 0)
5620 : return -1;
5621 : return 1;
5622 :
5623 : default:
5624 : return -1;
5625 : }
5626 : }
5627 :
5628 : int
5629 1356 : pattern1692 (rtx x1, machine_mode i1)
5630 : {
5631 1356 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5632 1356 : rtx x2, x3, x4, x5;
5633 1356 : int res ATTRIBUTE_UNUSED;
5634 1356 : if (!register_operand (operands[0], i1)
5635 1356 : || GET_MODE (x1) != i1)
5636 : return -1;
5637 1316 : x2 = XVECEXP (x1, 0, 0);
5638 1316 : if (GET_MODE (x2) != i1)
5639 : return -1;
5640 1316 : x3 = XEXP (x2, 0);
5641 1316 : if (GET_MODE (x3) != i1)
5642 : return -1;
5643 1316 : x4 = XEXP (x3, 0);
5644 1316 : if (GET_MODE (x4) != i1
5645 1316 : || !register_operand (operands[2], i1))
5646 15 : return -1;
5647 1301 : x5 = XEXP (x4, 2);
5648 1301 : if (GET_MODE (x5) != i1)
5649 : return -1;
5650 : return 0;
5651 : }
5652 :
5653 : int
5654 532 : pattern1701 (rtx x1)
5655 : {
5656 532 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5657 532 : rtx x2, x3, x4, x5, x6, x7, x8;
5658 532 : int res ATTRIBUTE_UNUSED;
5659 532 : if (!register_operand (operands[0], E_DImode))
5660 : return -1;
5661 532 : x2 = XEXP (x1, 0);
5662 532 : x3 = XEXP (x2, 0);
5663 532 : operands[1] = x3;
5664 532 : if (!nonimmediate_operand (operands[1], E_DImode))
5665 : return -1;
5666 532 : x4 = XEXP (x1, 1);
5667 532 : if (GET_MODE (x4) != E_DImode)
5668 : return -1;
5669 532 : x5 = XEXP (x4, 0);
5670 532 : if (GET_MODE (x5) != E_TImode)
5671 : return -1;
5672 532 : x6 = XEXP (x5, 0);
5673 532 : if (GET_MODE (x6) != E_TImode)
5674 : return -1;
5675 532 : x7 = XEXP (x6, 0);
5676 532 : operands[2] = x7;
5677 532 : if (!register_operand (operands[2], E_DImode))
5678 : return -1;
5679 532 : x8 = XEXP (x5, 1);
5680 532 : operands[4] = x8;
5681 532 : if (!const_0_to_255_operand (operands[4], E_QImode))
5682 : return -1;
5683 : return 0;
5684 : }
5685 :
5686 : int
5687 4425 : pattern1712 (rtx x1)
5688 : {
5689 4425 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5690 4425 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5691 4425 : rtx x10, x11;
5692 4425 : int res ATTRIBUTE_UNUSED;
5693 4425 : x2 = XVECEXP (x1, 0, 0);
5694 4425 : x3 = XEXP (x2, 1);
5695 4425 : x4 = XVECEXP (x3, 0, 1);
5696 4425 : operands[4] = x4;
5697 4425 : if (!const_int_operand (operands[4], E_SImode))
5698 : return -1;
5699 4425 : x5 = XEXP (x2, 0);
5700 4425 : if (!rtx_equal_p (x5, operands[0]))
5701 : return -1;
5702 4425 : x6 = XVECEXP (x1, 0, 1);
5703 4425 : x7 = XEXP (x6, 1);
5704 4425 : x8 = XEXP (x7, 0);
5705 4425 : if (!rtx_equal_p (x8, operands[1]))
5706 : return -1;
5707 4425 : x9 = XEXP (x7, 1);
5708 4425 : if (!rtx_equal_p (x9, operands[0]))
5709 : return -1;
5710 4425 : x10 = XEXP (x6, 0);
5711 4425 : if (!rtx_equal_p (x10, operands[1]))
5712 : return -1;
5713 4425 : x11 = PATTERN (peep2_next_insn (2));
5714 4425 : return pattern1546 (x11); /* [-1, 0] */
5715 : }
5716 :
5717 : int
5718 448 : pattern1725 (rtx x1, machine_mode i1, machine_mode i2)
5719 : {
5720 448 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5721 448 : rtx x2, x3;
5722 448 : int res ATTRIBUTE_UNUSED;
5723 448 : if (!register_operand (operands[0], i1)
5724 413 : || GET_MODE (x1) != i1
5725 413 : || !vsib_mem_operator (operands[6], i2)
5726 861 : || !register_operand (operands[4], i1))
5727 296 : return -1;
5728 152 : x2 = XVECEXP (x1, 0, 1);
5729 152 : x3 = XEXP (x2, 0);
5730 152 : switch (GET_MODE (x3))
5731 : {
5732 0 : case E_SImode:
5733 0 : return pattern1724 (
5734 0 : E_SImode); /* [-1, 1] */
5735 :
5736 152 : case E_DImode:
5737 152 : res = pattern1724 (
5738 : E_DImode);
5739 152 : if (res >= 0)
5740 34 : return res + 2; /* [2, 3] */
5741 : return -1;
5742 :
5743 : default:
5744 : return -1;
5745 : }
5746 : }
5747 :
5748 : int
5749 829 : pattern1736 (rtx x1, machine_mode i1, machine_mode i2)
5750 : {
5751 829 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5752 829 : int res ATTRIBUTE_UNUSED;
5753 829 : if (!register_operand (operands[6], i1)
5754 829 : || !register_operand (operands[2], i2)
5755 1608 : || !scratch_operand (operands[1], i1))
5756 50 : return -1;
5757 779 : switch (GET_MODE (x1))
5758 : {
5759 0 : case E_SImode:
5760 0 : if (!vsib_address_operand (operands[3], E_SImode))
5761 : return -1;
5762 : return 0;
5763 :
5764 779 : case E_DImode:
5765 779 : if (!vsib_address_operand (operands[3], E_DImode))
5766 : return -1;
5767 : return 1;
5768 :
5769 : default:
5770 : return -1;
5771 : }
5772 : }
5773 :
5774 : int
5775 308 : pattern1745 (rtx x1, machine_mode i1, machine_mode i2)
5776 : {
5777 308 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5778 308 : rtx x2, x3;
5779 308 : int res ATTRIBUTE_UNUSED;
5780 308 : if (!register_operand (operands[0], i2)
5781 304 : || GET_MODE (x1) != i2
5782 304 : || !register_operand (operands[6], E_QImode)
5783 214 : || !vsib_mem_operator (operands[5], i1)
5784 522 : || !scratch_operand (operands[1], E_QImode))
5785 94 : return -1;
5786 214 : x2 = XVECEXP (x1, 0, 2);
5787 214 : x3 = XEXP (x2, 0);
5788 214 : switch (GET_MODE (x3))
5789 : {
5790 0 : case E_SImode:
5791 0 : return pattern1744 (
5792 0 : E_SImode); /* [-1, 1] */
5793 :
5794 214 : case E_DImode:
5795 214 : res = pattern1744 (
5796 : E_DImode);
5797 214 : if (res >= 0)
5798 208 : return res + 2; /* [2, 3] */
5799 : return -1;
5800 :
5801 : default:
5802 : return -1;
5803 : }
5804 : }
5805 :
5806 : int
5807 354 : pattern1757 (rtx x1, machine_mode i1)
5808 : {
5809 354 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5810 354 : rtx x2, x3, x4, x5;
5811 354 : int res ATTRIBUTE_UNUSED;
5812 354 : if (!register_operand (operands[0], i1)
5813 354 : || GET_MODE (x1) != i1)
5814 : return -1;
5815 346 : x2 = XVECEXP (x1, 0, 0);
5816 346 : if (GET_MODE (x2) != i1)
5817 : return -1;
5818 346 : x3 = XEXP (x2, 0);
5819 346 : if (GET_MODE (x3) != i1)
5820 : return -1;
5821 346 : x4 = XEXP (x3, 0);
5822 346 : if (GET_MODE (x4) != i1)
5823 : return -1;
5824 346 : x5 = XEXP (x4, 0);
5825 346 : if (GET_MODE (x5) != i1
5826 346 : || !register_operand (operands[2], i1)
5827 341 : || !nonimmediate_operand (operands[1], i1)
5828 341 : || !register_operand (operands[3], i1)
5829 686 : || !const0_operand (operands[4], i1))
5830 6 : return -1;
5831 : return 0;
5832 : }
5833 :
5834 : int
5835 616 : pattern1766 (rtx x1, machine_mode i1, machine_mode i2)
5836 : {
5837 616 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5838 616 : rtx x2, x3;
5839 616 : int res ATTRIBUTE_UNUSED;
5840 616 : if (!register_operand (operands[0], i2)
5841 612 : || GET_MODE (x1) != i2
5842 612 : || !register_operand (operands[1], i2)
5843 612 : || !register_operand (operands[7], E_QImode)
5844 574 : || !vsib_mem_operator (operands[6], i1)
5845 1190 : || !scratch_operand (operands[2], E_QImode))
5846 42 : return -1;
5847 574 : x2 = XVECEXP (x1, 0, 2);
5848 574 : x3 = XEXP (x2, 0);
5849 574 : switch (GET_MODE (x3))
5850 : {
5851 0 : case E_SImode:
5852 0 : return pattern1765 (
5853 0 : E_SImode); /* [-1, 1] */
5854 :
5855 574 : case E_DImode:
5856 574 : res = pattern1765 (
5857 : E_DImode);
5858 574 : if (res >= 0)
5859 543 : return res + 2; /* [2, 3] */
5860 : return -1;
5861 :
5862 : default:
5863 : return -1;
5864 : }
5865 : }
5866 :
5867 : int
5868 755 : pattern1779 (rtx x1, machine_mode i1, machine_mode i2)
5869 : {
5870 755 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5871 755 : rtx x2, x3;
5872 755 : int res ATTRIBUTE_UNUSED;
5873 755 : if (!register_operand (operands[0], i1)
5874 755 : || GET_MODE (x1) != i1)
5875 : return -1;
5876 688 : x2 = XEXP (x1, 0);
5877 688 : if (GET_MODE (x2) != i1)
5878 : return -1;
5879 688 : x3 = XEXP (x2, 0);
5880 688 : if (GET_MODE (x3) != i2
5881 688 : || !register_operand (operands[1], i1)
5882 688 : || !nonimmediate_operand (operands[2], i1)
5883 671 : || !const_0_to_7_operand (operands[3], E_VOIDmode)
5884 671 : || !const_0_to_7_operand (operands[4], E_VOIDmode)
5885 643 : || !const_0_to_7_operand (operands[5], E_VOIDmode)
5886 643 : || !const_0_to_7_operand (operands[6], E_VOIDmode)
5887 643 : || !const_8_to_15_operand (operands[7], E_VOIDmode)
5888 643 : || !const_8_to_15_operand (operands[8], E_VOIDmode)
5889 643 : || !const_8_to_15_operand (operands[9], E_VOIDmode)
5890 643 : || !const_8_to_15_operand (operands[10], E_VOIDmode)
5891 1331 : || !nonimm_or_0_operand (operands[11], i1))
5892 52 : return -1;
5893 : return 0;
5894 : }
5895 :
5896 : int
5897 813 : pattern1795 (machine_mode i1)
5898 : {
5899 813 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5900 813 : int res ATTRIBUTE_UNUSED;
5901 813 : if (!vsib_address_operand (operands[0], i1))
5902 : return -1;
5903 794 : switch (GET_MODE (operands[2]))
5904 : {
5905 400 : case E_V16SImode:
5906 400 : return pattern1793 (
5907 : E_HImode,
5908 : E_V16SFmode,
5909 400 : E_V16SImode); /* [-1, 0] */
5910 :
5911 394 : case E_V8DImode:
5912 394 : if (pattern1793 (
5913 : E_QImode,
5914 : E_V8SFmode,
5915 : E_V8DImode) != 0)
5916 : return -1;
5917 : return 1;
5918 :
5919 : default:
5920 : return -1;
5921 : }
5922 : }
5923 :
5924 : int
5925 24697 : pattern1803 (rtx x1, machine_mode i1)
5926 : {
5927 24697 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5928 24697 : int res ATTRIBUTE_UNUSED;
5929 24697 : if (!register_operand (operands[1], i1)
5930 24697 : || !register_operand (operands[0], i1)
5931 24697 : || GET_MODE (x1) != i1
5932 24697 : || !register_operand (operands[3], i1)
5933 49394 : || !register_operand (operands[4], i1))
5934 4708 : return -1;
5935 : return 0;
5936 : }
5937 :
5938 : int
5939 718 : pattern1809 (rtx x1, int i1, int i2, int i3, int i4)
5940 : {
5941 718 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5942 718 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5943 718 : int res ATTRIBUTE_UNUSED;
5944 718 : x2 = XVECEXP (x1, 0, 12);
5945 718 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + i4])
5946 : return -1;
5947 718 : x3 = XVECEXP (x1, 0, 13);
5948 718 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + i3])
5949 : return -1;
5950 718 : x4 = XVECEXP (x1, 0, 14);
5951 718 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + i2])
5952 : return -1;
5953 718 : x5 = XVECEXP (x1, 0, 15);
5954 718 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
5955 : return -1;
5956 718 : x6 = XVECEXP (x1, 0, 16);
5957 718 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
5958 : return -1;
5959 718 : x7 = XVECEXP (x1, 0, 17);
5960 718 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
5961 : return -1;
5962 718 : x8 = XVECEXP (x1, 0, 18);
5963 718 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
5964 : return -1;
5965 718 : x9 = XVECEXP (x1, 0, 19);
5966 718 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 11])
5967 0 : return -1;
5968 : return 0;
5969 : }
5970 :
5971 : int
5972 3552 : pattern1823 (rtx x1, machine_mode i1)
5973 : {
5974 3552 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5975 3552 : rtx x2, x3, x4, x5, x6, x7;
5976 3552 : int res ATTRIBUTE_UNUSED;
5977 3552 : x2 = XVECEXP (x1, 0, 0);
5978 3552 : x3 = XEXP (x2, 1);
5979 3552 : x4 = XEXP (x3, 0);
5980 3552 : x5 = XEXP (x4, 0);
5981 3552 : if (GET_MODE (x5) != i1
5982 3552 : || !ix86_carry_flag_operator (operands[4], i1)
5983 7104 : || !nonimmediate_operand (operands[1], i1))
5984 0 : return -1;
5985 3552 : x6 = XVECEXP (x1, 0, 1);
5986 3552 : x7 = XEXP (x6, 1);
5987 3552 : return pattern1822 (x7,
5988 3552 : i1); /* [-1, 0] */
5989 : }
5990 :
5991 : int
5992 190 : pattern1831 (rtx x1, int i1, int i2, int i3, int i4, int i5)
5993 : {
5994 190 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5995 190 : rtx x2, x3, x4, x5, x6;
5996 190 : int res ATTRIBUTE_UNUSED;
5997 190 : x2 = XVECEXP (x1, 0, 17);
5998 190 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + i5])
5999 : return -1;
6000 190 : x3 = XVECEXP (x1, 0, 18);
6001 190 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + i4])
6002 : return -1;
6003 190 : x4 = XVECEXP (x1, 0, 19);
6004 190 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + i3])
6005 : return -1;
6006 190 : x5 = XVECEXP (x1, 0, 20);
6007 190 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + i2])
6008 : return -1;
6009 190 : x6 = XVECEXP (x1, 0, 21);
6010 190 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
6011 0 : return -1;
6012 : return 0;
6013 : }
6014 :
6015 : int
6016 246 : pattern1842 (rtx x1, machine_mode i1)
6017 : {
6018 246 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6019 246 : int res ATTRIBUTE_UNUSED;
6020 246 : if (!register_operand (operands[5], i1))
6021 : return -1;
6022 110 : switch (GET_MODE (x1))
6023 : {
6024 0 : case E_SImode:
6025 0 : if (!vsib_address_operand (operands[3], E_SImode))
6026 : return -1;
6027 : return 0;
6028 :
6029 110 : case E_DImode:
6030 110 : if (!vsib_address_operand (operands[3], E_DImode))
6031 : return -1;
6032 : return 1;
6033 :
6034 : default:
6035 : return -1;
6036 : }
6037 : }
6038 :
6039 : int
6040 8805 : pattern1850 (rtx x1)
6041 : {
6042 8805 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6043 8805 : rtx x2, x3, x4, x5;
6044 8805 : int res ATTRIBUTE_UNUSED;
6045 8805 : x2 = XEXP (x1, 1);
6046 8805 : if (GET_CODE (x2) != COMPARE)
6047 : return -1;
6048 2697 : x3 = XEXP (x2, 1);
6049 2697 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6050 : return -1;
6051 386 : x4 = XEXP (x1, 0);
6052 386 : if (GET_CODE (x4) != REG
6053 386 : || REGNO (x4) != 17)
6054 : return -1;
6055 386 : x5 = XEXP (x2, 0);
6056 386 : if (!rtx_equal_p (x5, operands[0]))
6057 : return -1;
6058 : return 0;
6059 : }
6060 :
6061 : int
6062 96545 : pattern1856 (rtx x1, machine_mode i1)
6063 : {
6064 96545 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6065 96545 : rtx x2, x3, x4, x5;
6066 96545 : int res ATTRIBUTE_UNUSED;
6067 96545 : if (!register_operand (operands[2], i1)
6068 96545 : || !register_operand (operands[0], i1))
6069 0 : return -1;
6070 96545 : x2 = XVECEXP (x1, 0, 1);
6071 96545 : x3 = XEXP (x2, 1);
6072 96545 : if (GET_MODE (x3) != i1
6073 96545 : || !register_operand (operands[3], i1)
6074 96545 : || !register_operand (operands[5], i1)
6075 186697 : || !register_operand (operands[1], i1))
6076 6393 : return -1;
6077 90152 : x4 = XVECEXP (x1, 0, 2);
6078 90152 : x5 = XEXP (x4, 1);
6079 90152 : if (GET_MODE (x5) != i1
6080 90152 : || !register_operand (operands[4], i1))
6081 1185 : return -1;
6082 : return 0;
6083 : }
6084 :
6085 : int
6086 194 : pattern1864 (machine_mode i1)
6087 : {
6088 194 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6089 194 : int res ATTRIBUTE_UNUSED;
6090 194 : if (!vsib_address_operand (operands[2], i1))
6091 : return -1;
6092 186 : switch (GET_MODE (operands[3]))
6093 : {
6094 106 : case E_V8SImode:
6095 106 : if (!register_operand (operands[3], E_V8SImode)
6096 106 : || !register_operand (operands[4], E_V8SImode))
6097 40 : return -1;
6098 : return 0;
6099 :
6100 80 : case E_V4DImode:
6101 80 : if (!register_operand (operands[3], E_V4DImode)
6102 80 : || !register_operand (operands[4], E_V4SImode))
6103 16 : return -1;
6104 : return 1;
6105 :
6106 : default:
6107 : return -1;
6108 : }
6109 : }
6110 :
6111 : int
6112 38138 : pattern1871 (rtx x1, machine_mode i1, machine_mode i2)
6113 : {
6114 38138 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6115 38138 : rtx x2, x3, x4, x5, x6, x7, x8;
6116 38138 : int res ATTRIBUTE_UNUSED;
6117 38138 : if (!nonimmediate_operand (operands[1], i1))
6118 : return -1;
6119 38138 : x2 = XVECEXP (x1, 0, 0);
6120 38138 : x3 = XEXP (x2, 1);
6121 38138 : x4 = XEXP (x3, 1);
6122 38138 : if (GET_MODE (x4) != i2
6123 38138 : || !ix86_carry_flag_operator (operands[4], i2))
6124 0 : return -1;
6125 38138 : x5 = XEXP (x4, 1);
6126 38138 : if (GET_MODE (x5) != i2
6127 38138 : || !nonimmediate_operand (operands[2], i1)
6128 74627 : || !nonimmediate_operand (operands[0], i1))
6129 1649 : return -1;
6130 36489 : x6 = XVECEXP (x1, 0, 1);
6131 36489 : x7 = XEXP (x6, 1);
6132 36489 : if (GET_MODE (x7) != i1)
6133 : return -1;
6134 36489 : x8 = XEXP (x7, 0);
6135 36489 : if (GET_MODE (x8) != i1
6136 36489 : || !ix86_carry_flag_operator (operands[5], i1))
6137 0 : return -1;
6138 : return 0;
6139 : }
6140 :
6141 : int
6142 38 : pattern1881 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
6143 : {
6144 38 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6145 38 : rtx x2, x3, x4;
6146 38 : int res ATTRIBUTE_UNUSED;
6147 38 : if (!register_operand (operands[0], i2)
6148 38 : || GET_MODE (x1) != i2)
6149 : return -1;
6150 36 : x2 = XEXP (x1, 0);
6151 36 : if (GET_MODE (x2) != i1
6152 36 : || !register_operand (operands[2], i2)
6153 36 : || !vsib_mem_operator (operands[7], i3)
6154 36 : || !register_operand (operands[5], i2)
6155 68 : || !scratch_operand (operands[1], i1))
6156 4 : return -1;
6157 32 : x3 = XVECEXP (x2, 0, 1);
6158 32 : x4 = XEXP (x3, 0);
6159 32 : switch (GET_MODE (x4))
6160 : {
6161 0 : case E_SImode:
6162 0 : if (!vsib_address_operand (operands[3], E_SImode))
6163 : return -1;
6164 : return 0;
6165 :
6166 32 : case E_DImode:
6167 32 : if (!vsib_address_operand (operands[3], E_DImode))
6168 : return -1;
6169 : return 1;
6170 :
6171 : default:
6172 : return -1;
6173 : }
6174 : }
6175 :
6176 : int
6177 24 : pattern1890 (rtx x1, machine_mode i1)
6178 : {
6179 24 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6180 24 : rtx x2, x3, x4, x5, x6, x7, x8;
6181 24 : int res ATTRIBUTE_UNUSED;
6182 24 : if (!x86_64_general_operand (operands[1], i1))
6183 : return -1;
6184 24 : x2 = XVECEXP (x1, 0, 1);
6185 24 : x3 = XEXP (x2, 1);
6186 24 : if (XINT (x3, 1) != 112
6187 24 : || GET_MODE (x3) != i1)
6188 : return -1;
6189 24 : x4 = XVECEXP (x1, 0, 2);
6190 24 : x5 = XEXP (x4, 1);
6191 24 : if (GET_CODE (x5) != COMPARE
6192 24 : || GET_MODE (x5) != E_CCmode
6193 24 : || !memory_operand (operands[2], i1)
6194 48 : || !register_operand (operands[3], i1))
6195 0 : return -1;
6196 24 : x6 = XEXP (x4, 0);
6197 24 : if (GET_MODE (x6) != E_CCmode)
6198 : return -1;
6199 24 : x7 = XEXP (x5, 0);
6200 24 : if (!rtx_equal_p (x7, operands[2]))
6201 : return -1;
6202 24 : x8 = XEXP (x5, 1);
6203 24 : if (!rtx_equal_p (x8, operands[0])
6204 24 : || !register_operand (operands[5], i1)
6205 48 : || !x86_64_general_operand (operands[6], i1))
6206 0 : return -1;
6207 : return 0;
6208 : }
6209 :
6210 : int
6211 17 : pattern1897 (rtx x1, machine_mode i1)
6212 : {
6213 17 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6214 17 : rtx x2, x3, x4, x5, x6, x7;
6215 17 : int res ATTRIBUTE_UNUSED;
6216 17 : if (!register_operand (operands[4], E_SImode)
6217 17 : || GET_MODE (x1) != E_SImode
6218 34 : || !nonmemory_operand (operands[2], E_SImode))
6219 0 : return -1;
6220 17 : x2 = PATTERN (peep2_next_insn (3));
6221 17 : x3 = XEXP (x2, 1);
6222 17 : operands[5] = x3;
6223 17 : if (!register_operand (operands[5], i1))
6224 : return -1;
6225 17 : x4 = PATTERN (peep2_next_insn (4));
6226 17 : x5 = XEXP (x4, 1);
6227 17 : x6 = XEXP (x5, 0);
6228 17 : operands[6] = x6;
6229 17 : x7 = XEXP (x5, 1);
6230 17 : operands[7] = x7;
6231 17 : return 0;
6232 : }
6233 :
6234 : int
6235 321 : pattern1905 (rtx x1, machine_mode i1, machine_mode i2)
6236 : {
6237 321 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6238 321 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6239 321 : rtx x10, x11;
6240 321 : int res ATTRIBUTE_UNUSED;
6241 321 : x2 = XVECEXP (x1, 0, 0);
6242 321 : x3 = XEXP (x2, 1);
6243 321 : x4 = XEXP (x3, 0);
6244 321 : x5 = XEXP (x4, 0);
6245 321 : if (GET_MODE (x5) != i2
6246 321 : || !ix86_carry_flag_operator (operands[4], i2))
6247 0 : return -1;
6248 321 : x6 = XEXP (x5, 1);
6249 321 : if (GET_MODE (x6) != i2
6250 321 : || !nonimmediate_operand (operands[1], i1)
6251 642 : || !const_int_operand (operands[6], i2))
6252 0 : return -1;
6253 321 : x7 = XEXP (x3, 1);
6254 321 : if (GET_MODE (x7) != i2)
6255 : return -1;
6256 321 : x8 = XEXP (x7, 0);
6257 321 : if (GET_MODE (x8) != i1)
6258 : return -1;
6259 321 : x9 = XEXP (x8, 0);
6260 321 : if (GET_MODE (x9) != i1
6261 321 : || !ix86_carry_flag_operator (operands[5], i1))
6262 0 : return -1;
6263 321 : x10 = XVECEXP (x1, 0, 1);
6264 321 : x11 = XEXP (x10, 1);
6265 321 : return pattern1904 (x11,
6266 321 : i1); /* [-1, 0] */
6267 : }
6268 :
6269 : int
6270 1546 : pattern1914 (rtx x1)
6271 : {
6272 1546 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6273 1546 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6274 1546 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
6275 1546 : int res ATTRIBUTE_UNUSED;
6276 1546 : x2 = XEXP (x1, 0);
6277 1546 : x3 = XEXP (x2, 0);
6278 1546 : x4 = XEXP (x3, 0);
6279 1546 : x5 = XEXP (x4, 0);
6280 1546 : x6 = XEXP (x5, 0);
6281 1546 : operands[1] = x6;
6282 1546 : if (!nonimmediate_operand (operands[1], E_V8HImode))
6283 : return -1;
6284 1351 : x7 = XEXP (x3, 1);
6285 1351 : x8 = XEXP (x7, 0);
6286 1351 : x9 = XEXP (x8, 0);
6287 1351 : operands[2] = x9;
6288 1351 : if (!nonimmediate_operand (operands[2], E_V8HImode))
6289 : return -1;
6290 1169 : x10 = XEXP (x1, 1);
6291 1169 : operands[3] = x10;
6292 1169 : if (!register_operand (operands[3], E_V4SImode))
6293 : return -1;
6294 1157 : x11 = XEXP (x2, 1);
6295 1157 : x12 = XEXP (x11, 0);
6296 1157 : x13 = XEXP (x12, 0);
6297 1157 : x14 = XEXP (x13, 0);
6298 1157 : if (!rtx_equal_p (x14, operands[1]))
6299 : return -1;
6300 1157 : x15 = XEXP (x11, 1);
6301 1157 : x16 = XEXP (x15, 0);
6302 1157 : x17 = XEXP (x16, 0);
6303 1157 : if (!rtx_equal_p (x17, operands[2]))
6304 : return -1;
6305 : return 0;
6306 : }
6307 :
6308 : int
6309 34148 : recog_5 (rtx x1 ATTRIBUTE_UNUSED,
6310 : rtx_insn *insn ATTRIBUTE_UNUSED,
6311 : int *pnum_clobbers ATTRIBUTE_UNUSED)
6312 : {
6313 34148 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6314 34148 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6315 34148 : rtx x10;
6316 34148 : int res ATTRIBUTE_UNUSED;
6317 34148 : x2 = XEXP (x1, 1);
6318 34148 : x3 = XEXP (x2, 0);
6319 34148 : if (GET_MODE (x3) != E_QImode)
6320 : return -1;
6321 10007 : x4 = XEXP (x1, 0);
6322 10007 : if (GET_MODE (x4) != E_CCCmode
6323 8882 : || GET_MODE (x2) != E_CCCmode)
6324 : return -1;
6325 8882 : x5 = XEXP (x3, 0);
6326 8882 : if (GET_MODE (x5) != E_QImode)
6327 : return -1;
6328 8882 : x6 = XEXP (x2, 1);
6329 8882 : if (GET_MODE (x6) != E_QImode)
6330 : return -1;
6331 8882 : switch (GET_CODE (x5))
6332 : {
6333 39 : case LTU:
6334 39 : x7 = XEXP (x5, 0);
6335 39 : if (GET_CODE (x7) != REG
6336 39 : || REGNO (x7) != 17
6337 78 : || GET_MODE (x7) != E_CCCmode)
6338 : return -1;
6339 3 : x8 = XEXP (x5, 1);
6340 3 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
6341 3 : || GET_CODE (x6) != GEU)
6342 : return -1;
6343 3 : x9 = XEXP (x6, 0);
6344 3 : if (GET_CODE (x9) != REG
6345 3 : || REGNO (x9) != 17
6346 6 : || GET_MODE (x9) != E_CCCmode)
6347 : return -1;
6348 3 : x10 = XEXP (x6, 1);
6349 3 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6350 : return -1;
6351 : return 68; /* *x86_cmc */
6352 :
6353 8386 : case GEU:
6354 8386 : x7 = XEXP (x5, 0);
6355 8386 : if (GET_CODE (x7) != REG
6356 8386 : || REGNO (x7) != 17)
6357 : return -1;
6358 8053 : x8 = XEXP (x5, 1);
6359 8053 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
6360 8053 : || GET_CODE (x6) != LTU)
6361 : return -1;
6362 8053 : x9 = XEXP (x6, 0);
6363 8053 : if (GET_CODE (x9) != REG
6364 8053 : || REGNO (x9) != 17)
6365 : return -1;
6366 8053 : x10 = XEXP (x6, 1);
6367 8053 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6368 : return -1;
6369 8053 : switch (GET_MODE (x7))
6370 : {
6371 759 : case E_CCmode:
6372 759 : if (GET_MODE (x9) != E_CCmode
6373 1518 : || !
6374 : #line 10216 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6375 : (ix86_pre_reload_split ()))
6376 : return -1;
6377 : return 555; /* *setcc_qi_addqi3_cconly_overflow_1_cc */
6378 :
6379 : case E_CCCmode:
6380 : if (GET_MODE (x9) != E_CCCmode
6381 : || !
6382 : #line 10216 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6383 : (ix86_pre_reload_split ()))
6384 : return -1;
6385 : return 556; /* *setcc_qi_addqi3_cconly_overflow_1_ccc */
6386 :
6387 : default:
6388 : return -1;
6389 : }
6390 :
6391 : default:
6392 : return -1;
6393 : }
6394 : }
6395 :
6396 : int
6397 : recog_11 (rtx x1 ATTRIBUTE_UNUSED,
6398 : rtx_insn *insn ATTRIBUTE_UNUSED,
6399 : int *pnum_clobbers ATTRIBUTE_UNUSED)
6400 : {
6401 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6402 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6403 : rtx x10, x11;
6404 : int res ATTRIBUTE_UNUSED;
6405 : x2 = XEXP (x1, 1);
6406 : if (GET_MODE (x2) != E_CCFPmode)
6407 : return -1;
6408 : x3 = XVECEXP (x2, 0, 0);
6409 : if (GET_CODE (x3) != VEC_SELECT)
6410 : return -1;
6411 : x4 = XEXP (x3, 1);
6412 : if (GET_CODE (x4) != PARALLEL
6413 : || XVECLEN (x4, 0) != 1)
6414 : return -1;
6415 : x5 = XVECEXP (x4, 0, 0);
6416 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6417 : return -1;
6418 : x6 = XVECEXP (x2, 0, 1);
6419 : if (GET_CODE (x6) != VEC_SELECT)
6420 : return -1;
6421 : x7 = XEXP (x6, 1);
6422 : if (GET_CODE (x7) != PARALLEL
6423 : || XVECLEN (x7, 0) != 1)
6424 : return -1;
6425 : x8 = XVECEXP (x7, 0, 0);
6426 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6427 : return -1;
6428 : x9 = XEXP (x1, 0);
6429 : if (GET_CODE (x9) != REG
6430 : || REGNO (x9) != 17
6431 : || GET_MODE (x9) != E_CCFPmode)
6432 : return -1;
6433 : x10 = XEXP (x3, 0);
6434 : operands[0] = x10;
6435 : x11 = XEXP (x6, 0);
6436 : operands[1] = x11;
6437 : switch (GET_MODE (x3))
6438 : {
6439 : case E_HFmode:
6440 : if (!register_operand (operands[0], E_V8HFmode)
6441 : || GET_MODE (x6) != E_HFmode
6442 : || !nonimmediate_operand (operands[1], E_V8HFmode)
6443 : || !(
6444 : #line 5208 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6445 : (TARGET_AVX10_2) &&
6446 : #line 1356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6447 : (TARGET_AVX512FP16)))
6448 : return -1;
6449 : return 3739; /* avx10_2_comxhf */
6450 :
6451 : case E_SFmode:
6452 : if (!register_operand (operands[0], E_V4SFmode)
6453 : || GET_MODE (x6) != E_SFmode
6454 : || !nonimmediate_operand (operands[1], E_V4SFmode)
6455 : || !
6456 : #line 5208 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6457 : (TARGET_AVX10_2))
6458 : return -1;
6459 : return 3743; /* avx10_2_comxsf */
6460 :
6461 : case E_DFmode:
6462 : if (!register_operand (operands[0], E_V2DFmode)
6463 : || GET_MODE (x6) != E_DFmode
6464 : || !nonimmediate_operand (operands[1], E_V2DFmode)
6465 : || !
6466 : #line 5208 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6467 : (TARGET_AVX10_2))
6468 : return -1;
6469 : return 3747; /* avx10_2_comxdf */
6470 :
6471 : default:
6472 : return -1;
6473 : }
6474 : }
6475 :
6476 : int
6477 : recog_13 (rtx x1 ATTRIBUTE_UNUSED,
6478 : rtx_insn *insn ATTRIBUTE_UNUSED,
6479 : int *pnum_clobbers ATTRIBUTE_UNUSED)
6480 : {
6481 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6482 : rtx x2, x3, x4, x5, x6;
6483 : int res ATTRIBUTE_UNUSED;
6484 : x2 = XEXP (x1, 1);
6485 : switch (XINT (x2, 1))
6486 : {
6487 : case 106:
6488 : if (GET_MODE (x2) != E_TImode)
6489 : return -1;
6490 : x3 = XEXP (x1, 0);
6491 : operands[0] = x3;
6492 : if (!push_operand (operands[0], E_TImode))
6493 : return -1;
6494 : x4 = XVECEXP (x2, 0, 0);
6495 : operands[1] = x4;
6496 : if (!register_operand (operands[1], E_DImode))
6497 : return -1;
6498 : x5 = XVECEXP (x2, 0, 1);
6499 : operands[2] = x5;
6500 : if (!register_operand (operands[2], E_DImode)
6501 : || !
6502 : #line 3900 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6503 : (TARGET_APX_PUSH2POP2))
6504 : return -1;
6505 : return 163; /* push2_di */
6506 :
6507 : case 41:
6508 : if (GET_MODE (x2) != E_CCCmode
6509 : || pattern254 (x1) != 0)
6510 : return -1;
6511 : x4 = XVECEXP (x2, 0, 0);
6512 : switch (GET_CODE (x4))
6513 : {
6514 : case LTU:
6515 : if (pattern724 (x4) != 0)
6516 : return -1;
6517 : x6 = XEXP (x4, 0);
6518 : switch (GET_MODE (x6))
6519 : {
6520 : case E_CCmode:
6521 : if (!
6522 : #line 10247 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6523 : (ix86_pre_reload_split ()))
6524 : return -1;
6525 : return 560; /* *setcc_qi_negqi_ccc_2_cc */
6526 :
6527 : case E_CCCmode:
6528 : if (!
6529 : #line 10247 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6530 : (ix86_pre_reload_split ()))
6531 : return -1;
6532 : return 561; /* *setcc_qi_negqi_ccc_2_ccc */
6533 :
6534 : default:
6535 : return -1;
6536 : }
6537 :
6538 : case REG:
6539 : case SUBREG:
6540 : case MEM:
6541 : if (pnum_clobbers == NULL)
6542 : return -1;
6543 : operands[1] = x4;
6544 : switch (GET_MODE (operands[1]))
6545 : {
6546 : case E_QImode:
6547 : if (!nonimmediate_operand (operands[1], E_QImode))
6548 : return -1;
6549 : *pnum_clobbers = 1;
6550 : return 1016; /* *negqi_ccc_2 */
6551 :
6552 : case E_HImode:
6553 : if (!nonimmediate_operand (operands[1], E_HImode))
6554 : return -1;
6555 : *pnum_clobbers = 1;
6556 : return 1017; /* *neghi_ccc_2 */
6557 :
6558 : case E_SImode:
6559 : if (!nonimmediate_operand (operands[1], E_SImode))
6560 : return -1;
6561 : *pnum_clobbers = 1;
6562 : return 1018; /* *negsi_ccc_2 */
6563 :
6564 : case E_DImode:
6565 : if (!nonimmediate_operand (operands[1], E_DImode)
6566 : || !
6567 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6568 : (TARGET_64BIT))
6569 : return -1;
6570 : *pnum_clobbers = 1;
6571 : return 1019; /* *negdi_ccc_2 */
6572 :
6573 : default:
6574 : return -1;
6575 : }
6576 :
6577 : default:
6578 : return -1;
6579 : }
6580 :
6581 : case 67:
6582 : if (pnum_clobbers == NULL
6583 : || GET_MODE (x2) != E_XFmode)
6584 : return -1;
6585 : x3 = XEXP (x1, 0);
6586 : operands[0] = x3;
6587 : if (!register_operand (operands[0], E_XFmode))
6588 : return -1;
6589 : x4 = XVECEXP (x2, 0, 0);
6590 : operands[2] = x4;
6591 : if (!register_operand (operands[2], E_XFmode))
6592 : return -1;
6593 : x5 = XVECEXP (x2, 0, 1);
6594 : operands[1] = x5;
6595 : if (!register_operand (operands[1], E_XFmode)
6596 : || !
6597 : #line 24515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6598 : (TARGET_USE_FANCY_MATH_387
6599 : && flag_unsafe_math_optimizations))
6600 : return -1;
6601 : *pnum_clobbers = 1;
6602 : return 1755; /* atan2xf3 */
6603 :
6604 : case 68:
6605 : if (pnum_clobbers == NULL
6606 : || pattern165 (x1,
6607 : E_XFmode) != 0
6608 : || !
6609 : #line 24818 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6610 : (TARGET_USE_FANCY_MATH_387
6611 : && flag_unsafe_math_optimizations))
6612 : return -1;
6613 : *pnum_clobbers = 1;
6614 : return 1756; /* fyl2xxf3_i387 */
6615 :
6616 : case 69:
6617 : if (pnum_clobbers == NULL
6618 : || pattern165 (x1,
6619 : E_XFmode) != 0
6620 : || !
6621 : #line 24915 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6622 : (TARGET_USE_FANCY_MATH_387
6623 : && flag_unsafe_math_optimizations))
6624 : return -1;
6625 : *pnum_clobbers = 1;
6626 : return 1757; /* fyl2xp1xf3_i387 */
6627 :
6628 : case 59:
6629 : x3 = XEXP (x1, 0);
6630 : operands[0] = x3;
6631 : x4 = XVECEXP (x2, 0, 0);
6632 : operands[1] = x4;
6633 : x5 = XVECEXP (x2, 0, 1);
6634 : operands[2] = x5;
6635 : switch (GET_MODE (operands[0]))
6636 : {
6637 : case E_SFmode:
6638 : if (pattern64 (x2,
6639 : E_SFmode) != 0
6640 : || !
6641 : #line 25224 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6642 : (TARGET_AVX512F))
6643 : return -1;
6644 : return 1761; /* avx512f_scalefsf2 */
6645 :
6646 : case E_DFmode:
6647 : if (pattern64 (x2,
6648 : E_DFmode) != 0
6649 : || !
6650 : #line 25224 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6651 : (TARGET_AVX512F))
6652 : return -1;
6653 : return 1762; /* avx512f_scalefdf2 */
6654 :
6655 : default:
6656 : return -1;
6657 : }
6658 :
6659 : case 95:
6660 : x3 = XEXP (x1, 0);
6661 : operands[0] = x3;
6662 : x4 = XVECEXP (x2, 0, 0);
6663 : operands[1] = x4;
6664 : x5 = XVECEXP (x2, 0, 1);
6665 : operands[2] = x5;
6666 : if (!const_0_to_15_operand (operands[2], E_SImode))
6667 : return -1;
6668 : switch (GET_MODE (operands[0]))
6669 : {
6670 : case E_HFmode:
6671 : if (!register_operand (operands[0], E_HFmode)
6672 : || GET_MODE (x2) != E_HFmode
6673 : || !nonimmediate_operand (operands[1], E_HFmode)
6674 : || !(
6675 : #line 25342 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6676 : (TARGET_SSE4_1) &&
6677 : #line 1356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6678 : (TARGET_AVX512FP16)))
6679 : return -1;
6680 : return 1763; /* sse4_1_roundhf2 */
6681 :
6682 : case E_SFmode:
6683 : if (!register_operand (operands[0], E_SFmode)
6684 : || GET_MODE (x2) != E_SFmode
6685 : || !nonimmediate_operand (operands[1], E_SFmode)
6686 : || !
6687 : #line 25342 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6688 : (TARGET_SSE4_1))
6689 : return -1;
6690 : return 1764; /* sse4_1_roundsf2 */
6691 :
6692 : case E_DFmode:
6693 : if (!register_operand (operands[0], E_DFmode)
6694 : || GET_MODE (x2) != E_DFmode
6695 : || !nonimmediate_operand (operands[1], E_DFmode)
6696 : || !
6697 : #line 25342 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6698 : (TARGET_SSE4_1))
6699 : return -1;
6700 : return 1765; /* sse4_1_rounddf2 */
6701 :
6702 : default:
6703 : return -1;
6704 : }
6705 :
6706 : case 64:
6707 : switch (pattern65 (x1))
6708 : {
6709 : case 0:
6710 : if (!
6711 : #line 27217 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6712 : (TARGET_AVX512FP16))
6713 : return -1;
6714 : return 1855; /* *ieee_smaxhf3 */
6715 :
6716 : case 1:
6717 : if (!
6718 : #line 27229 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6719 : (SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH))
6720 : return -1;
6721 : return 1857; /* *ieee_smaxsf3 */
6722 :
6723 : case 2:
6724 : if (!
6725 : #line 27229 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6726 : (SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH))
6727 : return -1;
6728 : return 1859; /* *ieee_smaxdf3 */
6729 :
6730 : default:
6731 : return -1;
6732 : }
6733 :
6734 : case 63:
6735 : switch (pattern65 (x1))
6736 : {
6737 : case 0:
6738 : if (!
6739 : #line 27217 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6740 : (TARGET_AVX512FP16))
6741 : return -1;
6742 : return 1856; /* *ieee_sminhf3 */
6743 :
6744 : case 1:
6745 : if (!
6746 : #line 27229 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6747 : (SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH))
6748 : return -1;
6749 : return 1858; /* *ieee_sminsf3 */
6750 :
6751 : case 2:
6752 : if (!
6753 : #line 27229 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6754 : (SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH))
6755 : return -1;
6756 : return 1860; /* *ieee_smindf3 */
6757 :
6758 : default:
6759 : return -1;
6760 : }
6761 :
6762 : case 114:
6763 : if (pattern66 (x1,
6764 : E_V2SFmode) != 0
6765 : || !
6766 : #line 934 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
6767 : (TARGET_3DNOW))
6768 : return -1;
6769 : return 2116; /* mmx_rcpit1v2sf3 */
6770 :
6771 : case 115:
6772 : if (pattern66 (x1,
6773 : E_V2SFmode) != 0
6774 : || !
6775 : #line 945 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
6776 : (TARGET_3DNOW))
6777 : return -1;
6778 : return 2117; /* mmx_rcpit2v2sf3 */
6779 :
6780 : case 117:
6781 : if (pattern66 (x1,
6782 : E_V2SFmode) != 0
6783 : || !
6784 : #line 982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
6785 : (TARGET_3DNOW))
6786 : return -1;
6787 : return 2119; /* mmx_rsqit1v2sf3 */
6788 :
6789 : case 58:
6790 : switch (pattern68 (x1))
6791 : {
6792 : case 0:
6793 : if (!
6794 : #line 4820 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
6795 : (TARGET_MMX || TARGET_MMX_WITH_SSE))
6796 : return -1;
6797 : return 2349; /* mmx_packuswb */
6798 :
6799 : case 1:
6800 : if (!
6801 : #line 4859 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
6802 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
6803 : return -1;
6804 : return 2351; /* mmx_packusdw */
6805 :
6806 : default:
6807 : return -1;
6808 : }
6809 :
6810 : case 53:
6811 : x3 = XEXP (x1, 0);
6812 : operands[0] = x3;
6813 : x4 = XVECEXP (x2, 0, 0);
6814 : operands[1] = x4;
6815 : x5 = XVECEXP (x2, 0, 1);
6816 : operands[2] = x5;
6817 : if (!vector_operand (operands[2], E_V16QImode))
6818 : return -1;
6819 : switch (GET_MODE (operands[0]))
6820 : {
6821 : case E_V8QImode:
6822 : if (!register_operand (operands[0], E_V8QImode)
6823 : || GET_MODE (x2) != E_V8QImode
6824 : || !register_operand (operands[1], E_V8QImode)
6825 : || !
6826 : #line 5517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
6827 : (TARGET_SSSE3 && TARGET_MMX_WITH_SSE))
6828 : return -1;
6829 : return 2386; /* mmx_pshufbv8qi3 */
6830 :
6831 : case E_V4QImode:
6832 : if (!register_operand (operands[0], E_V4QImode)
6833 : || GET_MODE (x2) != E_V4QImode
6834 : || !register_operand (operands[1], E_V4QImode)
6835 : || !
6836 : #line 5535 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
6837 : (TARGET_SSSE3))
6838 : return -1;
6839 : return 2387; /* mmx_pshufbv4qi3 */
6840 :
6841 : default:
6842 : return -1;
6843 : }
6844 :
6845 : case 57:
6846 : if (GET_MODE (x2) != E_V1DImode)
6847 : return -1;
6848 : x3 = XEXP (x1, 0);
6849 : operands[0] = x3;
6850 : if (!register_operand (operands[0], E_V1DImode))
6851 : return -1;
6852 : x4 = XVECEXP (x2, 0, 0);
6853 : operands[1] = x4;
6854 : if (!register_mmxmem_operand (operands[1], E_V8QImode))
6855 : return -1;
6856 : x5 = XVECEXP (x2, 0, 1);
6857 : operands[2] = x5;
6858 : if (!register_mmxmem_operand (operands[2], E_V8QImode)
6859 : || !
6860 : #line 6505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
6861 : ((TARGET_MMX || TARGET_MMX_WITH_SSE) && (TARGET_SSE || TARGET_3DNOW_A)
6862 : && ix86_binary_operator_ok (PLUS, V8QImode, operands)))
6863 : return -1;
6864 : return 2439; /* *mmx_psadbw */
6865 :
6866 : case 177:
6867 : if (pattern69 (x1) != 0)
6868 : return -1;
6869 : switch (pattern966 ())
6870 : {
6871 : case 0:
6872 : if (!(
6873 : #line 2358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6874 : (TARGET_AVX512F) &&
6875 : #line 2102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6876 : (TARGET_AVX512DQ)))
6877 : return -1;
6878 : return 2672; /* ktestqi */
6879 :
6880 : case 1:
6881 : if (!(
6882 : #line 2358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6883 : (TARGET_AVX512F) &&
6884 : #line 2102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6885 : (TARGET_AVX512DQ)))
6886 : return -1;
6887 : return 2673; /* ktesthi */
6888 :
6889 : case 2:
6890 : if (!(
6891 : #line 2358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6892 : (TARGET_AVX512F) &&
6893 : #line 2103 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6894 : (TARGET_AVX512BW)))
6895 : return -1;
6896 : return 2674; /* ktestsi */
6897 :
6898 : case 3:
6899 : if (!(
6900 : #line 2358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6901 : (TARGET_AVX512F) &&
6902 : #line 2103 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6903 : (TARGET_AVX512BW)))
6904 : return -1;
6905 : return 2675; /* ktestdi */
6906 :
6907 : default:
6908 : return -1;
6909 : }
6910 :
6911 : case 179:
6912 : return recog_9 (x1, insn, pnum_clobbers);
6913 :
6914 : case 62:
6915 : return recog_11 (x1, insn, pnum_clobbers);
6916 :
6917 : case 159:
6918 : switch (pattern71 (x1))
6919 : {
6920 : case 0:
6921 : if (!(
6922 : #line 19390 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6923 : (TARGET_AVX512F) &&
6924 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6925 : (TARGET_AVX512VL && TARGET_AVX512BW)))
6926 : return -1;
6927 : return 8157; /* avx512vl_testmv16qi3 */
6928 :
6929 : case 1:
6930 : if (!(
6931 : #line 19390 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6932 : (TARGET_AVX512F) &&
6933 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6934 : (TARGET_AVX512VL && TARGET_AVX512BW)))
6935 : return -1;
6936 : return 8161; /* avx512vl_testmv16hi3 */
6937 :
6938 : case 2:
6939 : if (!
6940 : #line 19390 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6941 : (TARGET_AVX512F))
6942 : return -1;
6943 : return 8165; /* avx512f_testmv16si3 */
6944 :
6945 : case 3:
6946 : if (!(
6947 : #line 19390 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6948 : (TARGET_AVX512F) &&
6949 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6950 : (TARGET_AVX512VL && TARGET_AVX512BW)))
6951 : return -1;
6952 : return 8163; /* avx512vl_testmv8hi3 */
6953 :
6954 : case 4:
6955 : if (!(
6956 : #line 19390 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6957 : (TARGET_AVX512F) &&
6958 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6959 : (TARGET_AVX512VL)))
6960 : return -1;
6961 : return 8167; /* avx512vl_testmv8si3 */
6962 :
6963 : case 5:
6964 : if (!(
6965 : #line 19390 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6966 : (TARGET_AVX512F) &&
6967 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6968 : (TARGET_AVX512VL)))
6969 : return -1;
6970 : return 8169; /* avx512vl_testmv4si3 */
6971 :
6972 : case 6:
6973 : if (!
6974 : #line 19390 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6975 : (TARGET_AVX512F))
6976 : return -1;
6977 : return 8171; /* avx512f_testmv8di3 */
6978 :
6979 : case 7:
6980 : if (!(
6981 : #line 19390 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6982 : (TARGET_AVX512F) &&
6983 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6984 : (TARGET_AVX512VL)))
6985 : return -1;
6986 : return 8173; /* avx512vl_testmv4di3 */
6987 :
6988 : case 8:
6989 : if (!(
6990 : #line 19390 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6991 : (TARGET_AVX512F) &&
6992 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6993 : (TARGET_AVX512VL)))
6994 : return -1;
6995 : return 8175; /* avx512vl_testmv2di3 */
6996 :
6997 : default:
6998 : return -1;
6999 : }
7000 :
7001 : case 160:
7002 : switch (pattern71 (x1))
7003 : {
7004 : case 0:
7005 : if (!(
7006 : #line 19401 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7007 : (TARGET_AVX512F) &&
7008 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7009 : (TARGET_AVX512VL && TARGET_AVX512BW)))
7010 : return -1;
7011 : return 8181; /* avx512vl_testnmv16qi3 */
7012 :
7013 : case 1:
7014 : if (!(
7015 : #line 19401 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7016 : (TARGET_AVX512F) &&
7017 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7018 : (TARGET_AVX512VL && TARGET_AVX512BW)))
7019 : return -1;
7020 : return 8185; /* avx512vl_testnmv16hi3 */
7021 :
7022 : case 2:
7023 : if (!
7024 : #line 19401 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7025 : (TARGET_AVX512F))
7026 : return -1;
7027 : return 8189; /* avx512f_testnmv16si3 */
7028 :
7029 : case 3:
7030 : if (!(
7031 : #line 19401 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7032 : (TARGET_AVX512F) &&
7033 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7034 : (TARGET_AVX512VL && TARGET_AVX512BW)))
7035 : return -1;
7036 : return 8187; /* avx512vl_testnmv8hi3 */
7037 :
7038 : case 4:
7039 : if (!(
7040 : #line 19401 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7041 : (TARGET_AVX512F) &&
7042 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7043 : (TARGET_AVX512VL)))
7044 : return -1;
7045 : return 8191; /* avx512vl_testnmv8si3 */
7046 :
7047 : case 5:
7048 : if (!(
7049 : #line 19401 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7050 : (TARGET_AVX512F) &&
7051 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7052 : (TARGET_AVX512VL)))
7053 : return -1;
7054 : return 8193; /* avx512vl_testnmv4si3 */
7055 :
7056 : case 6:
7057 : if (!
7058 : #line 19401 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7059 : (TARGET_AVX512F))
7060 : return -1;
7061 : return 8195; /* avx512f_testnmv8di3 */
7062 :
7063 : case 7:
7064 : if (!(
7065 : #line 19401 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7066 : (TARGET_AVX512F) &&
7067 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7068 : (TARGET_AVX512VL)))
7069 : return -1;
7070 : return 8197; /* avx512vl_testnmv4di3 */
7071 :
7072 : case 8:
7073 : if (!(
7074 : #line 19401 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7075 : (TARGET_AVX512F) &&
7076 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7077 : (TARGET_AVX512VL)))
7078 : return -1;
7079 : return 8199; /* avx512vl_testnmv2di3 */
7080 :
7081 : default:
7082 : return -1;
7083 : }
7084 :
7085 : case 121:
7086 : x3 = XEXP (x1, 0);
7087 : operands[0] = x3;
7088 : x4 = XVECEXP (x2, 0, 0);
7089 : operands[1] = x4;
7090 : x5 = XVECEXP (x2, 0, 1);
7091 : operands[2] = x5;
7092 : switch (GET_MODE (operands[0]))
7093 : {
7094 : case E_V8QImode:
7095 : if (pattern738 (x2,
7096 : E_V8QImode) != 0
7097 : || !
7098 : #line 23556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7099 : ((TARGET_MMX || TARGET_MMX_WITH_SSE) && TARGET_SSSE3))
7100 : return -1;
7101 : return 8681; /* ssse3_psignv8qi3 */
7102 :
7103 : case E_V4HImode:
7104 : if (pattern67 (x2,
7105 : E_V4HImode) != 0
7106 : || !
7107 : #line 23556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7108 : ((TARGET_MMX || TARGET_MMX_WITH_SSE) && TARGET_SSSE3))
7109 : return -1;
7110 : return 8682; /* ssse3_psignv4hi3 */
7111 :
7112 : case E_V2SImode:
7113 : if (pattern738 (x2,
7114 : E_V2SImode) != 0
7115 : || !
7116 : #line 23556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7117 : ((TARGET_MMX || TARGET_MMX_WITH_SSE) && TARGET_SSSE3))
7118 : return -1;
7119 : return 8683; /* ssse3_psignv2si3 */
7120 :
7121 : default:
7122 : return -1;
7123 : }
7124 :
7125 : case 149:
7126 : if (pattern69 (x1) != 0)
7127 : return -1;
7128 : switch (GET_MODE (operands[0]))
7129 : {
7130 : case E_V8SFmode:
7131 : if (!register_operand (operands[0], E_V8SFmode)
7132 : || !nonimmediate_operand (operands[1], E_V8SFmode)
7133 : || !
7134 : #line 25887 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7135 : (TARGET_AVX))
7136 : return -1;
7137 : return 8980; /* avx_vtestps256 */
7138 :
7139 : case E_V4SFmode:
7140 : if (!register_operand (operands[0], E_V4SFmode)
7141 : || !nonimmediate_operand (operands[1], E_V4SFmode)
7142 : || !
7143 : #line 25887 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7144 : (TARGET_AVX))
7145 : return -1;
7146 : return 8981; /* avx_vtestps */
7147 :
7148 : case E_V4DFmode:
7149 : if (!register_operand (operands[0], E_V4DFmode)
7150 : || !nonimmediate_operand (operands[1], E_V4DFmode)
7151 : || !
7152 : #line 25887 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7153 : (TARGET_AVX))
7154 : return -1;
7155 : return 8982; /* avx_vtestpd256 */
7156 :
7157 : case E_V2DFmode:
7158 : if (!register_operand (operands[0], E_V2DFmode)
7159 : || !nonimmediate_operand (operands[1], E_V2DFmode)
7160 : || !(
7161 : #line 25887 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7162 : (TARGET_AVX) &&
7163 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7164 : (TARGET_SSE2)))
7165 : return -1;
7166 : return 8983; /* avx_vtestpd */
7167 :
7168 : default:
7169 : return -1;
7170 : }
7171 :
7172 : case 131:
7173 : return recog_10 (x1, insn, pnum_clobbers);
7174 :
7175 : case 151:
7176 : if (GET_MODE (x2) != E_V4HImode)
7177 : return -1;
7178 : x3 = XEXP (x1, 0);
7179 : operands[0] = x3;
7180 : if (!memory_operand (operands[0], E_V4HImode))
7181 : return -1;
7182 : x4 = XVECEXP (x2, 0, 0);
7183 : operands[1] = x4;
7184 : if (!register_operand (operands[1], E_V4SFmode))
7185 : return -1;
7186 : x5 = XVECEXP (x2, 0, 1);
7187 : operands[2] = x5;
7188 : if (!const_0_to_255_operand (operands[2], E_SImode)
7189 : || !
7190 : #line 29857 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7191 : (TARGET_F16C || TARGET_AVX512VL))
7192 : return -1;
7193 : return 9732; /* *vcvtps2ph_store */
7194 :
7195 : case 194:
7196 : x3 = XEXP (x1, 0);
7197 : operands[0] = x3;
7198 : x4 = XVECEXP (x2, 0, 0);
7199 : operands[1] = x4;
7200 : x5 = XVECEXP (x2, 0, 1);
7201 : operands[2] = x5;
7202 : if (!const_0_to_255_operand (operands[2], E_VOIDmode))
7203 : return -1;
7204 : switch (GET_MODE (operands[0]))
7205 : {
7206 : case E_HImode:
7207 : switch (pattern653 (x2,
7208 : E_HImode))
7209 : {
7210 : case 0:
7211 : if (!(
7212 : #line 30555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7213 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V16HFmode)) &&
7214 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7215 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
7216 : return -1;
7217 : return 10057; /* avx512dq_fpclassv16hf */
7218 :
7219 : case 1:
7220 : if (!
7221 : #line 30555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7222 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V16SFmode)))
7223 : return -1;
7224 : return 10061; /* avx512dq_fpclassv16sf */
7225 :
7226 : default:
7227 : return -1;
7228 : }
7229 :
7230 : case E_QImode:
7231 : if (!register_operand (operands[0], E_QImode)
7232 : || GET_MODE (x2) != E_QImode)
7233 : return -1;
7234 : switch (GET_MODE (operands[1]))
7235 : {
7236 : case E_V8HFmode:
7237 : if (!vector_operand (operands[1], E_V8HFmode)
7238 : || !(
7239 : #line 30555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7240 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V8HFmode)) &&
7241 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7242 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
7243 : return -1;
7244 : return 10059; /* avx512dq_fpclassv8hf */
7245 :
7246 : case E_V8SFmode:
7247 : if (!vector_operand (operands[1], E_V8SFmode)
7248 : || !(
7249 : #line 30555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7250 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V8SFmode)) &&
7251 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7252 : (TARGET_AVX512VL)))
7253 : return -1;
7254 : return 10063; /* avx512dq_fpclassv8sf */
7255 :
7256 : case E_V4SFmode:
7257 : if (!vector_operand (operands[1], E_V4SFmode)
7258 : || !(
7259 : #line 30555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7260 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V4SFmode)) &&
7261 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7262 : (TARGET_AVX512VL)))
7263 : return -1;
7264 : return 10065; /* avx512dq_fpclassv4sf */
7265 :
7266 : case E_V8DFmode:
7267 : if (!vector_operand (operands[1], E_V8DFmode)
7268 : || !
7269 : #line 30555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7270 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V8DFmode)))
7271 : return -1;
7272 : return 10067; /* avx512dq_fpclassv8df */
7273 :
7274 : case E_V4DFmode:
7275 : if (!vector_operand (operands[1], E_V4DFmode)
7276 : || !(
7277 : #line 30555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7278 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V4DFmode)) &&
7279 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7280 : (TARGET_AVX512VL)))
7281 : return -1;
7282 : return 10069; /* avx512dq_fpclassv4df */
7283 :
7284 : case E_V2DFmode:
7285 : if (!vector_operand (operands[1], E_V2DFmode)
7286 : || !(
7287 : #line 30555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7288 : (TARGET_AVX512DQ || VALID_AVX512FP16_REG_MODE(V2DFmode)) &&
7289 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7290 : (TARGET_AVX512VL)))
7291 : return -1;
7292 : return 10071; /* avx512dq_fpclassv2df */
7293 :
7294 : default:
7295 : return -1;
7296 : }
7297 :
7298 : default:
7299 : return -1;
7300 : }
7301 :
7302 : case 215:
7303 : if (GET_MODE (x2) != E_HImode)
7304 : return -1;
7305 : x3 = XEXP (x1, 0);
7306 : operands[0] = x3;
7307 : if (!register_operand (operands[0], E_HImode))
7308 : return -1;
7309 : x4 = XVECEXP (x2, 0, 0);
7310 : operands[1] = x4;
7311 : if (!register_operand (operands[1], E_V16QImode))
7312 : return -1;
7313 : x5 = XVECEXP (x2, 0, 1);
7314 : operands[2] = x5;
7315 : if (!nonimmediate_operand (operands[2], E_V16QImode)
7316 : || !(
7317 : #line 31638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7318 : (TARGET_AVX512BITALG) &&
7319 : #line 338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7320 : (TARGET_AVX512VL)))
7321 : return -1;
7322 : return 10399; /* avx512vl_vpshufbitqmbv16qi */
7323 :
7324 : case 216:
7325 : x3 = XEXP (x1, 0);
7326 : operands[0] = x3;
7327 : x4 = XVECEXP (x2, 0, 0);
7328 : operands[1] = x4;
7329 : x5 = XVECEXP (x2, 0, 1);
7330 : operands[2] = x5;
7331 : switch (GET_MODE (operands[0]))
7332 : {
7333 : case E_P2QImode:
7334 : if (!register_operand (operands[0], E_P2QImode)
7335 : || GET_MODE (x2) != E_P2QImode)
7336 : return -1;
7337 : switch (GET_MODE (operands[1]))
7338 : {
7339 : case E_V8DImode:
7340 : if (!register_operand (operands[1], E_V8DImode)
7341 : || !vector_operand (operands[2], E_V8DImode)
7342 : || !
7343 : #line 31677 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7344 : (TARGET_AVX512VP2INTERSECT))
7345 : return -1;
7346 : return 10405; /* avx512vp2intersect_2intersectv8di */
7347 :
7348 : case E_V4DImode:
7349 : if (!register_operand (operands[1], E_V4DImode)
7350 : || !vector_operand (operands[2], E_V4DImode)
7351 : || !(
7352 : #line 31677 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7353 : (TARGET_AVX512VP2INTERSECT) &&
7354 : #line 31644 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7355 : (TARGET_AVX512VL)))
7356 : return -1;
7357 : return 10406; /* avx512vp2intersect_2intersectv4di */
7358 :
7359 : case E_V2DImode:
7360 : if (!register_operand (operands[1], E_V2DImode)
7361 : || !vector_operand (operands[2], E_V2DImode)
7362 : || !(
7363 : #line 31677 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7364 : (TARGET_AVX512VP2INTERSECT) &&
7365 : #line 31644 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7366 : (TARGET_AVX512VL)))
7367 : return -1;
7368 : return 10407; /* avx512vp2intersect_2intersectv2di */
7369 :
7370 : case E_V8SImode:
7371 : if (!register_operand (operands[1], E_V8SImode)
7372 : || !vector_operand (operands[2], E_V8SImode)
7373 : || !(
7374 : #line 31677 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7375 : (TARGET_AVX512VP2INTERSECT) &&
7376 : #line 31645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7377 : (TARGET_AVX512VL)))
7378 : return -1;
7379 : return 10408; /* avx512vp2intersect_2intersectv8si */
7380 :
7381 : case E_V4SImode:
7382 : if (!register_operand (operands[1], E_V4SImode)
7383 : || !vector_operand (operands[2], E_V4SImode)
7384 : || !(
7385 : #line 31677 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7386 : (TARGET_AVX512VP2INTERSECT) &&
7387 : #line 31645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7388 : (TARGET_AVX512VL)))
7389 : return -1;
7390 : return 10409; /* avx512vp2intersect_2intersectv4si */
7391 :
7392 : default:
7393 : return -1;
7394 : }
7395 :
7396 : case E_P2HImode:
7397 : if (pattern739 (x2,
7398 : E_V16SImode,
7399 : E_P2HImode) != 0
7400 : || !
7401 : #line 31686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7402 : (TARGET_AVX512VP2INTERSECT))
7403 : return -1;
7404 : return 10410; /* avx512vp2intersect_2intersectv16si */
7405 :
7406 : default:
7407 : return -1;
7408 : }
7409 :
7410 : case 263:
7411 : x3 = XEXP (x1, 0);
7412 : operands[0] = x3;
7413 : x4 = XVECEXP (x2, 0, 0);
7414 : operands[1] = x4;
7415 : x5 = XVECEXP (x2, 0, 1);
7416 : operands[2] = x5;
7417 : if (!const_0_to_255_operand (operands[2], E_VOIDmode))
7418 : return -1;
7419 : switch (GET_MODE (operands[0]))
7420 : {
7421 : case E_HImode:
7422 : if (!register_operand (operands[0], E_HImode)
7423 : || GET_MODE (x2) != E_HImode
7424 : || !nonimmediate_operand (operands[1], E_V16BFmode)
7425 : || !
7426 : #line 33156 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7427 : (TARGET_AVX10_2))
7428 : return -1;
7429 : return 10793; /* avx10_2_fpclassbf16_v16bf */
7430 :
7431 : case E_QImode:
7432 : if (!register_operand (operands[0], E_QImode)
7433 : || GET_MODE (x2) != E_QImode
7434 : || !nonimmediate_operand (operands[1], E_V8BFmode)
7435 : || !
7436 : #line 33156 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7437 : (TARGET_AVX10_2))
7438 : return -1;
7439 : return 10795; /* avx10_2_fpclassbf16_v8bf */
7440 :
7441 : default:
7442 : return -1;
7443 : }
7444 :
7445 : case 292:
7446 : x3 = XEXP (x1, 0);
7447 : operands[0] = x3;
7448 : x4 = XVECEXP (x2, 0, 0);
7449 : operands[1] = x4;
7450 : x5 = XVECEXP (x2, 0, 1);
7451 : operands[2] = x5;
7452 : if (!const_int_operand (operands[2], E_SImode))
7453 : return -1;
7454 : switch (GET_MODE (operands[0]))
7455 : {
7456 : case E_QImode:
7457 : if (!memory_operand (operands[0], E_QImode)
7458 : || GET_MODE (x2) != E_QImode
7459 : || !nonmemory_operand (operands[1], E_QImode))
7460 : return -1;
7461 : return 11064; /* atomic_storeqi_1 */
7462 :
7463 : case E_HImode:
7464 : if (!memory_operand (operands[0], E_HImode)
7465 : || GET_MODE (x2) != E_HImode
7466 : || !nonmemory_operand (operands[1], E_HImode))
7467 : return -1;
7468 : return 11065; /* atomic_storehi_1 */
7469 :
7470 : default:
7471 : return -1;
7472 : }
7473 :
7474 : default:
7475 : return -1;
7476 : }
7477 : }
7478 :
7479 : int
7480 : recog_39 (rtx x1 ATTRIBUTE_UNUSED,
7481 : rtx_insn *insn ATTRIBUTE_UNUSED,
7482 : int *pnum_clobbers ATTRIBUTE_UNUSED)
7483 : {
7484 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
7485 : rtx x2, x3;
7486 : int res ATTRIBUTE_UNUSED;
7487 : x2 = XEXP (x1, 1);
7488 : x3 = XEXP (x2, 1);
7489 : operands[2] = x3;
7490 : switch (GET_MODE (operands[0]))
7491 : {
7492 : case E_TImode:
7493 : if (pnum_clobbers == NULL
7494 : || pattern745 (x2,
7495 : E_TImode) != 0)
7496 : return -1;
7497 : if ((
7498 : #line 13632 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7499 : (TARGET_BMI) &&
7500 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7501 : (TARGET_64BIT)))
7502 : {
7503 : *pnum_clobbers = 1;
7504 : return 838; /* *andnti3_doubleword_bmi */
7505 : }
7506 : if (!(
7507 : #line 13650 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7508 : (!TARGET_BMI
7509 : && ix86_pre_reload_split ()) &&
7510 : #line 1197 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7511 : (TARGET_64BIT)))
7512 : return -1;
7513 : *pnum_clobbers = 1;
7514 : return 840; /* *andnti3_doubleword */
7515 :
7516 : case E_QImode:
7517 : if (pnum_clobbers == NULL
7518 : || pattern621 (x2,
7519 : E_QImode) != 0
7520 : || !
7521 : #line 13682 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7522 : (TARGET_BMI || TARGET_AVX512BW))
7523 : return -1;
7524 : *pnum_clobbers = 1;
7525 : return 843; /* *andnqi_1 */
7526 :
7527 : case E_HImode:
7528 : if (pnum_clobbers == NULL
7529 : || pattern621 (x2,
7530 : E_HImode) != 0
7531 : || !
7532 : #line 13682 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7533 : (TARGET_BMI || TARGET_AVX512BW))
7534 : return -1;
7535 : *pnum_clobbers = 1;
7536 : return 844; /* *andnhi_1 */
7537 :
7538 : case E_V2SFmode:
7539 : if (pattern621 (x2,
7540 : E_V2SFmode) != 0
7541 : || !
7542 : #line 1366 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7543 : (TARGET_MMX_WITH_SSE))
7544 : return -1;
7545 : return 2132; /* *mmx_andnotv2sf3 */
7546 :
7547 : case E_V2BFmode:
7548 : if (pattern621 (x2,
7549 : E_V2BFmode) != 0
7550 : || !
7551 : #line 2592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7552 : (TARGET_SSE))
7553 : return -1;
7554 : return 2163; /* *mmx_andnotv2bf3 */
7555 :
7556 : case E_V4BFmode:
7557 : if (pattern621 (x2,
7558 : E_V4BFmode) != 0
7559 : || !(
7560 : #line 2592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7561 : (TARGET_SSE) &&
7562 : #line 2248 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7563 : (TARGET_MMX_WITH_SSE)))
7564 : return -1;
7565 : return 2164; /* *mmx_andnotv4bf3 */
7566 :
7567 : case E_V2HFmode:
7568 : if (pattern621 (x2,
7569 : E_V2HFmode) != 0
7570 : || !
7571 : #line 2592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7572 : (TARGET_SSE))
7573 : return -1;
7574 : return 2165; /* *mmx_andnotv2hf3 */
7575 :
7576 : case E_V4HFmode:
7577 : if (pattern621 (x2,
7578 : E_V4HFmode) != 0
7579 : || !(
7580 : #line 2592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7581 : (TARGET_SSE) &&
7582 : #line 2249 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7583 : (TARGET_MMX_WITH_SSE)))
7584 : return -1;
7585 : return 2166; /* *mmx_andnotv4hf3 */
7586 :
7587 : case E_V8QImode:
7588 : if (pattern622 (x2,
7589 : E_V8QImode) != 0
7590 : || !
7591 : #line 4620 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7592 : (TARGET_MMX || TARGET_MMX_WITH_SSE))
7593 : return -1;
7594 : return 2324; /* mmx_andnotv8qi3 */
7595 :
7596 : case E_V4HImode:
7597 : if (pattern622 (x2,
7598 : E_V4HImode) != 0
7599 : || !
7600 : #line 4620 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7601 : (TARGET_MMX || TARGET_MMX_WITH_SSE))
7602 : return -1;
7603 : return 2325; /* mmx_andnotv4hi3 */
7604 :
7605 : case E_V2SImode:
7606 : if (pattern622 (x2,
7607 : E_V2SImode) != 0
7608 : || !
7609 : #line 4620 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7610 : (TARGET_MMX || TARGET_MMX_WITH_SSE))
7611 : return -1;
7612 : return 2326; /* mmx_andnotv2si3 */
7613 :
7614 : case E_V4QImode:
7615 : if (pnum_clobbers == NULL
7616 : || pattern621 (x2,
7617 : E_V4QImode) != 0)
7618 : return -1;
7619 : *pnum_clobbers = 1;
7620 : return 2327; /* *andnotv4qi3 */
7621 :
7622 : case E_V2QImode:
7623 : if (pnum_clobbers == NULL
7624 : || pattern621 (x2,
7625 : E_V2QImode) != 0)
7626 : return -1;
7627 : *pnum_clobbers = 1;
7628 : return 2328; /* *andnotv2qi3 */
7629 :
7630 : case E_V2HImode:
7631 : if (pnum_clobbers == NULL
7632 : || pattern621 (x2,
7633 : E_V2HImode) != 0)
7634 : return -1;
7635 : *pnum_clobbers = 1;
7636 : return 2329; /* *andnotv2hi3 */
7637 :
7638 : case E_BFmode:
7639 : if (pattern621 (x2,
7640 : E_BFmode) != 0
7641 : || !
7642 : #line 5886 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7643 : (TARGET_SSE))
7644 : return -1;
7645 : return 3848; /* *andnotbf3 */
7646 :
7647 : case E_HFmode:
7648 : if (pattern621 (x2,
7649 : E_HFmode) != 0
7650 : || !
7651 : #line 5886 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7652 : (TARGET_SSE))
7653 : return -1;
7654 : return 3849; /* *andnothf3 */
7655 :
7656 : case E_SFmode:
7657 : if (pattern621 (x2,
7658 : E_SFmode) != 0
7659 : || !
7660 : #line 5886 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7661 : (TARGET_SSE))
7662 : return -1;
7663 : return 3850; /* *andnotsf3 */
7664 :
7665 : case E_DFmode:
7666 : if (pattern621 (x2,
7667 : E_DFmode) != 0
7668 : || !(
7669 : #line 5886 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7670 : (TARGET_SSE) &&
7671 : #line 1353 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7672 : (TARGET_SSE2)))
7673 : return -1;
7674 : return 3851; /* *andnotdf3 */
7675 :
7676 : case E_TFmode:
7677 : if (pattern623 (x2,
7678 : E_TFmode) != 0
7679 : || !
7680 : #line 5956 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7681 : (TARGET_SSE))
7682 : return -1;
7683 : return 3852; /* *andnottf3 */
7684 :
7685 : default:
7686 : return -1;
7687 : }
7688 : }
7689 :
7690 : int
7691 : recog_45 (rtx x1 ATTRIBUTE_UNUSED,
7692 : rtx_insn *insn ATTRIBUTE_UNUSED,
7693 : int *pnum_clobbers ATTRIBUTE_UNUSED)
7694 : {
7695 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
7696 : rtx x2, x3, x4;
7697 : int res ATTRIBUTE_UNUSED;
7698 : x2 = XEXP (x1, 0);
7699 : operands[0] = x2;
7700 : x3 = XEXP (x1, 1);
7701 : x4 = XEXP (x3, 0);
7702 : operands[1] = x4;
7703 : switch (GET_MODE (operands[0]))
7704 : {
7705 : case E_TImode:
7706 : if (pattern266 (x3, pnum_clobbers,
7707 : E_TImode) != 0
7708 : || !(
7709 : #line 14945 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7710 : (TARGET_CMOVE
7711 : && ix86_pre_reload_split ()) &&
7712 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7713 : (TARGET_64BIT)))
7714 : return -1;
7715 : *pnum_clobbers = 1;
7716 : return 1028; /* *absti2_doubleword */
7717 :
7718 : case E_QImode:
7719 : if (pattern266 (x3, pnum_clobbers,
7720 : E_QImode) != 0
7721 : || !
7722 : #line 15032 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7723 : (TARGET_CMOVE
7724 : && (QImode != QImode || !TARGET_PARTIAL_REG_STALL)
7725 : && ix86_pre_reload_split ()))
7726 : return -1;
7727 : *pnum_clobbers = 1;
7728 : return 1031; /* *absqi2_1 */
7729 :
7730 : case E_HImode:
7731 : if (pattern266 (x3, pnum_clobbers,
7732 : E_HImode) != 0
7733 : || !
7734 : #line 15032 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7735 : (TARGET_CMOVE
7736 : && (HImode != QImode || !TARGET_PARTIAL_REG_STALL)
7737 : && ix86_pre_reload_split ()))
7738 : return -1;
7739 : *pnum_clobbers = 1;
7740 : return 1032; /* *abshi2_1 */
7741 :
7742 : case E_SFmode:
7743 : if (!register_operand (operands[0], E_SFmode)
7744 : || GET_MODE (x3) != E_SFmode
7745 : || !register_operand (operands[1], E_SFmode))
7746 : return -1;
7747 : if (pnum_clobbers != NULL
7748 : &&
7749 : #line 15155 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7750 : (TARGET_80387 && !(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)))
7751 : {
7752 : *pnum_clobbers = 1;
7753 : return 1042; /* *abssf2_i387_1 */
7754 : }
7755 : if (!
7756 : #line 15277 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7757 : (TARGET_80387 && reload_completed))
7758 : return -1;
7759 : return 1056; /* *abssf2_i387 */
7760 :
7761 : case E_DFmode:
7762 : if (!register_operand (operands[0], E_DFmode)
7763 : || GET_MODE (x3) != E_DFmode
7764 : || !register_operand (operands[1], E_DFmode))
7765 : return -1;
7766 : if (pnum_clobbers != NULL
7767 : &&
7768 : #line 15155 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7769 : (TARGET_80387 && !(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)))
7770 : {
7771 : *pnum_clobbers = 1;
7772 : return 1044; /* *absdf2_i387_1 */
7773 : }
7774 : if (!
7775 : #line 15277 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7776 : (TARGET_80387 && reload_completed))
7777 : return -1;
7778 : return 1058; /* *absdf2_i387 */
7779 :
7780 : case E_XFmode:
7781 : if (!register_operand (operands[0], E_XFmode)
7782 : || GET_MODE (x3) != E_XFmode
7783 : || !register_operand (operands[1], E_XFmode))
7784 : return -1;
7785 : if (pnum_clobbers != NULL
7786 : &&
7787 : #line 15155 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7788 : (TARGET_80387 && !(SSE_FLOAT_MODE_P (XFmode) && TARGET_SSE_MATH)))
7789 : {
7790 : *pnum_clobbers = 1;
7791 : return 1046; /* *absxf2_i387_1 */
7792 : }
7793 : if (!
7794 : #line 15277 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7795 : (TARGET_80387 && reload_completed))
7796 : return -1;
7797 : return 1060; /* *absxf2_i387 */
7798 :
7799 : case E_V8QImode:
7800 : if (!register_operand (operands[0], E_V8QImode)
7801 : || GET_MODE (x3) != E_V8QImode
7802 : || !register_mmxmem_operand (operands[1], E_V8QImode)
7803 : || !
7804 : #line 3842 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7805 : ((TARGET_MMX || TARGET_MMX_WITH_SSE) && TARGET_SSSE3))
7806 : return -1;
7807 : return 2248; /* ssse3_absv8qi2 */
7808 :
7809 : case E_V4HImode:
7810 : if (!register_operand (operands[0], E_V4HImode)
7811 : || GET_MODE (x3) != E_V4HImode
7812 : || !register_mmxmem_operand (operands[1], E_V4HImode)
7813 : || !
7814 : #line 3842 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7815 : ((TARGET_MMX || TARGET_MMX_WITH_SSE) && TARGET_SSSE3))
7816 : return -1;
7817 : return 2249; /* ssse3_absv4hi2 */
7818 :
7819 : case E_V2SImode:
7820 : if (!register_operand (operands[0], E_V2SImode)
7821 : || GET_MODE (x3) != E_V2SImode
7822 : || !register_mmxmem_operand (operands[1], E_V2SImode)
7823 : || !
7824 : #line 3842 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7825 : ((TARGET_MMX || TARGET_MMX_WITH_SSE) && TARGET_SSSE3))
7826 : return -1;
7827 : return 2250; /* ssse3_absv2si2 */
7828 :
7829 : case E_V4QImode:
7830 : if (!register_operand (operands[0], E_V4QImode)
7831 : || GET_MODE (x3) != E_V4QImode
7832 : || !register_operand (operands[1], E_V4QImode)
7833 : || !
7834 : #line 3863 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7835 : (TARGET_SSSE3))
7836 : return -1;
7837 : return 2251; /* absv4qi2 */
7838 :
7839 : case E_V2QImode:
7840 : if (!register_operand (operands[0], E_V2QImode)
7841 : || GET_MODE (x3) != E_V2QImode
7842 : || !register_operand (operands[1], E_V2QImode)
7843 : || !
7844 : #line 3863 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7845 : (TARGET_SSSE3))
7846 : return -1;
7847 : return 2252; /* absv2qi2 */
7848 :
7849 : case E_V2HImode:
7850 : if (!register_operand (operands[0], E_V2HImode)
7851 : || GET_MODE (x3) != E_V2HImode
7852 : || !register_operand (operands[1], E_V2HImode)
7853 : || !
7854 : #line 3863 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7855 : (TARGET_SSSE3))
7856 : return -1;
7857 : return 2253; /* absv2hi2 */
7858 :
7859 : default:
7860 : return -1;
7861 : }
7862 : }
7863 :
7864 : int
7865 : recog_49 (rtx x1 ATTRIBUTE_UNUSED,
7866 : rtx_insn *insn ATTRIBUTE_UNUSED,
7867 : int *pnum_clobbers ATTRIBUTE_UNUSED)
7868 : {
7869 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
7870 : rtx x2, x3, x4, x5, x6, x7;
7871 : int res ATTRIBUTE_UNUSED;
7872 : x2 = XEXP (x1, 1);
7873 : x3 = XEXP (x2, 0);
7874 : switch (GET_CODE (x3))
7875 : {
7876 : case ZERO_EXTRACT:
7877 : if (pnum_clobbers == NULL)
7878 : return -1;
7879 : x4 = XEXP (x3, 1);
7880 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
7881 : return -1;
7882 : x5 = XEXP (x2, 1);
7883 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
7884 : || !register_operand (operands[0], E_QImode)
7885 : || GET_MODE (x2) != E_QImode)
7886 : return -1;
7887 : x6 = XEXP (x3, 0);
7888 : operands[1] = x6;
7889 : x7 = XEXP (x3, 2);
7890 : operands[2] = x7;
7891 : if (!register_operand (operands[2], E_QImode))
7892 : return -1;
7893 : switch (GET_MODE (x3))
7894 : {
7895 : case E_SImode:
7896 : if (!register_operand (operands[1], E_SImode)
7897 : || !
7898 : #line 19744 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7899 : (TARGET_USE_BT && ix86_pre_reload_split ()))
7900 : return -1;
7901 : *pnum_clobbers = 1;
7902 : return 1472; /* *btsi_setncqi_2 */
7903 :
7904 : case E_DImode:
7905 : if (!register_operand (operands[1], E_DImode)
7906 : || !(
7907 : #line 19744 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7908 : (TARGET_USE_BT && ix86_pre_reload_split ()) &&
7909 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7910 : (TARGET_64BIT)))
7911 : return -1;
7912 : *pnum_clobbers = 1;
7913 : return 1473; /* *btdi_setncqi_2 */
7914 :
7915 : default:
7916 : return -1;
7917 : }
7918 :
7919 : case REG:
7920 : case SUBREG:
7921 : case MEM:
7922 : operands[1] = x3;
7923 : x5 = XEXP (x2, 1);
7924 : operands[2] = x5;
7925 : switch (GET_MODE (operands[0]))
7926 : {
7927 : case E_V8QImode:
7928 : if (pattern6 (x2,
7929 : E_V8QImode) != 0
7930 : || !
7931 : #line 4169 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7932 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
7933 : && ix86_binary_operator_ok (EQ, V8QImode, operands)))
7934 : return -1;
7935 : return 2273; /* *mmx_eqv8qi3 */
7936 :
7937 : case E_V4HImode:
7938 : if (pattern6 (x2,
7939 : E_V4HImode) != 0
7940 : || !
7941 : #line 4169 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7942 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
7943 : && ix86_binary_operator_ok (EQ, V4HImode, operands)))
7944 : return -1;
7945 : return 2274; /* *mmx_eqv4hi3 */
7946 :
7947 : case E_V2SImode:
7948 : if (pattern6 (x2,
7949 : E_V2SImode) != 0
7950 : || !
7951 : #line 4169 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7952 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
7953 : && ix86_binary_operator_ok (EQ, V2SImode, operands)))
7954 : return -1;
7955 : return 2275; /* *mmx_eqv2si3 */
7956 :
7957 : case E_V4QImode:
7958 : if (pattern5 (x2,
7959 : E_V4QImode) != 0
7960 : || !
7961 : #line 4185 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7962 : (TARGET_SSE2))
7963 : return -1;
7964 : return 2276; /* *eqv4qi3 */
7965 :
7966 : case E_V2QImode:
7967 : if (pattern5 (x2,
7968 : E_V2QImode) != 0
7969 : || !
7970 : #line 4185 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7971 : (TARGET_SSE2))
7972 : return -1;
7973 : return 2277; /* *eqv2qi3 */
7974 :
7975 : case E_V2HImode:
7976 : if (pattern5 (x2,
7977 : E_V2HImode) != 0
7978 : || !
7979 : #line 4185 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7980 : (TARGET_SSE2))
7981 : return -1;
7982 : return 2278; /* *eqv2hi3 */
7983 :
7984 : default:
7985 : return -1;
7986 : }
7987 :
7988 : default:
7989 : return -1;
7990 : }
7991 : }
7992 :
7993 : int
7994 : recog_52 (rtx x1 ATTRIBUTE_UNUSED,
7995 : rtx_insn *insn ATTRIBUTE_UNUSED,
7996 : int *pnum_clobbers ATTRIBUTE_UNUSED)
7997 : {
7998 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
7999 : rtx x2, x3, x4, x5;
8000 : int res ATTRIBUTE_UNUSED;
8001 : x2 = XEXP (x1, 0);
8002 : operands[0] = x2;
8003 : x3 = XEXP (x1, 1);
8004 : switch (GET_CODE (x3))
8005 : {
8006 : case NE:
8007 : case EQ:
8008 : case GE:
8009 : case GT:
8010 : case LE:
8011 : case LT:
8012 : res = recog_51 (x1, insn, pnum_clobbers);
8013 : if (res >= 0)
8014 : return res;
8015 : break;
8016 :
8017 : default:
8018 : break;
8019 : }
8020 : operands[3] = x3;
8021 : x4 = XEXP (x3, 0);
8022 : operands[1] = x4;
8023 : x5 = XEXP (x3, 1);
8024 : operands[2] = x5;
8025 : switch (GET_MODE (operands[0]))
8026 : {
8027 : case E_SFmode:
8028 : if (pattern750 (
8029 : E_SFmode) != 0
8030 : || !
8031 : #line 20047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8032 : (SSE_FLOAT_MODE_P (SFmode)))
8033 : return -1;
8034 : return 1487; /* setcc_sf_sse */
8035 :
8036 : case E_DFmode:
8037 : if (pattern750 (
8038 : E_DFmode) != 0
8039 : || !
8040 : #line 20047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8041 : (SSE_FLOAT_MODE_P (DFmode)))
8042 : return -1;
8043 : return 1488; /* setcc_df_sse */
8044 :
8045 : default:
8046 : return -1;
8047 : }
8048 : }
8049 :
8050 : int
8051 : recog_56 (rtx x1 ATTRIBUTE_UNUSED,
8052 : rtx_insn *insn ATTRIBUTE_UNUSED,
8053 : int *pnum_clobbers ATTRIBUTE_UNUSED)
8054 : {
8055 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
8056 : rtx x2;
8057 : int res ATTRIBUTE_UNUSED;
8058 : switch (pattern88 (x1, pnum_clobbers))
8059 : {
8060 : case 0:
8061 : switch (GET_MODE (operands[0]))
8062 : {
8063 : case E_TImode:
8064 : x2 = XEXP (x1, 1);
8065 : if (pattern79 (x2, pnum_clobbers) != 0
8066 : || !(
8067 : #line 6516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8068 : (ix86_binary_operator_ok (PLUS, TImode, operands, TARGET_APX_NDD)) &&
8069 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8070 : (TARGET_64BIT)))
8071 : return -1;
8072 : *pnum_clobbers = 1;
8073 : return 271; /* *addti3_doubleword */
8074 :
8075 : case E_HImode:
8076 : x2 = XEXP (x1, 1);
8077 : if (pattern80 (x2,
8078 : E_HImode) != 0)
8079 : return -1;
8080 : if (
8081 : #line 6864 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8082 : (ix86_binary_operator_ok (PLUS, HImode, operands, TARGET_APX_NDD)
8083 : && TARGET_APX_NF))
8084 : return 301; /* *addhi_1_nf */
8085 : if (pnum_clobbers == NULL
8086 : || !
8087 : #line 6864 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8088 : (ix86_binary_operator_ok (PLUS, HImode, operands, TARGET_APX_NDD)
8089 : && true))
8090 : return -1;
8091 : *pnum_clobbers = 1;
8092 : return 302; /* *addhi_1 */
8093 :
8094 : case E_QImode:
8095 : x2 = XEXP (x1, 1);
8096 : if (pattern80 (x2,
8097 : E_QImode) != 0)
8098 : return -1;
8099 : if (
8100 : #line 6921 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8101 : (ix86_binary_operator_ok (PLUS, QImode, operands, TARGET_APX_NDD)
8102 : && TARGET_APX_NF))
8103 : return 303; /* *addqi_1_nf */
8104 : if (pnum_clobbers == NULL
8105 : || !
8106 : #line 6921 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8107 : (ix86_binary_operator_ok (PLUS, QImode, operands, TARGET_APX_NDD)
8108 : && true))
8109 : return -1;
8110 : *pnum_clobbers = 1;
8111 : return 304; /* *addqi_1 */
8112 :
8113 : case E_HFmode:
8114 : x2 = XEXP (x1, 1);
8115 : if (pattern3 (x2,
8116 : E_HFmode) != 0
8117 : || !
8118 : #line 23833 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8119 : (TARGET_AVX512FP16
8120 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8121 : return -1;
8122 : return 1710; /* *addhf */
8123 :
8124 : case E_V8QImode:
8125 : x2 = XEXP (x1, 1);
8126 : if (pattern6 (x2,
8127 : E_V8QImode) != 0
8128 : || !
8129 : #line 3239 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8130 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8131 : && ix86_binary_operator_ok (PLUS, V8QImode, operands)))
8132 : return -1;
8133 : return 2180; /* *mmx_addv8qi3 */
8134 :
8135 : case E_V4HImode:
8136 : x2 = XEXP (x1, 1);
8137 : if (pattern6 (x2,
8138 : E_V4HImode) != 0
8139 : || !
8140 : #line 3239 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8141 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8142 : && ix86_binary_operator_ok (PLUS, V4HImode, operands)))
8143 : return -1;
8144 : return 2182; /* *mmx_addv4hi3 */
8145 :
8146 : case E_V2SImode:
8147 : x2 = XEXP (x1, 1);
8148 : if (pattern6 (x2,
8149 : E_V2SImode) != 0
8150 : || !
8151 : #line 3239 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8152 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8153 : && ix86_binary_operator_ok (PLUS, V2SImode, operands)))
8154 : return -1;
8155 : return 2184; /* *mmx_addv2si3 */
8156 :
8157 : case E_V1DImode:
8158 : x2 = XEXP (x1, 1);
8159 : if (pattern6 (x2,
8160 : E_V1DImode) != 0
8161 : || !(
8162 : #line 3239 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8163 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8164 : && ix86_binary_operator_ok (PLUS, V1DImode, operands)) &&
8165 : #line 50 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8166 : (TARGET_SSE2)))
8167 : return -1;
8168 : return 2186; /* *mmx_addv1di3 */
8169 :
8170 : case E_V4QImode:
8171 : x2 = XEXP (x1, 1);
8172 : if (pattern5 (x2,
8173 : E_V4QImode) != 0
8174 : || !
8175 : #line 3255 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8176 : (TARGET_SSE2))
8177 : return -1;
8178 : return 2188; /* addv4qi3 */
8179 :
8180 : case E_V2HImode:
8181 : x2 = XEXP (x1, 1);
8182 : if (pattern5 (x2,
8183 : E_V2HImode) != 0
8184 : || !
8185 : #line 3255 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8186 : (TARGET_SSE2))
8187 : return -1;
8188 : return 2190; /* addv2hi3 */
8189 :
8190 : case E_V2QImode:
8191 : if (pnum_clobbers == NULL)
8192 : return -1;
8193 : x2 = XEXP (x1, 1);
8194 : if (pattern5 (x2,
8195 : E_V2QImode) != 0
8196 : || !
8197 : #line 3269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8198 : (!TARGET_PARTIAL_REG_STALL || optimize_size || TARGET_SSE2))
8199 : return -1;
8200 : *pnum_clobbers = 1;
8201 : return 2192; /* addv2qi3 */
8202 :
8203 : default:
8204 : return -1;
8205 : }
8206 :
8207 : case 1:
8208 : if (!
8209 : #line 6997 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8210 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
8211 : return -1;
8212 : *pnum_clobbers = 1;
8213 : return 305; /* *addqi_1_slp */
8214 :
8215 : case 2:
8216 : if (!
8217 : #line 6997 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8218 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
8219 : return -1;
8220 : *pnum_clobbers = 1;
8221 : return 306; /* *addhi_1_slp */
8222 :
8223 : default:
8224 : return -1;
8225 : }
8226 : }
8227 :
8228 : int
8229 : recog_64 (rtx x1 ATTRIBUTE_UNUSED,
8230 : rtx_insn *insn ATTRIBUTE_UNUSED,
8231 : int *pnum_clobbers ATTRIBUTE_UNUSED)
8232 : {
8233 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
8234 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
8235 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
8236 : int res ATTRIBUTE_UNUSED;
8237 : x2 = XEXP (x1, 0);
8238 : operands[0] = x2;
8239 : x3 = XEXP (x1, 1);
8240 : x4 = XEXP (x3, 0);
8241 : switch (GET_CODE (x4))
8242 : {
8243 : case PLUS:
8244 : if (pattern102 (x3,
8245 : E_V2SFmode,
8246 : E_SFmode) != 0)
8247 : return -1;
8248 : x5 = XEXP (x3, 1);
8249 : x6 = XEXP (x5, 0);
8250 : x7 = XEXP (x6, 0);
8251 : operands[2] = x7;
8252 : if (!nonimmediate_operand (operands[2], E_V2SFmode)
8253 : || pattern1879 (x3) != 0
8254 : || !
8255 : #line 1018 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8256 : (TARGET_3DNOW
8257 : && INTVAL (operands[3]) != INTVAL (operands[4])
8258 : && INTVAL (operands[5]) != INTVAL (operands[6])))
8259 : return -1;
8260 : return 2120; /* *mmx_haddv2sf3 */
8261 :
8262 : case MINUS:
8263 : if (pattern103 (x4,
8264 : E_SFmode) != 0
8265 : || !register_operand (operands[0], E_V2SFmode)
8266 : || GET_MODE (x3) != E_V2SFmode)
8267 : return -1;
8268 : x8 = XEXP (x4, 0);
8269 : x9 = XEXP (x8, 0);
8270 : operands[1] = x9;
8271 : if (!register_operand (operands[1], E_V2SFmode))
8272 : return -1;
8273 : x5 = XEXP (x3, 1);
8274 : if (GET_MODE (x5) != E_SFmode)
8275 : return -1;
8276 : x10 = XEXP (x4, 1);
8277 : x11 = XEXP (x10, 0);
8278 : if (!rtx_equal_p (x11, operands[1]))
8279 : return -1;
8280 : switch (GET_CODE (x5))
8281 : {
8282 : case MINUS:
8283 : if (pattern1565 (x5,
8284 : E_SFmode) != 0)
8285 : return -1;
8286 : x6 = XEXP (x5, 0);
8287 : x7 = XEXP (x6, 0);
8288 : operands[2] = x7;
8289 : if (!nonimmediate_operand (operands[2], E_V2SFmode))
8290 : return -1;
8291 : x12 = XEXP (x5, 1);
8292 : x13 = XEXP (x12, 0);
8293 : if (!rtx_equal_p (x13, operands[2])
8294 : || !
8295 : #line 1066 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8296 : (TARGET_3DNOW_A))
8297 : return -1;
8298 : return 2122; /* mmx_hsubv2sf3 */
8299 :
8300 : case PLUS:
8301 : x6 = XEXP (x5, 0);
8302 : if (GET_CODE (x6) != VEC_SELECT
8303 : || GET_MODE (x6) != E_SFmode)
8304 : return -1;
8305 : x14 = XEXP (x6, 1);
8306 : if (GET_CODE (x14) != PARALLEL
8307 : || XVECLEN (x14, 0) != 1)
8308 : return -1;
8309 : x12 = XEXP (x5, 1);
8310 : if (GET_CODE (x12) != VEC_SELECT
8311 : || GET_MODE (x12) != E_SFmode)
8312 : return -1;
8313 : x15 = XEXP (x12, 1);
8314 : if (GET_CODE (x15) != PARALLEL
8315 : || XVECLEN (x15, 0) != 1)
8316 : return -1;
8317 : x7 = XEXP (x6, 0);
8318 : operands[2] = x7;
8319 : if (!nonimmediate_operand (operands[2], E_V2SFmode))
8320 : return -1;
8321 : x16 = XVECEXP (x14, 0, 0);
8322 : operands[3] = x16;
8323 : if (!const_0_to_1_operand (operands[3], E_SImode))
8324 : return -1;
8325 : x17 = XVECEXP (x15, 0, 0);
8326 : operands[4] = x17;
8327 : if (!const_0_to_1_operand (operands[4], E_SImode))
8328 : return -1;
8329 : x13 = XEXP (x12, 0);
8330 : if (!rtx_equal_p (x13, operands[2])
8331 : || !
8332 : #line 1128 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8333 : (TARGET_3DNOW_A
8334 : && INTVAL (operands[3]) != INTVAL (operands[4])))
8335 : return -1;
8336 : return 2124; /* *mmx_haddsubv2sf3 */
8337 :
8338 : default:
8339 : return -1;
8340 : }
8341 :
8342 : case REG:
8343 : case SUBREG:
8344 : case MEM:
8345 : operands[1] = x4;
8346 : x5 = XEXP (x3, 1);
8347 : operands[2] = x5;
8348 : switch (GET_MODE (operands[0]))
8349 : {
8350 : case E_V2SFmode:
8351 : if (!register_operand (operands[0], E_V2SFmode)
8352 : || GET_MODE (x3) != E_V2SFmode
8353 : || !nonimmediate_operand (operands[1], E_SFmode))
8354 : return -1;
8355 : if (nonimm_or_0_operand (operands[2], E_SFmode))
8356 : {
8357 : if (
8358 : #line 1778 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8359 : (TARGET_MMX && !TARGET_SSE))
8360 : return 2148; /* *mmx_concatv2sf */
8361 : if (
8362 : #line 12082 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8363 : (TARGET_SSE4_1 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8364 : return 5299; /* *vec_concatv2sf_sse4_1 */
8365 : }
8366 : if (!reg_or_0_operand (operands[2], E_SFmode)
8367 : || !
8368 : #line 12146 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8369 : (TARGET_SSE))
8370 : return -1;
8371 : return 5300; /* *vec_concatv2sf_sse */
8372 :
8373 : case E_V2SImode:
8374 : if (!register_operand (operands[0], E_V2SImode)
8375 : || GET_MODE (x3) != E_V2SImode
8376 : || !nonimmediate_operand (operands[1], E_SImode))
8377 : return -1;
8378 : if (nonimm_or_0_operand (operands[2], E_SImode))
8379 : {
8380 : if (
8381 : #line 5729 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8382 : (TARGET_MMX && !TARGET_SSE))
8383 : return 2404; /* *mmx_concatv2si */
8384 : if (
8385 : #line 21845 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8386 : (TARGET_SSE4_1 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8387 : return 8523; /* *vec_concatv2si_sse4_1 */
8388 : }
8389 : if (!reg_or_0_operand (operands[2], E_SImode)
8390 : || !
8391 : #line 21894 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8392 : (TARGET_SSE && !TARGET_SSE4_1))
8393 : return -1;
8394 : return 8524; /* *vec_concatv2si */
8395 :
8396 : default:
8397 : return -1;
8398 : }
8399 :
8400 : case SS_TRUNCATE:
8401 : x5 = XEXP (x3, 1);
8402 : if (GET_CODE (x5) != SS_TRUNCATE)
8403 : return -1;
8404 : switch (pattern271 (x3))
8405 : {
8406 : case 0:
8407 : if (!
8408 : #line 4799 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8409 : (TARGET_MMX || TARGET_MMX_WITH_SSE))
8410 : return -1;
8411 : return 2348; /* mmx_packsswb */
8412 :
8413 : case 1:
8414 : if (!
8415 : #line 4840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8416 : (TARGET_MMX || TARGET_MMX_WITH_SSE))
8417 : return -1;
8418 : return 2350; /* mmx_packssdw */
8419 :
8420 : default:
8421 : return -1;
8422 : }
8423 :
8424 : default:
8425 : return -1;
8426 : }
8427 : }
8428 :
8429 : int
8430 : recog_70 (rtx x1 ATTRIBUTE_UNUSED,
8431 : rtx_insn *insn ATTRIBUTE_UNUSED,
8432 : int *pnum_clobbers ATTRIBUTE_UNUSED)
8433 : {
8434 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
8435 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
8436 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
8437 : rtx x18, x19;
8438 : int res ATTRIBUTE_UNUSED;
8439 : x2 = XEXP (x1, 0);
8440 : operands[0] = x2;
8441 : x3 = XEXP (x1, 1);
8442 : x4 = XEXP (x3, 0);
8443 : switch (GET_CODE (x4))
8444 : {
8445 : case LSHIFTRT:
8446 : x5 = XEXP (x4, 1);
8447 : if (GET_CODE (x5) != CONST_INT)
8448 : return -1;
8449 : x6 = XEXP (x4, 0);
8450 : switch (GET_CODE (x6))
8451 : {
8452 : case MULT:
8453 : if (XWINT (x5, 0) != 16L)
8454 : return -1;
8455 : x7 = XEXP (x6, 0);
8456 : switch (GET_CODE (x7))
8457 : {
8458 : case SIGN_EXTEND:
8459 : switch (pattern755 (x3,
8460 : SIGN_EXTEND))
8461 : {
8462 : case 0:
8463 : if (!
8464 : #line 3475 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8465 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8466 : && ix86_binary_operator_ok (MULT, V4HImode, operands)))
8467 : return -1;
8468 : return 2217; /* *mmx_smulv4hi3_highpart */
8469 :
8470 : case 1:
8471 : if (!
8472 : #line 3544 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8473 : (TARGET_SSE2))
8474 : return -1;
8475 : return 2219; /* smulv2hi3_highpart */
8476 :
8477 : default:
8478 : return -1;
8479 : }
8480 :
8481 : case ZERO_EXTEND:
8482 : switch (pattern755 (x3,
8483 : ZERO_EXTEND))
8484 : {
8485 : case 0:
8486 : if (!
8487 : #line 3510 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8488 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8489 : && (TARGET_SSE || TARGET_3DNOW_A)
8490 : && ix86_binary_operator_ok (MULT, V4HImode, operands)))
8491 : return -1;
8492 : return 2218; /* *mmx_umulv4hi3_highpart */
8493 :
8494 : case 1:
8495 : if (!
8496 : #line 3544 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8497 : (TARGET_SSE2))
8498 : return -1;
8499 : return 2220; /* umulv2hi3_highpart */
8500 :
8501 : default:
8502 : return -1;
8503 : }
8504 :
8505 : default:
8506 : return -1;
8507 : }
8508 :
8509 : case PLUS:
8510 : x7 = XEXP (x6, 0);
8511 : switch (GET_CODE (x7))
8512 : {
8513 : case MULT:
8514 : if (GET_MODE (x7) != E_V4SImode)
8515 : return -1;
8516 : x8 = XEXP (x7, 0);
8517 : if (GET_CODE (x8) != SIGN_EXTEND
8518 : || GET_MODE (x8) != E_V4SImode)
8519 : return -1;
8520 : x9 = XEXP (x7, 1);
8521 : if (GET_CODE (x9) != SIGN_EXTEND
8522 : || GET_MODE (x9) != E_V4SImode)
8523 : return -1;
8524 : x10 = XEXP (x6, 1);
8525 : if (GET_CODE (x10) != CONST_VECTOR
8526 : || XVECLEN (x10, 0) != 4
8527 : || GET_MODE (x10) != E_V4SImode)
8528 : return -1;
8529 : x11 = XVECEXP (x10, 0, 0);
8530 : if (GET_CODE (x11) != CONST_INT
8531 : || XWINT (x11, 0) != 32768L)
8532 : return -1;
8533 : x12 = XVECEXP (x10, 0, 1);
8534 : if (GET_CODE (x12) != CONST_INT
8535 : || XWINT (x12, 0) != 32768L)
8536 : return -1;
8537 : x13 = XVECEXP (x10, 0, 2);
8538 : if (GET_CODE (x13) != CONST_INT
8539 : || XWINT (x13, 0) != 32768L)
8540 : return -1;
8541 : x14 = XVECEXP (x10, 0, 3);
8542 : if (GET_CODE (x14) != CONST_INT
8543 : || XWINT (x14, 0) != 32768L
8544 : || XWINT (x5, 0) != 16L
8545 : || !register_operand (operands[0], E_V4HImode)
8546 : || GET_MODE (x3) != E_V4HImode
8547 : || GET_MODE (x4) != E_V4SImode
8548 : || GET_MODE (x6) != E_V4SImode)
8549 : return -1;
8550 : x15 = XEXP (x8, 0);
8551 : operands[1] = x15;
8552 : if (!nonimmediate_operand (operands[1], E_V4HImode))
8553 : return -1;
8554 : x16 = XEXP (x9, 0);
8555 : operands[2] = x16;
8556 : if (!nonimmediate_operand (operands[2], E_V4HImode)
8557 : || !
8558 : #line 3633 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8559 : (TARGET_3DNOW && ix86_binary_operator_ok (MULT, V4HImode, operands)))
8560 : return -1;
8561 : return 2222; /* *mmx_pmulhrwv4hi3 */
8562 :
8563 : case PLUS:
8564 : x8 = XEXP (x7, 0);
8565 : if (GET_CODE (x8) != ZERO_EXTEND)
8566 : return -1;
8567 : x9 = XEXP (x7, 1);
8568 : if (GET_CODE (x9) != ZERO_EXTEND)
8569 : return -1;
8570 : x10 = XEXP (x6, 1);
8571 : if (GET_CODE (x10) != CONST_VECTOR
8572 : || XWINT (x5, 0) != 1L)
8573 : return -1;
8574 : x15 = XEXP (x8, 0);
8575 : operands[1] = x15;
8576 : x16 = XEXP (x9, 0);
8577 : operands[2] = x16;
8578 : switch (XVECLEN (x10, 0))
8579 : {
8580 : case 8:
8581 : if (pattern1370 (x10,
8582 : E_V8HImode) != 0
8583 : || pattern1652 (x3,
8584 : E_V8QImode,
8585 : E_V8HImode) != 0
8586 : || !
8587 : #line 6360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8588 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8589 : && (TARGET_SSE || TARGET_3DNOW)
8590 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8591 : return -1;
8592 : return 2434; /* *mmx_uavgv8qi3 */
8593 :
8594 : case 4:
8595 : x11 = XVECEXP (x10, 0, 0);
8596 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
8597 : return -1;
8598 : x12 = XVECEXP (x10, 0, 1);
8599 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
8600 : return -1;
8601 : x13 = XVECEXP (x10, 0, 2);
8602 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
8603 : return -1;
8604 : x14 = XVECEXP (x10, 0, 3);
8605 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
8606 : return -1;
8607 : switch (GET_MODE (operands[0]))
8608 : {
8609 : case E_V4HImode:
8610 : if (pattern1652 (x3,
8611 : E_V4HImode,
8612 : E_V4SImode) != 0
8613 : || GET_MODE (x10) != E_V4SImode
8614 : || !
8615 : #line 6404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8616 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8617 : && (TARGET_SSE || TARGET_3DNOW_A)
8618 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8619 : return -1;
8620 : return 2435; /* *mmx_uavgv4hi3 */
8621 :
8622 : case E_V4QImode:
8623 : if (pattern1548 (x3,
8624 : E_V4HImode,
8625 : E_V4QImode) != 0
8626 : || !
8627 : #line 6444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8628 : (TARGET_SSE2))
8629 : return -1;
8630 : return 2436; /* uavgv4qi3_ceil */
8631 :
8632 : default:
8633 : return -1;
8634 : }
8635 :
8636 : case 2:
8637 : x11 = XVECEXP (x10, 0, 0);
8638 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
8639 : return -1;
8640 : x12 = XVECEXP (x10, 0, 1);
8641 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
8642 : return -1;
8643 : switch (GET_MODE (operands[0]))
8644 : {
8645 : case E_V2QImode:
8646 : if (pattern1548 (x3,
8647 : E_V2HImode,
8648 : E_V2QImode) != 0
8649 : || !
8650 : #line 6464 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8651 : (TARGET_SSE2))
8652 : return -1;
8653 : return 2437; /* uavgv2qi3_ceil */
8654 :
8655 : case E_V2HImode:
8656 : if (pattern1548 (x3,
8657 : E_V2SImode,
8658 : E_V2HImode) != 0
8659 : || !
8660 : #line 6484 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8661 : (TARGET_SSE2))
8662 : return -1;
8663 : return 2438; /* uavgv2hi3_ceil */
8664 :
8665 : default:
8666 : return -1;
8667 : }
8668 :
8669 : default:
8670 : return -1;
8671 : }
8672 :
8673 : case LSHIFTRT:
8674 : if (pattern627 (x7) != 0
8675 : || XWINT (x5, 0) != 1L)
8676 : return -1;
8677 : x8 = XEXP (x7, 0);
8678 : x15 = XEXP (x8, 0);
8679 : x17 = XEXP (x15, 0);
8680 : operands[1] = x17;
8681 : x18 = XEXP (x8, 1);
8682 : x19 = XEXP (x18, 0);
8683 : operands[2] = x19;
8684 : x10 = XEXP (x6, 1);
8685 : operands[3] = x10;
8686 : switch (GET_MODE (operands[0]))
8687 : {
8688 : case E_V4HImode:
8689 : if (pattern1523 (x3,
8690 : E_V4SImode,
8691 : E_V4HImode) != 0
8692 : || !register_mmxmem_operand (operands[1], E_V4HImode)
8693 : || GET_MODE (x18) != E_V4SImode
8694 : || !register_mmxmem_operand (operands[2], E_V4HImode)
8695 : || !const1_operand (operands[3], E_V4HImode)
8696 : || !
8697 : #line 23410 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8698 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8699 : && TARGET_SSSE3
8700 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8701 : return -1;
8702 : return 8666; /* *ssse3_pmulhrswv4hi3 */
8703 :
8704 : case E_V2HImode:
8705 : if (pattern1523 (x3,
8706 : E_V2SImode,
8707 : E_V2HImode) != 0
8708 : || !register_operand (operands[1], E_V2HImode)
8709 : || GET_MODE (x18) != E_V2SImode
8710 : || !register_operand (operands[2], E_V2HImode)
8711 : || !const1_operand (operands[3], E_V2HImode)
8712 : || !
8713 : #line 23455 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8714 : (TARGET_SSSE3
8715 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8716 : return -1;
8717 : return 8667; /* *smulhrsv2hi3 */
8718 :
8719 : default:
8720 : return -1;
8721 : }
8722 :
8723 : default:
8724 : return -1;
8725 : }
8726 :
8727 : default:
8728 : return -1;
8729 : }
8730 :
8731 : case REG:
8732 : case SUBREG:
8733 : operands[1] = x4;
8734 : switch (GET_MODE (operands[0]))
8735 : {
8736 : case E_V4QImode:
8737 : if (GET_MODE (x3) != E_V4QImode)
8738 : return -1;
8739 : if (register_operand (operands[0], E_V4QImode)
8740 : && register_operand (operands[1], E_V4HImode)
8741 : && (
8742 : #line 5172 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8743 : (TARGET_AVX512VL && TARGET_AVX512BW) &&
8744 : #line 73 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8745 : (TARGET_MMX_WITH_SSE)))
8746 : return 2368; /* avx512vl_truncv4hiv4qi2 */
8747 : if (!memory_operand (operands[0], E_V4QImode))
8748 : return -1;
8749 : switch (GET_MODE (operands[1]))
8750 : {
8751 : case E_V4SImode:
8752 : if (!register_operand (operands[1], E_V4SImode)
8753 : || !
8754 : #line 15820 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8755 : (TARGET_AVX512VL))
8756 : return -1;
8757 : return 7347; /* *avx512vl_truncatev4siv4qi2_store_1 */
8758 :
8759 : case E_V4DImode:
8760 : if (!register_operand (operands[1], E_V4DImode)
8761 : || !
8762 : #line 15820 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8763 : (TARGET_AVX512VL))
8764 : return -1;
8765 : return 7350; /* *avx512vl_truncatev4div4qi2_store_1 */
8766 :
8767 : default:
8768 : return -1;
8769 : }
8770 :
8771 : case E_V2QImode:
8772 : if (GET_MODE (x3) != E_V2QImode)
8773 : return -1;
8774 : if (register_operand (operands[0], E_V2QImode))
8775 : {
8776 : switch (GET_MODE (operands[1]))
8777 : {
8778 : case E_V2HImode:
8779 : if (register_operand (operands[1], E_V2HImode)
8780 : &&
8781 : #line 5172 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8782 : (TARGET_AVX512VL && TARGET_AVX512BW))
8783 : return 2369; /* avx512vl_truncv2hiv2qi2 */
8784 : break;
8785 :
8786 : case E_V2SImode:
8787 : if (register_operand (operands[1], E_V2SImode)
8788 : &&
8789 : #line 5198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8790 : (TARGET_AVX512VL && TARGET_MMX_WITH_SSE))
8791 : return 2370; /* avx512vl_truncv2siv2qi2 */
8792 : break;
8793 :
8794 : default:
8795 : break;
8796 : }
8797 : }
8798 : if (!memory_operand (operands[0], E_V2QImode)
8799 : || !register_operand (operands[1], E_V2DImode)
8800 : || !
8801 : #line 15725 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8802 : (TARGET_AVX512VL))
8803 : return -1;
8804 : return 7332; /* *avx512vl_truncatev2div2qi2_store_1 */
8805 :
8806 : case E_V2HImode:
8807 : if (GET_MODE (x3) != E_V2HImode)
8808 : return -1;
8809 : if (register_operand (operands[0], E_V2HImode)
8810 : && register_operand (operands[1], E_V2SImode)
8811 : &&
8812 : #line 5198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8813 : (TARGET_AVX512VL && TARGET_MMX_WITH_SSE))
8814 : return 2371; /* avx512vl_truncv2siv2hi2 */
8815 : if (!memory_operand (operands[0], E_V2HImode)
8816 : || !register_operand (operands[1], E_V2DImode)
8817 : || !
8818 : #line 16171 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8819 : (TARGET_AVX512VL))
8820 : return -1;
8821 : return 7447; /* *avx512vl_truncatev2div2hi2_store_1 */
8822 :
8823 : case E_V8QImode:
8824 : switch (pattern10 (x3))
8825 : {
8826 : case 0:
8827 : if (!(
8828 : #line 15918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8829 : (TARGET_AVX512VL) &&
8830 : #line 15912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8831 : (TARGET_AVX512BW)))
8832 : return -1;
8833 : return 7377; /* *avx512vl_truncatev8hiv8qi2_store_1 */
8834 :
8835 : case 1:
8836 : if (!
8837 : #line 15918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8838 : (TARGET_AVX512VL))
8839 : return -1;
8840 : return 7380; /* *avx512vl_truncatev8siv8qi2_store_1 */
8841 :
8842 : case 2:
8843 : if (!
8844 : #line 16434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8845 : (TARGET_AVX512F))
8846 : return -1;
8847 : return 7484; /* *avx512f_truncatev8div16qi2_store_1 */
8848 :
8849 : default:
8850 : return -1;
8851 : }
8852 :
8853 : case E_V4HImode:
8854 : switch (pattern9 (x3,
8855 : E_V4HImode))
8856 : {
8857 : case 0:
8858 : if (!
8859 : #line 16080 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8860 : (TARGET_AVX512VL))
8861 : return -1;
8862 : return 7417; /* *avx512vl_truncatev4siv4hi2_store_1 */
8863 :
8864 : case 1:
8865 : if (!
8866 : #line 16080 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8867 : (TARGET_AVX512VL))
8868 : return -1;
8869 : return 7420; /* *avx512vl_truncatev4div4hi2_store_1 */
8870 :
8871 : default:
8872 : return -1;
8873 : }
8874 :
8875 : case E_V2SImode:
8876 : if (!memory_operand (operands[0], E_V2SImode)
8877 : || GET_MODE (x3) != E_V2SImode
8878 : || !register_operand (operands[1], E_V2DImode)
8879 : || !
8880 : #line 16321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8881 : (TARGET_AVX512VL))
8882 : return -1;
8883 : return 7466; /* *avx512vl_truncatev2div2si2_store_1 */
8884 :
8885 : default:
8886 : return -1;
8887 : }
8888 :
8889 : default:
8890 : return -1;
8891 : }
8892 : }
8893 :
8894 : int
8895 : recog_79 (rtx x1 ATTRIBUTE_UNUSED,
8896 : rtx_insn *insn ATTRIBUTE_UNUSED,
8897 : int *pnum_clobbers ATTRIBUTE_UNUSED)
8898 : {
8899 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
8900 : rtx x2, x3, x4, x5, x6;
8901 : int res ATTRIBUTE_UNUSED;
8902 : x2 = XEXP (x1, 1);
8903 : x3 = XEXP (x2, 0);
8904 : x4 = XEXP (x3, 0);
8905 : switch (GET_CODE (x4))
8906 : {
8907 : case REG:
8908 : case SUBREG:
8909 : case MEM:
8910 : switch (pattern115 (x2, pnum_clobbers))
8911 : {
8912 : case 0:
8913 : if (
8914 : #line 14035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8915 : (TARGET_APX_NDD && TARGET_APX_NF
8916 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8917 : return 877; /* *xorqi_1_zextsi_nf */
8918 : if (pnum_clobbers == NULL
8919 : || !
8920 : #line 14035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8921 : (TARGET_APX_NDD && true
8922 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8923 : return -1;
8924 : *pnum_clobbers = 1;
8925 : return 878; /* *xorqi_1_zextsi */
8926 :
8927 : case 1:
8928 : if (
8929 : #line 14049 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8930 : (TARGET_APX_NDD && TARGET_APX_NF
8931 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8932 : return 885; /* *xorhi_1_zextsi_nf */
8933 : if (pnum_clobbers == NULL
8934 : || !
8935 : #line 14049 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8936 : (TARGET_APX_NDD && true
8937 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8938 : return -1;
8939 : *pnum_clobbers = 1;
8940 : return 886; /* *xorhi_1_zextsi */
8941 :
8942 : case 2:
8943 : if (
8944 : #line 14035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8945 : (TARGET_APX_NDD && TARGET_APX_NF
8946 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8947 : return 881; /* *xorqi_1_zextdi_nf */
8948 : if (pnum_clobbers == NULL
8949 : || !
8950 : #line 14035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8951 : (TARGET_APX_NDD && true
8952 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8953 : return -1;
8954 : *pnum_clobbers = 1;
8955 : return 882; /* *xorqi_1_zextdi */
8956 :
8957 : case 3:
8958 : if (
8959 : #line 14049 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8960 : (TARGET_APX_NDD && TARGET_APX_NF
8961 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8962 : return 889; /* *xorhi_1_zextdi_nf */
8963 : if (pnum_clobbers == NULL
8964 : || !
8965 : #line 14049 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8966 : (TARGET_APX_NDD && true
8967 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8968 : return -1;
8969 : *pnum_clobbers = 1;
8970 : return 890; /* *xorhi_1_zextdi */
8971 :
8972 : case 4:
8973 : if (!
8974 : #line 14065 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8975 : (TARGET_64BIT
8976 : && ix86_binary_operator_ok (XOR, SImode, operands, TARGET_APX_NDD)))
8977 : return -1;
8978 : *pnum_clobbers = 1;
8979 : return 892; /* *xorsi_1_zext */
8980 :
8981 : default:
8982 : return -1;
8983 : }
8984 :
8985 : case MINUS:
8986 : if (pnum_clobbers == NULL
8987 : || pattern442 (x3) != 0
8988 : || !register_operand (operands[0], E_DImode)
8989 : || GET_MODE (x2) != E_DImode
8990 : || GET_MODE (x3) != E_SImode)
8991 : return -1;
8992 : x5 = XEXP (x4, 1);
8993 : x6 = XEXP (x5, 0);
8994 : operands[1] = x6;
8995 : if (!nonimmediate_operand (operands[1], E_SImode)
8996 : || !
8997 : #line 21705 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8998 : (!TARGET_LZCNT && TARGET_64BIT && ix86_pre_reload_split ()))
8999 : return -1;
9000 : *pnum_clobbers = 1;
9001 : return 1565; /* *bsru_2 */
9002 :
9003 : default:
9004 : return -1;
9005 : }
9006 : }
9007 :
9008 : int
9009 : recog_82 (rtx x1 ATTRIBUTE_UNUSED,
9010 : rtx_insn *insn ATTRIBUTE_UNUSED,
9011 : int *pnum_clobbers ATTRIBUTE_UNUSED)
9012 : {
9013 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
9014 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
9015 : rtx x10, x11;
9016 : int res ATTRIBUTE_UNUSED;
9017 : x2 = XEXP (x1, 1);
9018 : x3 = XEXP (x2, 0);
9019 : x4 = XEXP (x3, 1);
9020 : x5 = XEXP (x4, 0);
9021 : operands[2] = x5;
9022 : x6 = XEXP (x3, 0);
9023 : if (!rtx_equal_p (x6, operands[0]))
9024 : return -1;
9025 : x7 = XEXP (x2, 1);
9026 : x8 = XEXP (x7, 0);
9027 : x9 = XEXP (x8, 1);
9028 : x10 = XEXP (x9, 1);
9029 : x11 = XEXP (x10, 0);
9030 : if (!rtx_equal_p (x11, operands[2]))
9031 : return -1;
9032 : if (
9033 : #line 15739 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9034 : (TARGET_64BIT && TARGET_APX_NF))
9035 : return 1094; /* x86_64_shld_nf */
9036 : if (pnum_clobbers == NULL
9037 : || !
9038 : #line 15739 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9039 : (TARGET_64BIT && true))
9040 : return -1;
9041 : *pnum_clobbers = 1;
9042 : return 1095; /* x86_64_shld */
9043 : }
9044 :
9045 : int
9046 : recog_84 (rtx x1 ATTRIBUTE_UNUSED,
9047 : rtx_insn *insn ATTRIBUTE_UNUSED,
9048 : int *pnum_clobbers ATTRIBUTE_UNUSED)
9049 : {
9050 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
9051 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
9052 : rtx x10, x11, x12, x13, x14, x15;
9053 : int res ATTRIBUTE_UNUSED;
9054 : x2 = XEXP (x1, 1);
9055 : x3 = XEXP (x2, 0);
9056 : x4 = XEXP (x3, 0);
9057 : switch (GET_CODE (x4))
9058 : {
9059 : case REG:
9060 : case SUBREG:
9061 : case MEM:
9062 : x5 = XEXP (x3, 1);
9063 : switch (GET_CODE (x5))
9064 : {
9065 : case CONST_INT:
9066 : case CONST_WIDE_INT:
9067 : case CONST_POLY_INT:
9068 : case CONST_FIXED:
9069 : case CONST_DOUBLE:
9070 : case CONST_VECTOR:
9071 : case CONST:
9072 : case REG:
9073 : case SUBREG:
9074 : case LABEL_REF:
9075 : case SYMBOL_REF:
9076 : case HIGH:
9077 : x6 = XEXP (x2, 1);
9078 : switch (GET_CODE (x6))
9079 : {
9080 : case CONST_INT:
9081 : case CONST_WIDE_INT:
9082 : operands[3] = x6;
9083 : operands[1] = x4;
9084 : operands[2] = x5;
9085 : switch (GET_MODE (operands[0]))
9086 : {
9087 : case E_SImode:
9088 : if (pattern614 (x2,
9089 : E_SImode) != 0
9090 : || !
9091 : #line 8072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9092 : ((unsigned HOST_WIDE_INT) INTVAL (operands[3])
9093 : < (HOST_WIDE_INT_1U << INTVAL (operands[2]))))
9094 : return -1;
9095 : return 380; /* *leasi_general_4 */
9096 :
9097 : case E_DImode:
9098 : if (GET_MODE (x2) != E_DImode
9099 : || GET_MODE (x3) != E_DImode)
9100 : return -1;
9101 : if (register_operand (operands[0], E_DImode)
9102 : && register_no_SP_operand (operands[1], E_DImode)
9103 : && const_0_to_3_operand (operands[2], E_VOIDmode)
9104 : && const_int_operand (operands[3], E_VOIDmode)
9105 : && (
9106 : #line 8072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9107 : ((unsigned HOST_WIDE_INT) INTVAL (operands[3])
9108 : < (HOST_WIDE_INT_1U << INTVAL (operands[2]))) &&
9109 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9110 : (TARGET_64BIT)))
9111 : return 382; /* *leadi_general_4 */
9112 : if (!nonimmediate_operand (operands[0], E_DImode)
9113 : || !register_operand (operands[1], E_DImode)
9114 : || !const_int_operand (operands[2], E_QImode)
9115 : || !const_scalar_int_operand (operands[3], E_DImode)
9116 : || !(
9117 : #line 14473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9118 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT / 2
9119 : && (DImode == DImode
9120 : ? CONST_INT_P (operands[3])
9121 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
9122 : : CONST_INT_P (operands[3])
9123 : ? INTVAL (operands[3]) >= 0
9124 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
9125 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
9126 : && !(CONST_INT_P (operands[3])
9127 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
9128 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
9129 : 0)),
9130 : VOIDmode))) &&
9131 : #line 1196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9132 : (!TARGET_64BIT)))
9133 : return -1;
9134 : return 961; /* *concatsidi3_5 */
9135 :
9136 : default:
9137 : return -1;
9138 : }
9139 :
9140 : case ZERO_EXTEND:
9141 : if (GET_MODE (x6) != E_DImode
9142 : || !nonimmediate_operand (operands[0], E_DImode)
9143 : || GET_MODE (x2) != E_DImode
9144 : || GET_MODE (x3) != E_DImode)
9145 : return -1;
9146 : operands[1] = x4;
9147 : if (!register_operand (operands[1], E_DImode))
9148 : return -1;
9149 : operands[2] = x5;
9150 : if (!const_int_operand (operands[2], E_QImode))
9151 : return -1;
9152 : x7 = XEXP (x6, 0);
9153 : operands[3] = x7;
9154 : if (!nonimmediate_operand (operands[3], E_SImode)
9155 : || !(
9156 : #line 14396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9157 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT) &&
9158 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9159 : (!TARGET_64BIT)))
9160 : return -1;
9161 : return 925; /* *concatsidi3_1 */
9162 :
9163 : case SUBREG:
9164 : switch (pattern444 (x2,
9165 : LSHIFTRT))
9166 : {
9167 : case 0:
9168 : operands[2] = x5;
9169 : if (pattern1371 (x2) == 0)
9170 : {
9171 : if (
9172 : #line 15775 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9173 : (TARGET_64BIT
9174 : && INTVAL (operands[3]) == 64 - INTVAL (operands[2])
9175 : && TARGET_APX_NF))
9176 : return 1098; /* x86_64_shld_1_nf */
9177 : if (pnum_clobbers != NULL
9178 : &&
9179 : #line 15775 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9180 : (TARGET_64BIT
9181 : && INTVAL (operands[3]) == 64 - INTVAL (operands[2])
9182 : && true))
9183 : {
9184 : *pnum_clobbers = 1;
9185 : return 1099; /* x86_64_shld_1 */
9186 : }
9187 : }
9188 : operands[3] = x5;
9189 : if (pattern1372 (x2) != 0)
9190 : return -1;
9191 : if (
9192 : #line 15797 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9193 : (TARGET_APX_NDD
9194 : && INTVAL (operands[4]) == 64 - INTVAL (operands[3])
9195 : && TARGET_APX_NF))
9196 : return 1100; /* x86_64_shld_ndd_1_nf */
9197 : if (pnum_clobbers == NULL
9198 : || !
9199 : #line 15797 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9200 : (TARGET_APX_NDD
9201 : && INTVAL (operands[4]) == 64 - INTVAL (operands[3])
9202 : && true))
9203 : return -1;
9204 : *pnum_clobbers = 1;
9205 : return 1101; /* x86_64_shld_ndd_1 */
9206 :
9207 : case 1:
9208 : operands[2] = x5;
9209 : if (pattern1373 (x2) == 0)
9210 : {
9211 : if (
9212 : #line 16007 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9213 : (INTVAL (operands[3]) == 32 - INTVAL (operands[2])
9214 : && TARGET_APX_NF))
9215 : return 1110; /* x86_shld_1_nf */
9216 : if (pnum_clobbers != NULL
9217 : &&
9218 : #line 16007 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9219 : (INTVAL (operands[3]) == 32 - INTVAL (operands[2])
9220 : && true))
9221 : {
9222 : *pnum_clobbers = 1;
9223 : return 1111; /* x86_shld_1 */
9224 : }
9225 : }
9226 : operands[3] = x5;
9227 : if (pattern1374 (x2) != 0)
9228 : return -1;
9229 : if (
9230 : #line 16029 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9231 : (TARGET_APX_NDD
9232 : && INTVAL (operands[4]) == 32 - INTVAL (operands[3])
9233 : && TARGET_APX_NF))
9234 : return 1112; /* x86_shld_ndd_1_nf */
9235 : if (pnum_clobbers == NULL
9236 : || !
9237 : #line 16029 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9238 : (TARGET_APX_NDD
9239 : && INTVAL (operands[4]) == 32 - INTVAL (operands[3])
9240 : && true))
9241 : return -1;
9242 : *pnum_clobbers = 1;
9243 : return 1113; /* x86_shld_ndd_1 */
9244 :
9245 : default:
9246 : return -1;
9247 : }
9248 :
9249 : case LSHIFTRT:
9250 : switch (pattern447 (x2, pnum_clobbers))
9251 : {
9252 : case 0:
9253 : if (
9254 : #line 15813 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9255 : (TARGET_64BIT && TARGET_APX_NF
9256 : && INTVAL (operands[3]) == 64 - INTVAL (operands[2])
9257 : && ix86_pre_reload_split ()))
9258 : return 1102; /* *x86_64_shld_shrd_1_nozext_nf */
9259 : if (pnum_clobbers == NULL
9260 : || !
9261 : #line 15869 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9262 : (TARGET_64BIT
9263 : && INTVAL (operands[3]) == 64 - INTVAL (operands[2])
9264 : && ix86_pre_reload_split ()))
9265 : return -1;
9266 : *pnum_clobbers = 1;
9267 : return 1103; /* *x86_64_shld_shrd_1_nozext */
9268 :
9269 : case 1:
9270 : if (
9271 : #line 16045 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9272 : (TARGET_APX_NF
9273 : && INTVAL (operands[3]) == 32 - INTVAL (operands[2])
9274 : && ix86_pre_reload_split ()))
9275 : return 1114; /* *x86_shld_shrd_1_nozext_nf */
9276 : if (pnum_clobbers == NULL
9277 : || !
9278 : #line 16101 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9279 : (INTVAL (operands[3]) == 32 - INTVAL (operands[2])
9280 : && ix86_pre_reload_split ()))
9281 : return -1;
9282 : *pnum_clobbers = 1;
9283 : return 1115; /* *x86_shld_shrd_1_nozext */
9284 :
9285 : case 2:
9286 : x7 = XEXP (x6, 0);
9287 : operands[1] = x7;
9288 : if (nonimmediate_operand (operands[0], E_DImode))
9289 : {
9290 : operands[2] = x5;
9291 : if (rtx_equal_p (x4, operands[0]))
9292 : {
9293 : x8 = XEXP (x6, 1);
9294 : x9 = XEXP (x8, 1);
9295 : if (rtx_equal_p (x9, operands[2])
9296 : &&
9297 : #line 15922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9298 : (TARGET_64BIT && ix86_pre_reload_split ()))
9299 : {
9300 : *pnum_clobbers = 1;
9301 : return 1104; /* *x86_64_shld_2 */
9302 : }
9303 : }
9304 : }
9305 : operands[2] = x7;
9306 : if (!register_operand (operands[0], E_DImode))
9307 : return -1;
9308 : operands[1] = x4;
9309 : if (!nonimmediate_operand (operands[1], E_DImode))
9310 : return -1;
9311 : operands[3] = x5;
9312 : x8 = XEXP (x6, 1);
9313 : x9 = XEXP (x8, 1);
9314 : if (!rtx_equal_p (x9, operands[3])
9315 : || !
9316 : #line 15943 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9317 : (TARGET_APX_NDD
9318 : && ix86_pre_reload_split ()))
9319 : return -1;
9320 : *pnum_clobbers = 1;
9321 : return 1105; /* *x86_64_shld_ndd_2 */
9322 :
9323 : case 3:
9324 : x7 = XEXP (x6, 0);
9325 : operands[1] = x7;
9326 : if (nonimmediate_operand (operands[0], E_SImode))
9327 : {
9328 : operands[2] = x5;
9329 : if (rtx_equal_p (x4, operands[0]))
9330 : {
9331 : x8 = XEXP (x6, 1);
9332 : x9 = XEXP (x8, 1);
9333 : if (rtx_equal_p (x9, operands[2])
9334 : &&
9335 : #line 16153 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9336 : (TARGET_64BIT && ix86_pre_reload_split ()))
9337 : {
9338 : *pnum_clobbers = 1;
9339 : return 1116; /* *x86_shld_2 */
9340 : }
9341 : }
9342 : }
9343 : operands[2] = x7;
9344 : if (!register_operand (operands[0], E_SImode))
9345 : return -1;
9346 : operands[1] = x4;
9347 : if (!nonimmediate_operand (operands[1], E_SImode))
9348 : return -1;
9349 : operands[3] = x5;
9350 : x8 = XEXP (x6, 1);
9351 : x9 = XEXP (x8, 1);
9352 : if (!rtx_equal_p (x9, operands[3])
9353 : || !
9354 : #line 16174 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9355 : (TARGET_APX_NDD
9356 : && ix86_pre_reload_split ()))
9357 : return -1;
9358 : *pnum_clobbers = 1;
9359 : return 1117; /* *x86_shld_ndd_2 */
9360 :
9361 : default:
9362 : return -1;
9363 : }
9364 :
9365 : default:
9366 : return -1;
9367 : }
9368 :
9369 : case AND:
9370 : switch (pattern289 (x2,
9371 : LSHIFTRT))
9372 : {
9373 : case 0:
9374 : x6 = XEXP (x2, 1);
9375 : x7 = XEXP (x6, 0);
9376 : x10 = XEXP (x7, 0);
9377 : x11 = XEXP (x10, 0);
9378 : operands[1] = x11;
9379 : if (nonimmediate_operand (operands[0], E_DImode))
9380 : {
9381 : res = recog_82 (x1, insn, pnum_clobbers);
9382 : if (res >= 0)
9383 : return res;
9384 : }
9385 : operands[2] = x11;
9386 : if (!register_operand (operands[0], E_DImode))
9387 : return -1;
9388 : operands[1] = x4;
9389 : if (!nonimmediate_operand (operands[1], E_DImode))
9390 : return -1;
9391 : x12 = XEXP (x5, 0);
9392 : operands[3] = x12;
9393 : x13 = XEXP (x7, 1);
9394 : x14 = XEXP (x13, 1);
9395 : x15 = XEXP (x14, 0);
9396 : if (!rtx_equal_p (x15, operands[3]))
9397 : return -1;
9398 : if (
9399 : #line 15760 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9400 : (TARGET_APX_NDD && TARGET_APX_NF))
9401 : return 1096; /* x86_64_shld_ndd_nf */
9402 : if (pnum_clobbers == NULL
9403 : || !
9404 : #line 15760 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9405 : (TARGET_APX_NDD && true))
9406 : return -1;
9407 : *pnum_clobbers = 1;
9408 : return 1097; /* x86_64_shld_ndd */
9409 :
9410 : case 1:
9411 : if (!nonimmediate_operand (operands[0], E_SImode)
9412 : || pattern288 (x2,
9413 : E_SImode,
9414 : E_DImode) != 0)
9415 : return -1;
9416 : x6 = XEXP (x2, 1);
9417 : x7 = XEXP (x6, 0);
9418 : x10 = XEXP (x7, 0);
9419 : x11 = XEXP (x10, 0);
9420 : operands[1] = x11;
9421 : x12 = XEXP (x5, 0);
9422 : operands[2] = x12;
9423 : if (rtx_equal_p (x4, operands[0]))
9424 : {
9425 : x13 = XEXP (x7, 1);
9426 : x14 = XEXP (x13, 1);
9427 : x15 = XEXP (x14, 0);
9428 : if (rtx_equal_p (x15, operands[2]))
9429 : {
9430 : if (
9431 : #line 15969 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9432 : (TARGET_APX_NF))
9433 : return 1106; /* x86_shld_nf */
9434 : if (pnum_clobbers != NULL)
9435 : {
9436 : *pnum_clobbers = 1;
9437 : return 1107; /* x86_shld */
9438 : }
9439 : }
9440 : }
9441 : operands[2] = x11;
9442 : operands[1] = x4;
9443 : if (!nonimmediate_operand (operands[1], E_SImode))
9444 : return -1;
9445 : operands[3] = x12;
9446 : x13 = XEXP (x7, 1);
9447 : x14 = XEXP (x13, 1);
9448 : x15 = XEXP (x14, 0);
9449 : if (!rtx_equal_p (x15, operands[3]))
9450 : return -1;
9451 : if (
9452 : #line 15991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9453 : (TARGET_APX_NDD && TARGET_APX_NF))
9454 : return 1108; /* x86_shld_ndd_nf */
9455 : if (pnum_clobbers == NULL
9456 : || !
9457 : #line 15991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9458 : (TARGET_APX_NDD && true))
9459 : return -1;
9460 : *pnum_clobbers = 1;
9461 : return 1109; /* x86_shld_ndd */
9462 :
9463 : default:
9464 : return -1;
9465 : }
9466 :
9467 : default:
9468 : return -1;
9469 : }
9470 :
9471 : case SIGN_EXTEND:
9472 : switch (pattern260 (x2,
9473 : E_SImode,
9474 : E_DImode))
9475 : {
9476 : case 0:
9477 : if (!(
9478 : #line 14432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9479 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT) &&
9480 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9481 : (!TARGET_64BIT)))
9482 : return -1;
9483 : return 937; /* *concatsidi3_3 */
9484 :
9485 : case 1:
9486 : if (!(
9487 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9488 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT
9489 : && (DImode == DImode
9490 : ? CONST_INT_P (operands[3])
9491 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
9492 : : CONST_INT_P (operands[3])
9493 : ? INTVAL (operands[3]) >= 0
9494 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
9495 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
9496 : && !(CONST_INT_P (operands[3])
9497 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
9498 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
9499 : 0)),
9500 : VOIDmode))) &&
9501 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9502 : (!TARGET_64BIT)))
9503 : return -1;
9504 : return 967; /* *concatsidi3_6 */
9505 :
9506 : default:
9507 : return -1;
9508 : }
9509 :
9510 : case ZERO_EXTEND:
9511 : switch (pattern260 (x2,
9512 : E_SImode,
9513 : E_DImode))
9514 : {
9515 : case 0:
9516 : if (!(
9517 : #line 14432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9518 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT) &&
9519 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9520 : (!TARGET_64BIT)))
9521 : return -1;
9522 : return 940; /* *concatsidi3_3 */
9523 :
9524 : case 1:
9525 : if (!(
9526 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9527 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT
9528 : && (DImode == DImode
9529 : ? CONST_INT_P (operands[3])
9530 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
9531 : : CONST_INT_P (operands[3])
9532 : ? INTVAL (operands[3]) >= 0
9533 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
9534 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
9535 : && !(CONST_INT_P (operands[3])
9536 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
9537 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
9538 : 0)),
9539 : VOIDmode))) &&
9540 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9541 : (!TARGET_64BIT)))
9542 : return -1;
9543 : return 970; /* *concatsidi3_6 */
9544 :
9545 : default:
9546 : return -1;
9547 : }
9548 :
9549 : case CONST_INT:
9550 : switch (pattern287 (x2, pnum_clobbers))
9551 : {
9552 : case 0:
9553 : x5 = XEXP (x3, 1);
9554 : operands[2] = x5;
9555 : if (register_operand (operands[2], E_QImode))
9556 : {
9557 : switch (pattern759 (x2))
9558 : {
9559 : case 0:
9560 : if (
9561 : #line 19165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9562 : (TARGET_USE_BT))
9563 : {
9564 : *pnum_clobbers = 1;
9565 : return 1423; /* *btssi */
9566 : }
9567 : break;
9568 :
9569 : case 1:
9570 : if ((
9571 : #line 19165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9572 : (TARGET_USE_BT) &&
9573 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9574 : (TARGET_64BIT)))
9575 : {
9576 : *pnum_clobbers = 1;
9577 : return 1425; /* *btsdi */
9578 : }
9579 : break;
9580 :
9581 : default:
9582 : break;
9583 : }
9584 : }
9585 : if (GET_CODE (x5) != SUBREG)
9586 : return -1;
9587 : switch (pattern768 (x2))
9588 : {
9589 : case 0:
9590 : if (!
9591 : #line 19184 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9592 : (TARGET_USE_BT
9593 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (SImode)-1))
9594 : == GET_MODE_BITSIZE (SImode)-1
9595 : && ix86_pre_reload_split ()))
9596 : return -1;
9597 : *pnum_clobbers = 1;
9598 : return 1427; /* *btssi_mask */
9599 :
9600 : case 1:
9601 : if (!(
9602 : #line 19184 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9603 : (TARGET_USE_BT
9604 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (DImode)-1))
9605 : == GET_MODE_BITSIZE (DImode)-1
9606 : && ix86_pre_reload_split ()) &&
9607 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9608 : (TARGET_64BIT)))
9609 : return -1;
9610 : *pnum_clobbers = 1;
9611 : return 1429; /* *btsdi_mask */
9612 :
9613 : default:
9614 : return -1;
9615 : }
9616 :
9617 : case 1:
9618 : if (!
9619 : #line 19212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9620 : (TARGET_USE_BT
9621 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (SImode)-1))
9622 : == GET_MODE_BITSIZE (SImode)-1
9623 : && ix86_pre_reload_split ()))
9624 : return -1;
9625 : *pnum_clobbers = 1;
9626 : return 1431; /* *btssi_mask_1 */
9627 :
9628 : case 2:
9629 : if (!(
9630 : #line 19212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9631 : (TARGET_USE_BT
9632 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (DImode)-1))
9633 : == GET_MODE_BITSIZE (DImode)-1
9634 : && ix86_pre_reload_split ()) &&
9635 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9636 : (TARGET_64BIT)))
9637 : return -1;
9638 : *pnum_clobbers = 1;
9639 : return 1433; /* *btsdi_mask_1 */
9640 :
9641 : default:
9642 : return -1;
9643 : }
9644 :
9645 : default:
9646 : return -1;
9647 : }
9648 : }
9649 :
9650 : int
9651 : recog_103 (rtx x1 ATTRIBUTE_UNUSED,
9652 : rtx_insn *insn ATTRIBUTE_UNUSED,
9653 : int *pnum_clobbers ATTRIBUTE_UNUSED)
9654 : {
9655 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
9656 : rtx x2;
9657 : int res ATTRIBUTE_UNUSED;
9658 : switch (GET_MODE (operands[0]))
9659 : {
9660 : case E_DImode:
9661 : if (pnum_clobbers != NULL)
9662 : {
9663 : x2 = XEXP (x1, 1);
9664 : if (pattern858 (x2,
9665 : E_DImode,
9666 : E_QImode) == 0
9667 : &&
9668 : #line 1196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9669 : (!TARGET_64BIT))
9670 : {
9671 : *pnum_clobbers = 1;
9672 : return 1163; /* ashrdi3_doubleword */
9673 : }
9674 : }
9675 : x2 = XEXP (x1, 1);
9676 : if (GET_MODE (x2) != E_DImode
9677 : || !nonimmediate_operand (operands[1], E_DImode))
9678 : return -1;
9679 : if (nonimmediate_operand (operands[0], E_DImode)
9680 : && const_int_operand (operands[2], E_QImode))
9681 : {
9682 : if ((
9683 : #line 17580 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9684 : (INTVAL (operands[2]) == GET_MODE_BITSIZE (DImode)-1
9685 : && (TARGET_USE_CLTD || optimize_function_for_size_p (cfun))
9686 : && ix86_binary_operator_ok (ASHIFTRT, DImode, operands, TARGET_APX_NDD)
9687 : && TARGET_APX_NF) &&
9688 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9689 : (TARGET_64BIT)))
9690 : return 1200; /* ashrdi3_cvt_nf */
9691 : if (pnum_clobbers != NULL
9692 : && (
9693 : #line 17580 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9694 : (INTVAL (operands[2]) == GET_MODE_BITSIZE (DImode)-1
9695 : && (TARGET_USE_CLTD || optimize_function_for_size_p (cfun))
9696 : && ix86_binary_operator_ok (ASHIFTRT, DImode, operands, TARGET_APX_NDD)
9697 : && true) &&
9698 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9699 : (TARGET_64BIT)))
9700 : {
9701 : *pnum_clobbers = 1;
9702 : return 1201; /* ashrdi3_cvt */
9703 : }
9704 : }
9705 : if (register_operand (operands[0], E_DImode)
9706 : && register_operand (operands[2], E_DImode)
9707 : && (
9708 : #line 17649 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9709 : (TARGET_BMI2) &&
9710 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9711 : (TARGET_64BIT)))
9712 : return 1206; /* *bmi2_ashrdi3_1 */
9713 : if (!nonimmediate_operand (operands[0], E_DImode)
9714 : || !nonmemory_operand (operands[2], E_QImode))
9715 : return -1;
9716 : if ((
9717 : #line 17659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9718 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands, TARGET_APX_NDD)
9719 : && TARGET_APX_NF) &&
9720 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9721 : (TARGET_64BIT)))
9722 : return 1209; /* *ashrdi3_1_nf */
9723 : if (pnum_clobbers == NULL
9724 : || !(
9725 : #line 17659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9726 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands, TARGET_APX_NDD)
9727 : && true) &&
9728 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9729 : (TARGET_64BIT)))
9730 : return -1;
9731 : *pnum_clobbers = 1;
9732 : return 1210; /* *ashrdi3_1 */
9733 :
9734 : case E_SImode:
9735 : x2 = XEXP (x1, 1);
9736 : if (pattern635 (x2,
9737 : E_SImode) != 0)
9738 : return -1;
9739 : if (
9740 : #line 17659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9741 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands, TARGET_APX_NDD)
9742 : && TARGET_APX_NF))
9743 : return 1207; /* *ashrsi3_1_nf */
9744 : if (pnum_clobbers == NULL
9745 : || !
9746 : #line 17659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9747 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands, TARGET_APX_NDD)
9748 : && true))
9749 : return -1;
9750 : *pnum_clobbers = 1;
9751 : return 1208; /* *ashrsi3_1 */
9752 :
9753 : default:
9754 : return -1;
9755 : }
9756 : }
9757 :
9758 : int
9759 : recog_108 (rtx x1 ATTRIBUTE_UNUSED,
9760 : rtx_insn *insn ATTRIBUTE_UNUSED,
9761 : int *pnum_clobbers ATTRIBUTE_UNUSED)
9762 : {
9763 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
9764 : rtx x2, x3, x4, x5, x6, x7, x8;
9765 : int res ATTRIBUTE_UNUSED;
9766 : x2 = XEXP (x1, 0);
9767 : if (GET_CODE (x2) == SUBREG
9768 : && known_eq (SUBREG_BYTE (x2), 0))
9769 : {
9770 : x3 = XEXP (x2, 0);
9771 : operands[0] = x3;
9772 : if (register_operand (operands[0], E_QImode))
9773 : {
9774 : x4 = XEXP (x1, 1);
9775 : x5 = XEXP (x4, 2);
9776 : operands[2] = x5;
9777 : if (register_operand (operands[2], E_QImode))
9778 : {
9779 : switch (GET_MODE (x2))
9780 : {
9781 : case E_SImode:
9782 : if (GET_MODE (x4) == E_SImode
9783 : && register_operand (operands[1], E_SImode)
9784 : &&
9785 : #line 19684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9786 : (TARGET_USE_BT && ix86_pre_reload_split ()))
9787 : {
9788 : *pnum_clobbers = 1;
9789 : return 1466; /* *btsi_setcqi */
9790 : }
9791 : break;
9792 :
9793 : case E_DImode:
9794 : if (GET_MODE (x4) == E_DImode
9795 : && register_operand (operands[1], E_DImode)
9796 : && (
9797 : #line 19684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9798 : (TARGET_USE_BT && ix86_pre_reload_split ()) &&
9799 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9800 : (TARGET_64BIT)))
9801 : {
9802 : *pnum_clobbers = 1;
9803 : return 1467; /* *btdi_setcqi */
9804 : }
9805 : break;
9806 :
9807 : default:
9808 : break;
9809 : }
9810 : }
9811 : }
9812 : }
9813 : x4 = XEXP (x1, 1);
9814 : x5 = XEXP (x4, 2);
9815 : if (GET_CODE (x5) != SUBREG
9816 : || maybe_ne (SUBREG_BYTE (x5), 0)
9817 : || GET_MODE (x5) != E_QImode)
9818 : return -1;
9819 : x6 = XEXP (x5, 0);
9820 : if (GET_CODE (x6) != AND)
9821 : return -1;
9822 : operands[0] = x2;
9823 : x7 = XEXP (x6, 0);
9824 : operands[2] = x7;
9825 : x8 = XEXP (x6, 1);
9826 : operands[3] = x8;
9827 : if (!const_int_operand (operands[3], E_VOIDmode))
9828 : return -1;
9829 : switch (GET_MODE (operands[0]))
9830 : {
9831 : case E_SImode:
9832 : if (pattern1465 (x4,
9833 : E_SImode) != 0
9834 : || !
9835 : #line 19765 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9836 : (TARGET_USE_BT
9837 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
9838 : == GET_MODE_BITSIZE (SImode)-1
9839 : && ix86_pre_reload_split ()))
9840 : return -1;
9841 : *pnum_clobbers = 1;
9842 : return 1474; /* *btsi_setcsi_mask */
9843 :
9844 : case E_DImode:
9845 : if (pattern1465 (x4,
9846 : E_DImode) != 0
9847 : || !(
9848 : #line 19765 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9849 : (TARGET_USE_BT
9850 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
9851 : == GET_MODE_BITSIZE (DImode)-1
9852 : && ix86_pre_reload_split ()) &&
9853 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9854 : (TARGET_64BIT)))
9855 : return -1;
9856 : *pnum_clobbers = 1;
9857 : return 1475; /* *btdi_setcdi_mask */
9858 :
9859 : default:
9860 : return -1;
9861 : }
9862 : }
9863 :
9864 : int
9865 : recog_109 (rtx x1 ATTRIBUTE_UNUSED,
9866 : rtx_insn *insn ATTRIBUTE_UNUSED,
9867 : int *pnum_clobbers ATTRIBUTE_UNUSED)
9868 : {
9869 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
9870 : rtx x2, x3, x4, x5, x6;
9871 : int res ATTRIBUTE_UNUSED;
9872 : if (pnum_clobbers == NULL)
9873 : return -1;
9874 : x2 = XEXP (x1, 1);
9875 : x3 = XEXP (x2, 1);
9876 : if (GET_CODE (x3) != CONST_INT)
9877 : return -1;
9878 : x4 = XEXP (x2, 0);
9879 : operands[1] = x4;
9880 : if (XWINT (x3, 0) == 1L)
9881 : {
9882 : res = recog_108 (x1, insn, pnum_clobbers);
9883 : if (res >= 0)
9884 : return res;
9885 : }
9886 : x5 = XEXP (x1, 0);
9887 : operands[0] = x5;
9888 : operands[2] = x3;
9889 : if (!const_0_to_255_operand (operands[2], E_QImode))
9890 : return -1;
9891 : x6 = XEXP (x2, 2);
9892 : operands[3] = x6;
9893 : if (!const_0_to_255_operand (operands[3], E_QImode))
9894 : return -1;
9895 : switch (pattern132 (x2))
9896 : {
9897 : case 0:
9898 : if (!
9899 : #line 22526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9900 : (TARGET_TBM))
9901 : return -1;
9902 : *pnum_clobbers = 1;
9903 : return 1638; /* tbm_bextri_si */
9904 :
9905 : case 1:
9906 : if (!(
9907 : #line 22526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9908 : (TARGET_TBM) &&
9909 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9910 : (TARGET_64BIT)))
9911 : return -1;
9912 : *pnum_clobbers = 1;
9913 : return 1639; /* tbm_bextri_di */
9914 :
9915 : default:
9916 : return -1;
9917 : }
9918 : }
9919 :
9920 : int
9921 : recog_111 (rtx x1 ATTRIBUTE_UNUSED,
9922 : rtx_insn *insn ATTRIBUTE_UNUSED,
9923 : int *pnum_clobbers ATTRIBUTE_UNUSED)
9924 : {
9925 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
9926 : rtx x2, x3, x4, x5;
9927 : int res ATTRIBUTE_UNUSED;
9928 : x2 = XEXP (x1, 1);
9929 : if (GET_MODE (x2) != E_SImode)
9930 : return -1;
9931 : x3 = XEXP (x1, 0);
9932 : operands[0] = x3;
9933 : if (!register_operand (operands[0], E_SImode))
9934 : return -1;
9935 : x4 = XVECEXP (x2, 0, 0);
9936 : switch (GET_CODE (x4))
9937 : {
9938 : case REG:
9939 : case SUBREG:
9940 : operands[1] = x4;
9941 : switch (GET_MODE (operands[1]))
9942 : {
9943 : case E_DFmode:
9944 : if (register_operand (operands[1], E_DFmode)
9945 : &&
9946 : #line 25869 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9947 : (SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH))
9948 : return 1793; /* movmsk_df */
9949 : break;
9950 :
9951 : case E_V8QImode:
9952 : if (register_operand (operands[1], E_V8QImode)
9953 : &&
9954 : #line 6851 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
9955 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
9956 : && (TARGET_SSE || TARGET_3DNOW_A)))
9957 : return 2440; /* mmx_pmovmskb */
9958 : break;
9959 :
9960 : case E_V8SFmode:
9961 : if (register_operand (operands[1], E_V8SFmode)
9962 : && (
9963 : #line 22286 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9964 : (TARGET_SSE) &&
9965 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9966 : (TARGET_AVX)))
9967 : return 8552; /* avx_movmskps256 */
9968 : break;
9969 :
9970 : case E_V4SFmode:
9971 : if (register_operand (operands[1], E_V4SFmode)
9972 : &&
9973 : #line 22286 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9974 : (TARGET_SSE))
9975 : return 8553; /* sse_movmskps */
9976 : break;
9977 :
9978 : case E_V4DFmode:
9979 : if (register_operand (operands[1], E_V4DFmode)
9980 : && (
9981 : #line 22286 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9982 : (TARGET_SSE) &&
9983 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9984 : (TARGET_AVX)))
9985 : return 8554; /* avx_movmskpd256 */
9986 : break;
9987 :
9988 : case E_V2DFmode:
9989 : if (register_operand (operands[1], E_V2DFmode)
9990 : && (
9991 : #line 22286 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9992 : (TARGET_SSE) &&
9993 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9994 : (TARGET_SSE2)))
9995 : return 8555; /* sse2_movmskpd */
9996 : break;
9997 :
9998 : case E_V32QImode:
9999 : if (register_operand (operands[1], E_V32QImode)
10000 : && (
10001 : #line 22436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10002 : (TARGET_SSE2) &&
10003 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10004 : (TARGET_AVX2)))
10005 : return 8600; /* avx2_pmovmskb */
10006 : break;
10007 :
10008 : case E_V16QImode:
10009 : if (register_operand (operands[1], E_V16QImode)
10010 : &&
10011 : #line 22436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10012 : (TARGET_SSE2))
10013 : return 8601; /* sse2_pmovmskb */
10014 : break;
10015 :
10016 : default:
10017 : break;
10018 : }
10019 : if (GET_CODE (x4) != SUBREG
10020 : || maybe_ne (SUBREG_BYTE (x4), 0))
10021 : return -1;
10022 : x5 = XEXP (x4, 0);
10023 : switch (GET_CODE (x5))
10024 : {
10025 : case VEC_MERGE:
10026 : switch (pattern1106 (x4))
10027 : {
10028 : case 0:
10029 : if (!(
10030 : #line 22337 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10031 : (TARGET_SSE) &&
10032 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10033 : (TARGET_AVX)))
10034 : return -1;
10035 : return 8568; /* *avx_movmskps256_lt_avx512 */
10036 :
10037 : case 1:
10038 : if (!
10039 : #line 22337 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10040 : (TARGET_SSE))
10041 : return -1;
10042 : return 8569; /* *sse_movmskps_lt_avx512 */
10043 :
10044 : case 2:
10045 : if (!(
10046 : #line 22337 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10047 : (TARGET_SSE) &&
10048 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10049 : (TARGET_AVX)))
10050 : return -1;
10051 : return 8570; /* *avx_movmskpd256_lt_avx512 */
10052 :
10053 : case 3:
10054 : if (!(
10055 : #line 22337 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10056 : (TARGET_SSE) &&
10057 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10058 : (TARGET_SSE2)))
10059 : return -1;
10060 : return 8571; /* *sse2_movmskpd_lt_avx512 */
10061 :
10062 : default:
10063 : return -1;
10064 : }
10065 :
10066 : case ASHIFTRT:
10067 : switch (pattern1107 (x4))
10068 : {
10069 : case 0:
10070 : if (!(
10071 : #line 22400 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10072 : (TARGET_SSE) &&
10073 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10074 : (TARGET_AVX)))
10075 : return -1;
10076 : return 8588; /* *avx_movmskps256_shift */
10077 :
10078 : case 1:
10079 : if (!
10080 : #line 22400 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10081 : (TARGET_SSE))
10082 : return -1;
10083 : return 8589; /* *sse_movmskps_shift */
10084 :
10085 : case 2:
10086 : if (!(
10087 : #line 22400 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10088 : (TARGET_SSE) &&
10089 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10090 : (TARGET_AVX)))
10091 : return -1;
10092 : return 8590; /* *avx_movmskpd256_shift */
10093 :
10094 : case 3:
10095 : if (!(
10096 : #line 22400 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10097 : (TARGET_SSE) &&
10098 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10099 : (TARGET_SSE2)))
10100 : return -1;
10101 : return 8591; /* *sse2_movmskpd_shift */
10102 :
10103 : default:
10104 : return -1;
10105 : }
10106 :
10107 : default:
10108 : return -1;
10109 : }
10110 :
10111 : case LT:
10112 : switch (pattern769 (x4))
10113 : {
10114 : case 0:
10115 : if (!(
10116 : #line 22313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10117 : (TARGET_SSE) &&
10118 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10119 : (TARGET_AVX)))
10120 : return -1;
10121 : return 8564; /* *avx_movmskps256_lt */
10122 :
10123 : case 1:
10124 : if (!
10125 : #line 22313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10126 : (TARGET_SSE))
10127 : return -1;
10128 : return 8565; /* *sse_movmskps_lt */
10129 :
10130 : case 2:
10131 : if (!(
10132 : #line 22313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10133 : (TARGET_SSE) &&
10134 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10135 : (TARGET_AVX)))
10136 : return -1;
10137 : return 8566; /* *avx_movmskpd256_lt */
10138 :
10139 : case 3:
10140 : if (!(
10141 : #line 22313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10142 : (TARGET_SSE) &&
10143 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10144 : (TARGET_SSE2)))
10145 : return -1;
10146 : return 8567; /* *sse2_movmskpd_lt */
10147 :
10148 : case 4:
10149 : if (!(
10150 : #line 22565 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10151 : (TARGET_SSE2) &&
10152 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10153 : (TARGET_AVX2)))
10154 : return -1;
10155 : return 8606; /* *avx2_pmovmskb_lt */
10156 :
10157 : case 5:
10158 : if (!
10159 : #line 22565 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10160 : (TARGET_SSE2))
10161 : return -1;
10162 : return 8607; /* *sse2_pmovmskb_lt */
10163 :
10164 : default:
10165 : return -1;
10166 : }
10167 :
10168 : case VEC_MERGE:
10169 : switch (pattern771 (x4))
10170 : {
10171 : case 0:
10172 : if (!(
10173 : #line 22593 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10174 : (TARGET_SSE2) &&
10175 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10176 : (TARGET_AVX2)))
10177 : return -1;
10178 : return 8608; /* *avx2_pmovmskb_lt_avx512 */
10179 :
10180 : case 1:
10181 : if (!
10182 : #line 22593 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10183 : (TARGET_SSE2))
10184 : return -1;
10185 : return 8609; /* *sse2_pmovmskb_lt_avx512 */
10186 :
10187 : case 2:
10188 : if (!
10189 : #line 22721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10190 : (TARGET_SSE2 && ix86_pre_reload_split ()))
10191 : return -1;
10192 : return 8617; /* *pmovsk_kmask_v16qi_avx512 */
10193 :
10194 : case 3:
10195 : if (!
10196 : #line 22735 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10197 : (TARGET_SSE2 && ix86_pre_reload_split ()))
10198 : return -1;
10199 : return 8618; /* *pmovsk_mask_v32qi_avx512 */
10200 :
10201 : default:
10202 : return -1;
10203 : }
10204 :
10205 : default:
10206 : return -1;
10207 : }
10208 : }
10209 :
10210 : int
10211 : recog_125 (rtx x1 ATTRIBUTE_UNUSED,
10212 : rtx_insn *insn ATTRIBUTE_UNUSED,
10213 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10214 : {
10215 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10216 : rtx x2, x3, x4, x5, x6;
10217 : int res ATTRIBUTE_UNUSED;
10218 : x2 = XEXP (x1, 1);
10219 : x3 = XEXP (x2, 0);
10220 : x4 = XVECEXP (x3, 0, 0);
10221 : operands[1] = x4;
10222 : x5 = XEXP (x2, 2);
10223 : switch (GET_CODE (x5))
10224 : {
10225 : case REG:
10226 : case SUBREG:
10227 : operands[3] = x5;
10228 : switch (GET_MODE (operands[0]))
10229 : {
10230 : case E_V16SImode:
10231 : if (pattern1003 (x2,
10232 : E_V16SImode,
10233 : E_HImode) != 0
10234 : || !
10235 : #line 1595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10236 : (TARGET_AVX512F))
10237 : return -1;
10238 : return 2505; /* *avx512f_loadv16si_mask */
10239 :
10240 : case E_V8SImode:
10241 : if (pattern1003 (x2,
10242 : E_V8SImode,
10243 : E_QImode) != 0
10244 : || !(
10245 : #line 1595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10246 : (TARGET_AVX512F) &&
10247 : #line 299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10248 : (TARGET_AVX512VL)))
10249 : return -1;
10250 : return 2506; /* *avx512vl_loadv8si_mask */
10251 :
10252 : case E_V4SImode:
10253 : if (pattern1003 (x2,
10254 : E_V4SImode,
10255 : E_QImode) != 0
10256 : || !(
10257 : #line 1595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10258 : (TARGET_AVX512F) &&
10259 : #line 299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10260 : (TARGET_AVX512VL)))
10261 : return -1;
10262 : return 2507; /* *avx512vl_loadv4si_mask */
10263 :
10264 : case E_V8DImode:
10265 : if (pattern1003 (x2,
10266 : E_V8DImode,
10267 : E_QImode) != 0
10268 : || !
10269 : #line 1595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10270 : (TARGET_AVX512F))
10271 : return -1;
10272 : return 2508; /* *avx512f_loadv8di_mask */
10273 :
10274 : case E_V4DImode:
10275 : if (pattern1003 (x2,
10276 : E_V4DImode,
10277 : E_QImode) != 0
10278 : || !(
10279 : #line 1595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10280 : (TARGET_AVX512F) &&
10281 : #line 300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10282 : (TARGET_AVX512VL)))
10283 : return -1;
10284 : return 2509; /* *avx512vl_loadv4di_mask */
10285 :
10286 : case E_V2DImode:
10287 : if (pattern1003 (x2,
10288 : E_V2DImode,
10289 : E_QImode) != 0
10290 : || !(
10291 : #line 1595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10292 : (TARGET_AVX512F) &&
10293 : #line 300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10294 : (TARGET_AVX512VL)))
10295 : return -1;
10296 : return 2510; /* *avx512vl_loadv2di_mask */
10297 :
10298 : case E_V16SFmode:
10299 : if (pattern1003 (x2,
10300 : E_V16SFmode,
10301 : E_HImode) != 0
10302 : || !
10303 : #line 1595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10304 : (TARGET_AVX512F))
10305 : return -1;
10306 : return 2511; /* *avx512f_loadv16sf_mask */
10307 :
10308 : case E_V8SFmode:
10309 : if (pattern1003 (x2,
10310 : E_V8SFmode,
10311 : E_QImode) != 0
10312 : || !(
10313 : #line 1595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10314 : (TARGET_AVX512F) &&
10315 : #line 301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10316 : (TARGET_AVX512VL)))
10317 : return -1;
10318 : return 2512; /* *avx512vl_loadv8sf_mask */
10319 :
10320 : case E_V4SFmode:
10321 : if (pattern1003 (x2,
10322 : E_V4SFmode,
10323 : E_QImode) != 0
10324 : || !(
10325 : #line 1595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10326 : (TARGET_AVX512F) &&
10327 : #line 301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10328 : (TARGET_AVX512VL)))
10329 : return -1;
10330 : return 2513; /* *avx512vl_loadv4sf_mask */
10331 :
10332 : case E_V8DFmode:
10333 : if (pattern1003 (x2,
10334 : E_V8DFmode,
10335 : E_QImode) != 0
10336 : || !
10337 : #line 1595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10338 : (TARGET_AVX512F))
10339 : return -1;
10340 : return 2514; /* *avx512f_loadv8df_mask */
10341 :
10342 : case E_V4DFmode:
10343 : if (pattern1003 (x2,
10344 : E_V4DFmode,
10345 : E_QImode) != 0
10346 : || !(
10347 : #line 1595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10348 : (TARGET_AVX512F) &&
10349 : #line 302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10350 : (TARGET_AVX512VL)))
10351 : return -1;
10352 : return 2515; /* *avx512vl_loadv4df_mask */
10353 :
10354 : case E_V2DFmode:
10355 : if (pattern1003 (x2,
10356 : E_V2DFmode,
10357 : E_QImode) != 0
10358 : || !(
10359 : #line 1595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10360 : (TARGET_AVX512F) &&
10361 : #line 302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10362 : (TARGET_AVX512VL)))
10363 : return -1;
10364 : return 2516; /* *avx512vl_loadv2df_mask */
10365 :
10366 : case E_V64QImode:
10367 : if (pattern1003 (x2,
10368 : E_V64QImode,
10369 : E_DImode) != 0
10370 : || !
10371 : #line 1692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10372 : (TARGET_AVX512BW))
10373 : return -1;
10374 : return 2535; /* *avx512bw_loadv64qi_mask */
10375 :
10376 : case E_V16QImode:
10377 : if (pattern1003 (x2,
10378 : E_V16QImode,
10379 : E_HImode) != 0
10380 : || !(
10381 : #line 1692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10382 : (TARGET_AVX512BW) &&
10383 : #line 332 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10384 : (TARGET_AVX512VL)))
10385 : return -1;
10386 : return 2536; /* *avx512vl_loadv16qi_mask */
10387 :
10388 : case E_V32QImode:
10389 : if (pattern1003 (x2,
10390 : E_V32QImode,
10391 : E_SImode) != 0
10392 : || !(
10393 : #line 1692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10394 : (TARGET_AVX512BW) &&
10395 : #line 332 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10396 : (TARGET_AVX512VL)))
10397 : return -1;
10398 : return 2537; /* *avx512vl_loadv32qi_mask */
10399 :
10400 : case E_V32HImode:
10401 : if (pattern1003 (x2,
10402 : E_V32HImode,
10403 : E_SImode) != 0
10404 : || !
10405 : #line 1692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10406 : (TARGET_AVX512BW))
10407 : return -1;
10408 : return 2538; /* *avx512bw_loadv32hi_mask */
10409 :
10410 : case E_V16HImode:
10411 : if (pattern1003 (x2,
10412 : E_V16HImode,
10413 : E_HImode) != 0
10414 : || !(
10415 : #line 1692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10416 : (TARGET_AVX512BW) &&
10417 : #line 333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10418 : (TARGET_AVX512VL)))
10419 : return -1;
10420 : return 2539; /* *avx512vl_loadv16hi_mask */
10421 :
10422 : case E_V8HImode:
10423 : if (pattern1003 (x2,
10424 : E_V8HImode,
10425 : E_QImode) != 0
10426 : || !(
10427 : #line 1692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10428 : (TARGET_AVX512BW) &&
10429 : #line 333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10430 : (TARGET_AVX512VL)))
10431 : return -1;
10432 : return 2540; /* *avx512vl_loadv8hi_mask */
10433 :
10434 : case E_V32HFmode:
10435 : if (pattern1003 (x2,
10436 : E_V32HFmode,
10437 : E_SImode) != 0
10438 : || !
10439 : #line 1692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10440 : (TARGET_AVX512BW))
10441 : return -1;
10442 : return 2541; /* *avx512bw_loadv32hf_mask */
10443 :
10444 : case E_V16HFmode:
10445 : if (pattern1003 (x2,
10446 : E_V16HFmode,
10447 : E_HImode) != 0
10448 : || !(
10449 : #line 1692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10450 : (TARGET_AVX512BW) &&
10451 : #line 334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10452 : (TARGET_AVX512VL)))
10453 : return -1;
10454 : return 2542; /* *avx512vl_loadv16hf_mask */
10455 :
10456 : case E_V8HFmode:
10457 : if (pattern1003 (x2,
10458 : E_V8HFmode,
10459 : E_QImode) != 0
10460 : || !(
10461 : #line 1692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10462 : (TARGET_AVX512BW) &&
10463 : #line 334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10464 : (TARGET_AVX512VL)))
10465 : return -1;
10466 : return 2543; /* *avx512fp16_loadv8hf_mask */
10467 :
10468 : case E_V32BFmode:
10469 : if (pattern1003 (x2,
10470 : E_V32BFmode,
10471 : E_SImode) != 0
10472 : || !
10473 : #line 1692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10474 : (TARGET_AVX512BW))
10475 : return -1;
10476 : return 2544; /* *avx512bw_loadv32bf_mask */
10477 :
10478 : case E_V16BFmode:
10479 : if (pattern1003 (x2,
10480 : E_V16BFmode,
10481 : E_HImode) != 0
10482 : || !(
10483 : #line 1692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10484 : (TARGET_AVX512BW) &&
10485 : #line 335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10486 : (TARGET_AVX512VL)))
10487 : return -1;
10488 : return 2545; /* *avx512vl_loadv16bf_mask */
10489 :
10490 : case E_V8BFmode:
10491 : if (pattern1003 (x2,
10492 : E_V8BFmode,
10493 : E_QImode) != 0
10494 : || !(
10495 : #line 1692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10496 : (TARGET_AVX512BW) &&
10497 : #line 335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10498 : (TARGET_AVX512VL)))
10499 : return -1;
10500 : return 2546; /* *avx512vl_loadv8bf_mask */
10501 :
10502 : default:
10503 : return -1;
10504 : }
10505 :
10506 : case AND:
10507 : if (GET_MODE (x5) != E_QImode)
10508 : return -1;
10509 : x6 = XEXP (x5, 1);
10510 : if (GET_CODE (x6) != CONST_INT)
10511 : return -1;
10512 : switch (pattern1111 (x2))
10513 : {
10514 : case 0:
10515 : if (!(
10516 : #line 1636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10517 : (TARGET_AVX512F) &&
10518 : #line 521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10519 : (TARGET_AVX512VL)))
10520 : return -1;
10521 : return 2529; /* *avx512vl_loadv4sfmask_and15 */
10522 :
10523 : case 1:
10524 : if (!(
10525 : #line 1636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10526 : (TARGET_AVX512F) &&
10527 : #line 521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10528 : (TARGET_AVX512VL)))
10529 : return -1;
10530 : return 2530; /* *avx512vl_loadv4dfmask_and15 */
10531 :
10532 : case 2:
10533 : if (!(
10534 : #line 1636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10535 : (TARGET_AVX512F) &&
10536 : #line 522 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10537 : (TARGET_AVX512VL)))
10538 : return -1;
10539 : return 2531; /* *avx512vl_loadv4simask_and15 */
10540 :
10541 : case 3:
10542 : if (!(
10543 : #line 1636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10544 : (TARGET_AVX512F) &&
10545 : #line 522 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10546 : (TARGET_AVX512VL)))
10547 : return -1;
10548 : return 2532; /* *avx512vl_loadv4dimask_and15 */
10549 :
10550 : case 4:
10551 : if (!(
10552 : #line 1655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10553 : (TARGET_AVX512F) &&
10554 : #line 528 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10555 : (TARGET_AVX512VL)))
10556 : return -1;
10557 : return 2533; /* *avx512vl_loadv2dfmask_and3 */
10558 :
10559 : case 5:
10560 : if (!(
10561 : #line 1655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10562 : (TARGET_AVX512F) &&
10563 : #line 528 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10564 : (TARGET_AVX512VL)))
10565 : return -1;
10566 : return 2534; /* *avx512vl_loadv2dimask_and3 */
10567 :
10568 : default:
10569 : return -1;
10570 : }
10571 :
10572 : default:
10573 : return -1;
10574 : }
10575 : }
10576 :
10577 : int
10578 : recog_131 (rtx x1 ATTRIBUTE_UNUSED,
10579 : rtx_insn *insn ATTRIBUTE_UNUSED,
10580 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10581 : {
10582 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10583 : rtx x2, x3, x4, x5;
10584 : int res ATTRIBUTE_UNUSED;
10585 : x2 = XEXP (x1, 1);
10586 : x3 = XEXP (x2, 0);
10587 : x4 = XVECEXP (x3, 0, 0);
10588 : operands[1] = x4;
10589 : x5 = XEXP (x2, 2);
10590 : operands[3] = x5;
10591 : switch (GET_MODE (operands[0]))
10592 : {
10593 : case E_V32HFmode:
10594 : if (pattern1001 (x2,
10595 : E_V32HFmode,
10596 : E_SImode) != 0
10597 : || !(
10598 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10599 : (TARGET_AVX512F) && (
10600 : #line 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10601 : (TARGET_AVX512F) &&
10602 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10603 : (TARGET_AVX512FP16))))
10604 : return -1;
10605 : return 7057; /* avx512bw_getexpv32hf_mask */
10606 :
10607 : case E_V16HFmode:
10608 : if (pattern1001 (x2,
10609 : E_V16HFmode,
10610 : E_HImode) != 0
10611 : || !(
10612 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10613 : (TARGET_AVX512F) && (
10614 : #line 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10615 : (TARGET_AVX512F) &&
10616 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10617 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
10618 : return -1;
10619 : return 7061; /* avx512vl_getexpv16hf_mask */
10620 :
10621 : case E_V8HFmode:
10622 : if (pattern1001 (x2,
10623 : E_V8HFmode,
10624 : E_QImode) != 0
10625 : || !(
10626 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10627 : (TARGET_AVX512F) && (
10628 : #line 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10629 : (TARGET_AVX512F) &&
10630 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10631 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
10632 : return -1;
10633 : return 7065; /* avx512fp16_getexpv8hf_mask */
10634 :
10635 : case E_V16SFmode:
10636 : if (pattern1001 (x2,
10637 : E_V16SFmode,
10638 : E_HImode) != 0
10639 : || !
10640 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10641 : (TARGET_AVX512F))
10642 : return -1;
10643 : return 7069; /* avx512f_getexpv16sf_mask */
10644 :
10645 : case E_V8SFmode:
10646 : if (pattern1001 (x2,
10647 : E_V8SFmode,
10648 : E_QImode) != 0
10649 : || !(
10650 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10651 : (TARGET_AVX512F) && (
10652 : #line 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10653 : (TARGET_AVX512F) &&
10654 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10655 : (TARGET_AVX512VL))))
10656 : return -1;
10657 : return 7073; /* avx512vl_getexpv8sf_mask */
10658 :
10659 : case E_V4SFmode:
10660 : if (pattern1001 (x2,
10661 : E_V4SFmode,
10662 : E_QImode) != 0
10663 : || !(
10664 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10665 : (TARGET_AVX512F) && (
10666 : #line 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10667 : (TARGET_AVX512F) &&
10668 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10669 : (TARGET_AVX512VL))))
10670 : return -1;
10671 : return 7077; /* avx512vl_getexpv4sf_mask */
10672 :
10673 : case E_V8DFmode:
10674 : if (pattern1001 (x2,
10675 : E_V8DFmode,
10676 : E_QImode) != 0
10677 : || !
10678 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10679 : (TARGET_AVX512F))
10680 : return -1;
10681 : return 7081; /* avx512f_getexpv8df_mask */
10682 :
10683 : case E_V4DFmode:
10684 : if (pattern1001 (x2,
10685 : E_V4DFmode,
10686 : E_QImode) != 0
10687 : || !(
10688 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10689 : (TARGET_AVX512F) && (
10690 : #line 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10691 : (TARGET_AVX512F) &&
10692 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10693 : (TARGET_AVX512VL))))
10694 : return -1;
10695 : return 7085; /* avx512vl_getexpv4df_mask */
10696 :
10697 : case E_V2DFmode:
10698 : if (pattern1001 (x2,
10699 : E_V2DFmode,
10700 : E_QImode) != 0
10701 : || !(
10702 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10703 : (TARGET_AVX512F) && (
10704 : #line 14356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10705 : (TARGET_AVX512F) &&
10706 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10707 : (TARGET_AVX512VL))))
10708 : return -1;
10709 : return 7089; /* avx512vl_getexpv2df_mask */
10710 :
10711 : case E_V32BFmode:
10712 : if (pattern638 (x2,
10713 : E_V32BFmode,
10714 : E_SImode) != 0
10715 : || !(
10716 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10717 : (TARGET_AVX512F) &&
10718 : #line 33126 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10719 : (TARGET_AVX10_2)))
10720 : return -1;
10721 : return 10768; /* avx10_2_getexpbf16_v32bf_mask */
10722 :
10723 : case E_V16BFmode:
10724 : if (pattern638 (x2,
10725 : E_V16BFmode,
10726 : E_HImode) != 0
10727 : || !(
10728 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10729 : (TARGET_AVX512F) &&
10730 : #line 33126 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10731 : (TARGET_AVX10_2)))
10732 : return -1;
10733 : return 10770; /* avx10_2_getexpbf16_v16bf_mask */
10734 :
10735 : case E_V8BFmode:
10736 : if (pattern638 (x2,
10737 : E_V8BFmode,
10738 : E_QImode) != 0
10739 : || !(
10740 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10741 : (TARGET_AVX512F) &&
10742 : #line 33126 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10743 : (TARGET_AVX10_2)))
10744 : return -1;
10745 : return 10772; /* avx10_2_getexpbf16_v8bf_mask */
10746 :
10747 : default:
10748 : return -1;
10749 : }
10750 : }
10751 :
10752 : int
10753 : recog_139 (rtx x1 ATTRIBUTE_UNUSED,
10754 : rtx_insn *insn ATTRIBUTE_UNUSED,
10755 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10756 : {
10757 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10758 : rtx x2;
10759 : int res ATTRIBUTE_UNUSED;
10760 : x2 = XEXP (x1, 1);
10761 : switch (pattern485 (x2))
10762 : {
10763 : case 0:
10764 : if (!
10765 : #line 31191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10766 : (TARGET_AVX512VBMI2))
10767 : return -1;
10768 : return 10328; /* vpshldv_v32hi_mask */
10769 :
10770 : case 1:
10771 : if (!
10772 : #line 31191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10773 : (TARGET_AVX512VBMI2))
10774 : return -1;
10775 : return 10329; /* vpshldv_v16si_mask */
10776 :
10777 : case 2:
10778 : if (!
10779 : #line 31191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10780 : (TARGET_AVX512VBMI2))
10781 : return -1;
10782 : return 10330; /* vpshldv_v8di_mask */
10783 :
10784 : case 3:
10785 : if (!(
10786 : #line 31191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10787 : (TARGET_AVX512VBMI2) &&
10788 : #line 751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10789 : (TARGET_AVX512VL)))
10790 : return -1;
10791 : return 10331; /* vpshldv_v16hi_mask */
10792 :
10793 : case 4:
10794 : if (!(
10795 : #line 31191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10796 : (TARGET_AVX512VBMI2) &&
10797 : #line 751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10798 : (TARGET_AVX512VL)))
10799 : return -1;
10800 : return 10332; /* vpshldv_v8si_mask */
10801 :
10802 : case 5:
10803 : if (!(
10804 : #line 31191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10805 : (TARGET_AVX512VBMI2) &&
10806 : #line 752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10807 : (TARGET_AVX512VL)))
10808 : return -1;
10809 : return 10333; /* vpshldv_v4di_mask */
10810 :
10811 : case 6:
10812 : if (!(
10813 : #line 31191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10814 : (TARGET_AVX512VBMI2) &&
10815 : #line 752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10816 : (TARGET_AVX512VL)))
10817 : return -1;
10818 : return 10334; /* vpshldv_v8hi_mask */
10819 :
10820 : case 7:
10821 : if (!(
10822 : #line 31191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10823 : (TARGET_AVX512VBMI2) &&
10824 : #line 753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10825 : (TARGET_AVX512VL)))
10826 : return -1;
10827 : return 10335; /* vpshldv_v4si_mask */
10828 :
10829 : case 8:
10830 : if (!(
10831 : #line 31191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10832 : (TARGET_AVX512VBMI2) &&
10833 : #line 753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10834 : (TARGET_AVX512VL)))
10835 : return -1;
10836 : return 10336; /* vpshldv_v2di_mask */
10837 :
10838 : case 9:
10839 : if (!
10840 : #line 31221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10841 : (TARGET_AVX512VBMI2))
10842 : return -1;
10843 : return 10337; /* vpshldv_v32hi_maskz_1 */
10844 :
10845 : case 10:
10846 : if (!
10847 : #line 31221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10848 : (TARGET_AVX512VBMI2))
10849 : return -1;
10850 : return 10338; /* vpshldv_v16si_maskz_1 */
10851 :
10852 : case 11:
10853 : if (!
10854 : #line 31221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10855 : (TARGET_AVX512VBMI2))
10856 : return -1;
10857 : return 10339; /* vpshldv_v8di_maskz_1 */
10858 :
10859 : case 12:
10860 : if (!(
10861 : #line 31221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10862 : (TARGET_AVX512VBMI2) &&
10863 : #line 751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10864 : (TARGET_AVX512VL)))
10865 : return -1;
10866 : return 10340; /* vpshldv_v16hi_maskz_1 */
10867 :
10868 : case 13:
10869 : if (!(
10870 : #line 31221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10871 : (TARGET_AVX512VBMI2) &&
10872 : #line 751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10873 : (TARGET_AVX512VL)))
10874 : return -1;
10875 : return 10341; /* vpshldv_v8si_maskz_1 */
10876 :
10877 : case 14:
10878 : if (!(
10879 : #line 31221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10880 : (TARGET_AVX512VBMI2) &&
10881 : #line 752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10882 : (TARGET_AVX512VL)))
10883 : return -1;
10884 : return 10342; /* vpshldv_v4di_maskz_1 */
10885 :
10886 : case 15:
10887 : if (!(
10888 : #line 31221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10889 : (TARGET_AVX512VBMI2) &&
10890 : #line 752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10891 : (TARGET_AVX512VL)))
10892 : return -1;
10893 : return 10343; /* vpshldv_v8hi_maskz_1 */
10894 :
10895 : case 16:
10896 : if (!(
10897 : #line 31221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10898 : (TARGET_AVX512VBMI2) &&
10899 : #line 753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10900 : (TARGET_AVX512VL)))
10901 : return -1;
10902 : return 10344; /* vpshldv_v4si_maskz_1 */
10903 :
10904 : case 17:
10905 : if (!(
10906 : #line 31221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10907 : (TARGET_AVX512VBMI2) &&
10908 : #line 753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10909 : (TARGET_AVX512VL)))
10910 : return -1;
10911 : return 10345; /* vpshldv_v2di_maskz_1 */
10912 :
10913 : default:
10914 : return -1;
10915 : }
10916 : }
10917 :
10918 : int
10919 : recog_143 (rtx x1 ATTRIBUTE_UNUSED,
10920 : rtx_insn *insn ATTRIBUTE_UNUSED,
10921 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10922 : {
10923 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10924 : rtx x2, x3, x4, x5, x6, x7, x8;
10925 : int res ATTRIBUTE_UNUSED;
10926 : x2 = XEXP (x1, 1);
10927 : x3 = XEXP (x2, 0);
10928 : x4 = XVECEXP (x3, 0, 0);
10929 : operands[1] = x4;
10930 : x5 = XVECEXP (x3, 0, 1);
10931 : operands[2] = x5;
10932 : x6 = XVECEXP (x3, 0, 2);
10933 : operands[3] = x6;
10934 : x7 = XEXP (x2, 1);
10935 : switch (GET_CODE (x7))
10936 : {
10937 : case REG:
10938 : case SUBREG:
10939 : if (!rtx_equal_p (x7, operands[1]))
10940 : return -1;
10941 : x8 = XEXP (x2, 2);
10942 : operands[4] = x8;
10943 : switch (GET_MODE (operands[0]))
10944 : {
10945 : case E_V16SFmode:
10946 : if (pattern482 (x2,
10947 : E_V16SFmode,
10948 : E_HImode) != 0
10949 : || !
10950 : #line 32768 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10951 : (TARGET_AVX10_2))
10952 : return -1;
10953 : return 10653; /* vdpphps_v16sf_mask */
10954 :
10955 : case E_V8SFmode:
10956 : if (pattern482 (x2,
10957 : E_V8SFmode,
10958 : E_QImode) != 0
10959 : || !(
10960 : #line 32768 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10961 : (TARGET_AVX10_2) &&
10962 : #line 534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10963 : (TARGET_AVX512VL)))
10964 : return -1;
10965 : return 10654; /* vdpphps_v8sf_mask */
10966 :
10967 : case E_V4SFmode:
10968 : if (pattern482 (x2,
10969 : E_V4SFmode,
10970 : E_QImode) != 0
10971 : || !(
10972 : #line 32768 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10973 : (TARGET_AVX10_2) &&
10974 : #line 534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10975 : (TARGET_AVX512VL)))
10976 : return -1;
10977 : return 10655; /* vdpphps_v4sf_mask */
10978 :
10979 : default:
10980 : return -1;
10981 : }
10982 :
10983 : case CONST_INT:
10984 : case CONST_DOUBLE:
10985 : case CONST_VECTOR:
10986 : operands[4] = x7;
10987 : x8 = XEXP (x2, 2);
10988 : operands[5] = x8;
10989 : switch (GET_MODE (operands[0]))
10990 : {
10991 : case E_V16SFmode:
10992 : if (pattern484 (x2,
10993 : E_V16SFmode,
10994 : E_HImode) != 0
10995 : || !
10996 : #line 32795 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10997 : (TARGET_AVX10_2))
10998 : return -1;
10999 : return 10656; /* vdpphps_v16sf_maskz_1 */
11000 :
11001 : case E_V8SFmode:
11002 : if (pattern484 (x2,
11003 : E_V8SFmode,
11004 : E_QImode) != 0
11005 : || !(
11006 : #line 32795 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11007 : (TARGET_AVX10_2) &&
11008 : #line 534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11009 : (TARGET_AVX512VL)))
11010 : return -1;
11011 : return 10657; /* vdpphps_v8sf_maskz_1 */
11012 :
11013 : case E_V4SFmode:
11014 : if (pattern484 (x2,
11015 : E_V4SFmode,
11016 : E_QImode) != 0
11017 : || !(
11018 : #line 32795 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11019 : (TARGET_AVX10_2) &&
11020 : #line 534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11021 : (TARGET_AVX512VL)))
11022 : return -1;
11023 : return 10658; /* vdpphps_v4sf_maskz_1 */
11024 :
11025 : default:
11026 : return -1;
11027 : }
11028 :
11029 : default:
11030 : return -1;
11031 : }
11032 : }
11033 :
11034 : int
11035 : recog_150 (rtx x1 ATTRIBUTE_UNUSED,
11036 : rtx_insn *insn ATTRIBUTE_UNUSED,
11037 : int *pnum_clobbers ATTRIBUTE_UNUSED)
11038 : {
11039 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
11040 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
11041 : rtx x10, x11, x12, x13;
11042 : int res ATTRIBUTE_UNUSED;
11043 : x2 = XEXP (x1, 1);
11044 : x3 = XEXP (x2, 2);
11045 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
11046 : return -1;
11047 : x4 = XEXP (x2, 0);
11048 : x5 = XEXP (x4, 2);
11049 : if (!register_operand (x5, E_QImode))
11050 : return -1;
11051 : x6 = XEXP (x4, 0);
11052 : x7 = XEXP (x6, 0);
11053 : switch (GET_CODE (x7))
11054 : {
11055 : case REG:
11056 : case SUBREG:
11057 : case MEM:
11058 : operands[1] = x7;
11059 : x8 = XEXP (x6, 1);
11060 : operands[2] = x8;
11061 : x9 = XEXP (x6, 2);
11062 : switch (GET_CODE (x9))
11063 : {
11064 : case REG:
11065 : case SUBREG:
11066 : case MEM:
11067 : operands[3] = x9;
11068 : switch (pattern1224 (x2))
11069 : {
11070 : case 0:
11071 : if (pattern1471 (x2,
11072 : E_V8HFmode) != 0)
11073 : return -1;
11074 : x10 = XEXP (x4, 1);
11075 : if (rtx_equal_p (x10, operands[1]))
11076 : {
11077 : x11 = XEXP (x2, 1);
11078 : if (rtx_equal_p (x11, operands[1])
11079 : && (
11080 : #line 7018 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11081 : (TARGET_AVX512F) &&
11082 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11083 : (TARGET_AVX512FP16)))
11084 : return 4281; /* avx512f_vmfmadd_v8hf_mask */
11085 : }
11086 : if (!rtx_equal_p (x10, operands[3]))
11087 : return -1;
11088 : x11 = XEXP (x2, 1);
11089 : if (!rtx_equal_p (x11, operands[3])
11090 : || !(
11091 : #line 7038 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11092 : (TARGET_AVX512F) &&
11093 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11094 : (TARGET_AVX512FP16)))
11095 : return -1;
11096 : return 4287; /* avx512f_vmfmadd_v8hf_mask3 */
11097 :
11098 : case 1:
11099 : if (pattern1471 (x2,
11100 : E_V4SFmode) != 0)
11101 : return -1;
11102 : x10 = XEXP (x4, 1);
11103 : if (rtx_equal_p (x10, operands[1]))
11104 : {
11105 : x11 = XEXP (x2, 1);
11106 : if (rtx_equal_p (x11, operands[1])
11107 : &&
11108 : #line 7018 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11109 : (TARGET_AVX512F))
11110 : return 4283; /* avx512f_vmfmadd_v4sf_mask */
11111 : }
11112 : if (!rtx_equal_p (x10, operands[3]))
11113 : return -1;
11114 : x11 = XEXP (x2, 1);
11115 : if (!rtx_equal_p (x11, operands[3])
11116 : || !
11117 : #line 7038 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11118 : (TARGET_AVX512F))
11119 : return -1;
11120 : return 4289; /* avx512f_vmfmadd_v4sf_mask3 */
11121 :
11122 : case 2:
11123 : if (pattern1471 (x2,
11124 : E_V2DFmode) != 0)
11125 : return -1;
11126 : x10 = XEXP (x4, 1);
11127 : if (rtx_equal_p (x10, operands[1]))
11128 : {
11129 : x11 = XEXP (x2, 1);
11130 : if (rtx_equal_p (x11, operands[1])
11131 : && (
11132 : #line 7018 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11133 : (TARGET_AVX512F) &&
11134 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11135 : (TARGET_SSE2)))
11136 : return 4285; /* avx512f_vmfmadd_v2df_mask */
11137 : }
11138 : if (!rtx_equal_p (x10, operands[3]))
11139 : return -1;
11140 : x11 = XEXP (x2, 1);
11141 : if (!rtx_equal_p (x11, operands[3])
11142 : || !(
11143 : #line 7038 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11144 : (TARGET_AVX512F) &&
11145 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11146 : (TARGET_SSE2)))
11147 : return -1;
11148 : return 4291; /* avx512f_vmfmadd_v2df_mask3 */
11149 :
11150 : case 3:
11151 : if (pattern1552 (x2,
11152 : E_V8HFmode) != 0
11153 : || !(
11154 : #line 7070 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11155 : (TARGET_AVX512F) &&
11156 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11157 : (TARGET_AVX512FP16)))
11158 : return -1;
11159 : return 4293; /* avx512f_vmfmadd_v8hf_maskz_1 */
11160 :
11161 : case 4:
11162 : if (pattern1552 (x2,
11163 : E_V4SFmode) != 0
11164 : || !
11165 : #line 7070 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11166 : (TARGET_AVX512F))
11167 : return -1;
11168 : return 4295; /* avx512f_vmfmadd_v4sf_maskz_1 */
11169 :
11170 : case 5:
11171 : if (pattern1552 (x2,
11172 : E_V2DFmode) != 0
11173 : || !(
11174 : #line 7070 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11175 : (TARGET_AVX512F) &&
11176 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11177 : (TARGET_SSE2)))
11178 : return -1;
11179 : return 4297; /* avx512f_vmfmadd_v2df_maskz_1 */
11180 :
11181 : default:
11182 : return -1;
11183 : }
11184 :
11185 : case NEG:
11186 : x12 = XEXP (x9, 0);
11187 : operands[3] = x12;
11188 : switch (pattern1224 (x2))
11189 : {
11190 : case 0:
11191 : if (pattern1472 (x2,
11192 : E_V8HFmode) != 0)
11193 : return -1;
11194 : x10 = XEXP (x4, 1);
11195 : if (rtx_equal_p (x10, operands[1]))
11196 : {
11197 : x11 = XEXP (x2, 1);
11198 : if (rtx_equal_p (x11, operands[1])
11199 : && (
11200 : #line 7091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11201 : (TARGET_AVX512F) &&
11202 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11203 : (TARGET_AVX512FP16)))
11204 : return 4299; /* *avx512f_vmfmsub_v8hf_mask */
11205 : }
11206 : if (!rtx_equal_p (x10, operands[3]))
11207 : return -1;
11208 : x11 = XEXP (x2, 1);
11209 : if (!rtx_equal_p (x11, operands[3])
11210 : || !(
11211 : #line 7112 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11212 : (TARGET_AVX512F) &&
11213 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11214 : (TARGET_AVX512FP16)))
11215 : return -1;
11216 : return 4305; /* avx512f_vmfmsub_v8hf_mask3 */
11217 :
11218 : case 1:
11219 : if (pattern1472 (x2,
11220 : E_V4SFmode) != 0)
11221 : return -1;
11222 : x10 = XEXP (x4, 1);
11223 : if (rtx_equal_p (x10, operands[1]))
11224 : {
11225 : x11 = XEXP (x2, 1);
11226 : if (rtx_equal_p (x11, operands[1])
11227 : &&
11228 : #line 7091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11229 : (TARGET_AVX512F))
11230 : return 4301; /* *avx512f_vmfmsub_v4sf_mask */
11231 : }
11232 : if (!rtx_equal_p (x10, operands[3]))
11233 : return -1;
11234 : x11 = XEXP (x2, 1);
11235 : if (!rtx_equal_p (x11, operands[3])
11236 : || !
11237 : #line 7112 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11238 : (TARGET_AVX512F))
11239 : return -1;
11240 : return 4307; /* avx512f_vmfmsub_v4sf_mask3 */
11241 :
11242 : case 2:
11243 : if (pattern1472 (x2,
11244 : E_V2DFmode) != 0)
11245 : return -1;
11246 : x10 = XEXP (x4, 1);
11247 : if (rtx_equal_p (x10, operands[1]))
11248 : {
11249 : x11 = XEXP (x2, 1);
11250 : if (rtx_equal_p (x11, operands[1])
11251 : && (
11252 : #line 7091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11253 : (TARGET_AVX512F) &&
11254 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11255 : (TARGET_SSE2)))
11256 : return 4303; /* *avx512f_vmfmsub_v2df_mask */
11257 : }
11258 : if (!rtx_equal_p (x10, operands[3]))
11259 : return -1;
11260 : x11 = XEXP (x2, 1);
11261 : if (!rtx_equal_p (x11, operands[3])
11262 : || !(
11263 : #line 7112 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11264 : (TARGET_AVX512F) &&
11265 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11266 : (TARGET_SSE2)))
11267 : return -1;
11268 : return 4309; /* avx512f_vmfmsub_v2df_mask3 */
11269 :
11270 : case 3:
11271 : if (pattern1553 (x2,
11272 : E_V8HFmode) != 0
11273 : || !(
11274 : #line 7131 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11275 : (TARGET_AVX512F) &&
11276 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11277 : (TARGET_AVX512FP16)))
11278 : return -1;
11279 : return 4311; /* *avx512f_vmfmsub_v8hf_maskz_1 */
11280 :
11281 : case 4:
11282 : if (pattern1553 (x2,
11283 : E_V4SFmode) != 0
11284 : || !
11285 : #line 7131 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11286 : (TARGET_AVX512F))
11287 : return -1;
11288 : return 4313; /* *avx512f_vmfmsub_v4sf_maskz_1 */
11289 :
11290 : case 5:
11291 : if (pattern1553 (x2,
11292 : E_V2DFmode) != 0
11293 : || !(
11294 : #line 7131 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11295 : (TARGET_AVX512F) &&
11296 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11297 : (TARGET_SSE2)))
11298 : return -1;
11299 : return 4315; /* *avx512f_vmfmsub_v2df_maskz_1 */
11300 :
11301 : default:
11302 : return -1;
11303 : }
11304 :
11305 : default:
11306 : return -1;
11307 : }
11308 :
11309 : case NEG:
11310 : x9 = XEXP (x6, 2);
11311 : switch (GET_CODE (x9))
11312 : {
11313 : case REG:
11314 : case SUBREG:
11315 : case MEM:
11316 : operands[3] = x9;
11317 : switch (pattern1009 (x2))
11318 : {
11319 : case 0:
11320 : x8 = XEXP (x6, 1);
11321 : operands[2] = x8;
11322 : x13 = XEXP (x7, 0);
11323 : operands[1] = x13;
11324 : if (nonimmediate_operand (operands[3], E_V8HFmode))
11325 : {
11326 : x10 = XEXP (x4, 1);
11327 : if (rtx_equal_p (x10, operands[1]))
11328 : {
11329 : x11 = XEXP (x2, 1);
11330 : if (rtx_equal_p (x11, operands[1])
11331 : && (
11332 : #line 7152 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11333 : (TARGET_AVX512F) &&
11334 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11335 : (TARGET_AVX512FP16)))
11336 : return 4317; /* avx512f_vmfnmadd_v8hf_mask */
11337 : }
11338 : }
11339 : operands[1] = x8;
11340 : operands[2] = x13;
11341 : if (!nonimmediate_operand (operands[3], E_V8HFmode))
11342 : return -1;
11343 : x10 = XEXP (x4, 1);
11344 : if (!rtx_equal_p (x10, operands[3]))
11345 : return -1;
11346 : x11 = XEXP (x2, 1);
11347 : if (!rtx_equal_p (x11, operands[3])
11348 : || !(
11349 : #line 7173 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11350 : (TARGET_AVX512F) &&
11351 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11352 : (TARGET_AVX512FP16)))
11353 : return -1;
11354 : return 4323; /* avx512f_vmfnmadd_v8hf_mask3 */
11355 :
11356 : case 1:
11357 : x8 = XEXP (x6, 1);
11358 : operands[2] = x8;
11359 : x13 = XEXP (x7, 0);
11360 : operands[1] = x13;
11361 : if (nonimmediate_operand (operands[3], E_V4SFmode))
11362 : {
11363 : x10 = XEXP (x4, 1);
11364 : if (rtx_equal_p (x10, operands[1]))
11365 : {
11366 : x11 = XEXP (x2, 1);
11367 : if (rtx_equal_p (x11, operands[1])
11368 : &&
11369 : #line 7152 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11370 : (TARGET_AVX512F))
11371 : return 4319; /* avx512f_vmfnmadd_v4sf_mask */
11372 : }
11373 : }
11374 : operands[1] = x8;
11375 : operands[2] = x13;
11376 : if (!nonimmediate_operand (operands[3], E_V4SFmode))
11377 : return -1;
11378 : x10 = XEXP (x4, 1);
11379 : if (!rtx_equal_p (x10, operands[3]))
11380 : return -1;
11381 : x11 = XEXP (x2, 1);
11382 : if (!rtx_equal_p (x11, operands[3])
11383 : || !
11384 : #line 7173 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11385 : (TARGET_AVX512F))
11386 : return -1;
11387 : return 4325; /* avx512f_vmfnmadd_v4sf_mask3 */
11388 :
11389 : case 2:
11390 : x8 = XEXP (x6, 1);
11391 : operands[2] = x8;
11392 : x13 = XEXP (x7, 0);
11393 : operands[1] = x13;
11394 : if (nonimmediate_operand (operands[3], E_V2DFmode))
11395 : {
11396 : x10 = XEXP (x4, 1);
11397 : if (rtx_equal_p (x10, operands[1]))
11398 : {
11399 : x11 = XEXP (x2, 1);
11400 : if (rtx_equal_p (x11, operands[1])
11401 : && (
11402 : #line 7152 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11403 : (TARGET_AVX512F) &&
11404 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11405 : (TARGET_SSE2)))
11406 : return 4321; /* avx512f_vmfnmadd_v2df_mask */
11407 : }
11408 : }
11409 : operands[1] = x8;
11410 : operands[2] = x13;
11411 : if (!nonimmediate_operand (operands[3], E_V2DFmode))
11412 : return -1;
11413 : x10 = XEXP (x4, 1);
11414 : if (!rtx_equal_p (x10, operands[3]))
11415 : return -1;
11416 : x11 = XEXP (x2, 1);
11417 : if (!rtx_equal_p (x11, operands[3])
11418 : || !(
11419 : #line 7173 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11420 : (TARGET_AVX512F) &&
11421 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11422 : (TARGET_SSE2)))
11423 : return -1;
11424 : return 4327; /* avx512f_vmfnmadd_v2df_mask3 */
11425 :
11426 : case 3:
11427 : if (pattern1554 (x2,
11428 : E_V8HFmode) != 0
11429 : || !(
11430 : #line 7206 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11431 : (TARGET_AVX512F) &&
11432 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11433 : (TARGET_AVX512FP16)))
11434 : return -1;
11435 : return 4329; /* avx512f_vmfnmadd_v8hf_maskz_1 */
11436 :
11437 : case 4:
11438 : if (pattern1554 (x2,
11439 : E_V4SFmode) != 0
11440 : || !
11441 : #line 7206 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11442 : (TARGET_AVX512F))
11443 : return -1;
11444 : return 4331; /* avx512f_vmfnmadd_v4sf_maskz_1 */
11445 :
11446 : case 5:
11447 : if (pattern1554 (x2,
11448 : E_V2DFmode) != 0
11449 : || !(
11450 : #line 7206 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11451 : (TARGET_AVX512F) &&
11452 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11453 : (TARGET_SSE2)))
11454 : return -1;
11455 : return 4333; /* avx512f_vmfnmadd_v2df_maskz_1 */
11456 :
11457 : default:
11458 : return -1;
11459 : }
11460 :
11461 : case NEG:
11462 : x12 = XEXP (x9, 0);
11463 : operands[3] = x12;
11464 : switch (pattern1009 (x2))
11465 : {
11466 : case 0:
11467 : x8 = XEXP (x6, 1);
11468 : operands[2] = x8;
11469 : if (pattern1716 (x2,
11470 : E_V8HFmode) == 0
11471 : && (
11472 : #line 7228 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11473 : (TARGET_AVX512F) &&
11474 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11475 : (TARGET_AVX512FP16)))
11476 : return 4335; /* *avx512f_vmfnmsub_v8hf_mask */
11477 : operands[1] = x8;
11478 : if (pattern1717 (x2,
11479 : E_V8HFmode) != 0
11480 : || !(
11481 : #line 7250 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11482 : (TARGET_AVX512F) &&
11483 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11484 : (TARGET_AVX512FP16)))
11485 : return -1;
11486 : return 4341; /* *avx512f_vmfnmsub_v8hf_mask3 */
11487 :
11488 : case 1:
11489 : x8 = XEXP (x6, 1);
11490 : operands[2] = x8;
11491 : if (pattern1716 (x2,
11492 : E_V4SFmode) == 0
11493 : &&
11494 : #line 7228 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11495 : (TARGET_AVX512F))
11496 : return 4337; /* *avx512f_vmfnmsub_v4sf_mask */
11497 : operands[1] = x8;
11498 : if (pattern1717 (x2,
11499 : E_V4SFmode) != 0
11500 : || !
11501 : #line 7250 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11502 : (TARGET_AVX512F))
11503 : return -1;
11504 : return 4343; /* *avx512f_vmfnmsub_v4sf_mask3 */
11505 :
11506 : case 2:
11507 : x8 = XEXP (x6, 1);
11508 : operands[2] = x8;
11509 : if (pattern1716 (x2,
11510 : E_V2DFmode) == 0
11511 : && (
11512 : #line 7228 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11513 : (TARGET_AVX512F) &&
11514 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11515 : (TARGET_SSE2)))
11516 : return 4339; /* *avx512f_vmfnmsub_v2df_mask */
11517 : operands[1] = x8;
11518 : if (pattern1717 (x2,
11519 : E_V2DFmode) != 0
11520 : || !(
11521 : #line 7250 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11522 : (TARGET_AVX512F) &&
11523 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11524 : (TARGET_SSE2)))
11525 : return -1;
11526 : return 4345; /* *avx512f_vmfnmsub_v2df_mask3 */
11527 :
11528 : case 3:
11529 : if (pattern1555 (x2,
11530 : E_V8HFmode) != 0
11531 : || !(
11532 : #line 7270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11533 : (TARGET_AVX512F) &&
11534 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11535 : (TARGET_AVX512FP16)))
11536 : return -1;
11537 : return 4347; /* *avx512f_vmfnmsub_v8hf_maskz_1 */
11538 :
11539 : case 4:
11540 : if (pattern1555 (x2,
11541 : E_V4SFmode) != 0
11542 : || !
11543 : #line 7270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11544 : (TARGET_AVX512F))
11545 : return -1;
11546 : return 4349; /* *avx512f_vmfnmsub_v4sf_maskz_1 */
11547 :
11548 : case 5:
11549 : if (pattern1555 (x2,
11550 : E_V2DFmode) != 0
11551 : || !(
11552 : #line 7270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11553 : (TARGET_AVX512F) &&
11554 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11555 : (TARGET_SSE2)))
11556 : return -1;
11557 : return 4351; /* *avx512f_vmfnmsub_v2df_maskz_1 */
11558 :
11559 : default:
11560 : return -1;
11561 : }
11562 :
11563 : default:
11564 : return -1;
11565 : }
11566 :
11567 : default:
11568 : return -1;
11569 : }
11570 : }
11571 :
11572 : int
11573 : recog_162 (rtx x1 ATTRIBUTE_UNUSED,
11574 : rtx_insn *insn ATTRIBUTE_UNUSED,
11575 : int *pnum_clobbers ATTRIBUTE_UNUSED)
11576 : {
11577 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
11578 : rtx x2, x3;
11579 : int res ATTRIBUTE_UNUSED;
11580 : x2 = XEXP (x1, 1);
11581 : switch (pattern649 (x2))
11582 : {
11583 : case 0:
11584 : if (pattern1390 (x2,
11585 : E_V32HFmode,
11586 : E_SImode) != 0
11587 : || !(
11588 : #line 6392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11589 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && 1) &&
11590 : #line 6276 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11591 : (TARGET_AVX512FP16)))
11592 : return -1;
11593 : return 3939; /* fma_fmsub_v32hf_maskz_1 */
11594 :
11595 : case 1:
11596 : if (pattern1390 (x2,
11597 : E_V16HFmode,
11598 : E_HImode) != 0
11599 : || !(
11600 : #line 6392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11601 : (TARGET_AVX512F && (32 == 64 || TARGET_AVX512VL) && 1) &&
11602 : #line 6277 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11603 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
11604 : return -1;
11605 : return 3943; /* fma_fmsub_v16hf_maskz_1 */
11606 :
11607 : case 2:
11608 : if (pattern1390 (x2,
11609 : E_V8HFmode,
11610 : E_QImode) != 0
11611 : || !(
11612 : #line 6392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11613 : (TARGET_AVX512F && (16 == 64 || TARGET_AVX512VL) && 1) &&
11614 : #line 6278 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11615 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
11616 : return -1;
11617 : return 3945; /* fma_fmsub_v8hf_maskz_1 */
11618 :
11619 : case 3:
11620 : if (pattern1390 (x2,
11621 : E_V16SFmode,
11622 : E_HImode) != 0
11623 : || !
11624 : #line 6392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11625 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && 1))
11626 : return -1;
11627 : return 3949; /* fma_fmsub_v16sf_maskz_1 */
11628 :
11629 : case 4:
11630 : if (pattern1390 (x2,
11631 : E_V8SFmode,
11632 : E_QImode) != 0
11633 : || !(
11634 : #line 6392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11635 : (TARGET_AVX512F && (32 == 64 || TARGET_AVX512VL) && 1) &&
11636 : #line 6280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11637 : (TARGET_AVX512VL)))
11638 : return -1;
11639 : return 3953; /* fma_fmsub_v8sf_maskz_1 */
11640 :
11641 : case 5:
11642 : if (pattern1390 (x2,
11643 : E_V4SFmode,
11644 : E_QImode) != 0
11645 : || !(
11646 : #line 6392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11647 : (TARGET_AVX512F && (16 == 64 || TARGET_AVX512VL) && 1) &&
11648 : #line 6280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11649 : (TARGET_AVX512VL)))
11650 : return -1;
11651 : return 3955; /* fma_fmsub_v4sf_maskz_1 */
11652 :
11653 : case 6:
11654 : if (pattern1390 (x2,
11655 : E_V8DFmode,
11656 : E_QImode) != 0
11657 : || !
11658 : #line 6392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11659 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && 1))
11660 : return -1;
11661 : return 3958; /* fma_fmsub_v8df_maskz_1 */
11662 :
11663 : case 7:
11664 : if (pattern1390 (x2,
11665 : E_V4DFmode,
11666 : E_QImode) != 0
11667 : || !(
11668 : #line 6392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11669 : (TARGET_AVX512F && (32 == 64 || TARGET_AVX512VL) && 1) &&
11670 : #line 6281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11671 : (TARGET_AVX512VL)))
11672 : return -1;
11673 : return 3962; /* fma_fmsub_v4df_maskz_1 */
11674 :
11675 : case 8:
11676 : if (pattern1390 (x2,
11677 : E_V2DFmode,
11678 : E_QImode) != 0
11679 : || !(
11680 : #line 6392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11681 : (TARGET_AVX512F && (16 == 64 || TARGET_AVX512VL) && 1) &&
11682 : #line 6281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11683 : (TARGET_AVX512VL)))
11684 : return -1;
11685 : return 3964; /* fma_fmsub_v2df_maskz_1 */
11686 :
11687 : case 9:
11688 : if (pattern1392 (x2,
11689 : E_SImode,
11690 : E_V32BFmode) != 0
11691 : || !
11692 : #line 32984 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11693 : (TARGET_AVX10_2))
11694 : return -1;
11695 : return 10726; /* avx10_2_fmsubbf16_v32bf_maskz_1 */
11696 :
11697 : case 10:
11698 : if (pattern1392 (x2,
11699 : E_HImode,
11700 : E_V16BFmode) != 0
11701 : || !
11702 : #line 32984 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11703 : (TARGET_AVX10_2))
11704 : return -1;
11705 : return 10728; /* avx10_2_fmsubbf16_v16bf_maskz_1 */
11706 :
11707 : case 11:
11708 : if (pattern1392 (x2,
11709 : E_QImode,
11710 : E_V8BFmode) != 0
11711 : || !
11712 : #line 32984 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11713 : (TARGET_AVX10_2))
11714 : return -1;
11715 : return 10730; /* avx10_2_fmsubbf16_v8bf_maskz_1 */
11716 :
11717 : case 12:
11718 : if (pattern1394 (x2,
11719 : E_V4SFmode) != 0
11720 : || !
11721 : #line 7318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11722 : (TARGET_FMA4))
11723 : return -1;
11724 : return 4355; /* *fma4i_vmfmsub_v4sf */
11725 :
11726 : case 13:
11727 : if (pattern1394 (x2,
11728 : E_V2DFmode) != 0
11729 : || !(
11730 : #line 7318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11731 : (TARGET_FMA4) &&
11732 : #line 473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11733 : (TARGET_SSE2)))
11734 : return -1;
11735 : return 4356; /* *fma4i_vmfmsub_v2df */
11736 :
11737 : case 14:
11738 : if (pattern1298 (x2,
11739 : E_V32HFmode,
11740 : E_SImode) != 0)
11741 : return -1;
11742 : if (nonimmediate_operand (operands[1], E_V32HFmode)
11743 : && vector_operand (operands[3], E_V32HFmode))
11744 : {
11745 : x3 = XEXP (x2, 1);
11746 : if (rtx_equal_p (x3, operands[1])
11747 : && (
11748 : #line 6435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11749 : (TARGET_AVX512F) &&
11750 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11751 : (TARGET_AVX512FP16)))
11752 : return 3965; /* avx512bw_fmsub_v32hf_mask */
11753 : }
11754 : if (!vector_operand (operands[1], E_V32HFmode)
11755 : || !nonimmediate_operand (operands[3], E_V32HFmode))
11756 : return -1;
11757 : x3 = XEXP (x2, 1);
11758 : if (!rtx_equal_p (x3, operands[3])
11759 : || !(
11760 : #line 6453 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11761 : (TARGET_AVX512F && 1) &&
11762 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11763 : (TARGET_AVX512FP16)))
11764 : return -1;
11765 : return 3983; /* avx512bw_fmsub_v32hf_mask3 */
11766 :
11767 : case 15:
11768 : if (pattern1298 (x2,
11769 : E_V16HFmode,
11770 : E_HImode) != 0)
11771 : return -1;
11772 : if (nonimmediate_operand (operands[1], E_V16HFmode)
11773 : && vector_operand (operands[3], E_V16HFmode))
11774 : {
11775 : x3 = XEXP (x2, 1);
11776 : if (rtx_equal_p (x3, operands[1])
11777 : && (
11778 : #line 6435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11779 : (TARGET_AVX512F) &&
11780 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11781 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
11782 : return 3967; /* avx512vl_fmsub_v16hf_mask */
11783 : }
11784 : if (!vector_operand (operands[1], E_V16HFmode)
11785 : || !nonimmediate_operand (operands[3], E_V16HFmode))
11786 : return -1;
11787 : x3 = XEXP (x2, 1);
11788 : if (!rtx_equal_p (x3, operands[3])
11789 : || !(
11790 : #line 6453 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11791 : (TARGET_AVX512F && 1) &&
11792 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11793 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
11794 : return -1;
11795 : return 3985; /* avx512vl_fmsub_v16hf_mask3 */
11796 :
11797 : case 16:
11798 : if (pattern1298 (x2,
11799 : E_V8HFmode,
11800 : E_QImode) != 0)
11801 : return -1;
11802 : if (nonimmediate_operand (operands[1], E_V8HFmode)
11803 : && vector_operand (operands[3], E_V8HFmode))
11804 : {
11805 : x3 = XEXP (x2, 1);
11806 : if (rtx_equal_p (x3, operands[1])
11807 : && (
11808 : #line 6435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11809 : (TARGET_AVX512F) &&
11810 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11811 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
11812 : return 3969; /* avx512fp16_fmsub_v8hf_mask */
11813 : }
11814 : if (!vector_operand (operands[1], E_V8HFmode)
11815 : || !nonimmediate_operand (operands[3], E_V8HFmode))
11816 : return -1;
11817 : x3 = XEXP (x2, 1);
11818 : if (!rtx_equal_p (x3, operands[3])
11819 : || !(
11820 : #line 6453 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11821 : (TARGET_AVX512F && 1) &&
11822 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11823 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
11824 : return -1;
11825 : return 3986; /* avx512fp16_fmsub_v8hf_mask3 */
11826 :
11827 : case 17:
11828 : if (pattern1298 (x2,
11829 : E_V16SFmode,
11830 : E_HImode) != 0)
11831 : return -1;
11832 : if (nonimmediate_operand (operands[1], E_V16SFmode)
11833 : && vector_operand (operands[3], E_V16SFmode))
11834 : {
11835 : x3 = XEXP (x2, 1);
11836 : if (rtx_equal_p (x3, operands[1])
11837 : &&
11838 : #line 6435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11839 : (TARGET_AVX512F))
11840 : return 3971; /* avx512f_fmsub_v16sf_mask */
11841 : }
11842 : if (!vector_operand (operands[1], E_V16SFmode)
11843 : || !nonimmediate_operand (operands[3], E_V16SFmode))
11844 : return -1;
11845 : x3 = XEXP (x2, 1);
11846 : if (!rtx_equal_p (x3, operands[3])
11847 : || !
11848 : #line 6453 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11849 : (TARGET_AVX512F && 1))
11850 : return -1;
11851 : return 3987; /* avx512f_fmsub_v16sf_mask3 */
11852 :
11853 : case 18:
11854 : if (pattern1298 (x2,
11855 : E_V8SFmode,
11856 : E_QImode) != 0)
11857 : return -1;
11858 : if (nonimmediate_operand (operands[1], E_V8SFmode)
11859 : && vector_operand (operands[3], E_V8SFmode))
11860 : {
11861 : x3 = XEXP (x2, 1);
11862 : if (rtx_equal_p (x3, operands[1])
11863 : && (
11864 : #line 6435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11865 : (TARGET_AVX512F) &&
11866 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11867 : (TARGET_AVX512VL)))
11868 : return 3973; /* avx512vl_fmsub_v8sf_mask */
11869 : }
11870 : if (!vector_operand (operands[1], E_V8SFmode)
11871 : || !nonimmediate_operand (operands[3], E_V8SFmode))
11872 : return -1;
11873 : x3 = XEXP (x2, 1);
11874 : if (!rtx_equal_p (x3, operands[3])
11875 : || !(
11876 : #line 6453 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11877 : (TARGET_AVX512F && 1) &&
11878 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11879 : (TARGET_AVX512VL)))
11880 : return -1;
11881 : return 3989; /* avx512vl_fmsub_v8sf_mask3 */
11882 :
11883 : case 19:
11884 : if (pattern1298 (x2,
11885 : E_V4SFmode,
11886 : E_QImode) != 0)
11887 : return -1;
11888 : if (nonimmediate_operand (operands[1], E_V4SFmode)
11889 : && vector_operand (operands[3], E_V4SFmode))
11890 : {
11891 : x3 = XEXP (x2, 1);
11892 : if (rtx_equal_p (x3, operands[1])
11893 : && (
11894 : #line 6435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11895 : (TARGET_AVX512F) &&
11896 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11897 : (TARGET_AVX512VL)))
11898 : return 3975; /* avx512vl_fmsub_v4sf_mask */
11899 : }
11900 : if (!vector_operand (operands[1], E_V4SFmode)
11901 : || !nonimmediate_operand (operands[3], E_V4SFmode))
11902 : return -1;
11903 : x3 = XEXP (x2, 1);
11904 : if (!rtx_equal_p (x3, operands[3])
11905 : || !(
11906 : #line 6453 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11907 : (TARGET_AVX512F && 1) &&
11908 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11909 : (TARGET_AVX512VL)))
11910 : return -1;
11911 : return 3990; /* avx512vl_fmsub_v4sf_mask3 */
11912 :
11913 : case 20:
11914 : if (pattern1298 (x2,
11915 : E_V8DFmode,
11916 : E_QImode) != 0)
11917 : return -1;
11918 : if (nonimmediate_operand (operands[1], E_V8DFmode)
11919 : && vector_operand (operands[3], E_V8DFmode))
11920 : {
11921 : x3 = XEXP (x2, 1);
11922 : if (rtx_equal_p (x3, operands[1])
11923 : &&
11924 : #line 6435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11925 : (TARGET_AVX512F))
11926 : return 3977; /* avx512f_fmsub_v8df_mask */
11927 : }
11928 : if (!vector_operand (operands[1], E_V8DFmode)
11929 : || !nonimmediate_operand (operands[3], E_V8DFmode))
11930 : return -1;
11931 : x3 = XEXP (x2, 1);
11932 : if (!rtx_equal_p (x3, operands[3])
11933 : || !
11934 : #line 6453 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11935 : (TARGET_AVX512F && 1))
11936 : return -1;
11937 : return 3991; /* avx512f_fmsub_v8df_mask3 */
11938 :
11939 : case 21:
11940 : if (pattern1298 (x2,
11941 : E_V4DFmode,
11942 : E_QImode) != 0)
11943 : return -1;
11944 : if (nonimmediate_operand (operands[1], E_V4DFmode)
11945 : && vector_operand (operands[3], E_V4DFmode))
11946 : {
11947 : x3 = XEXP (x2, 1);
11948 : if (rtx_equal_p (x3, operands[1])
11949 : && (
11950 : #line 6435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11951 : (TARGET_AVX512F) &&
11952 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11953 : (TARGET_AVX512VL)))
11954 : return 3979; /* avx512vl_fmsub_v4df_mask */
11955 : }
11956 : if (!vector_operand (operands[1], E_V4DFmode)
11957 : || !nonimmediate_operand (operands[3], E_V4DFmode))
11958 : return -1;
11959 : x3 = XEXP (x2, 1);
11960 : if (!rtx_equal_p (x3, operands[3])
11961 : || !(
11962 : #line 6453 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11963 : (TARGET_AVX512F && 1) &&
11964 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11965 : (TARGET_AVX512VL)))
11966 : return -1;
11967 : return 3993; /* avx512vl_fmsub_v4df_mask3 */
11968 :
11969 : case 22:
11970 : if (pattern1298 (x2,
11971 : E_V2DFmode,
11972 : E_QImode) != 0)
11973 : return -1;
11974 : if (nonimmediate_operand (operands[1], E_V2DFmode)
11975 : && vector_operand (operands[3], E_V2DFmode))
11976 : {
11977 : x3 = XEXP (x2, 1);
11978 : if (rtx_equal_p (x3, operands[1])
11979 : && (
11980 : #line 6435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11981 : (TARGET_AVX512F) &&
11982 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11983 : (TARGET_AVX512VL)))
11984 : return 3981; /* avx512vl_fmsub_v2df_mask */
11985 : }
11986 : if (!vector_operand (operands[1], E_V2DFmode)
11987 : || !nonimmediate_operand (operands[3], E_V2DFmode))
11988 : return -1;
11989 : x3 = XEXP (x2, 1);
11990 : if (!rtx_equal_p (x3, operands[3])
11991 : || !(
11992 : #line 6453 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11993 : (TARGET_AVX512F && 1) &&
11994 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11995 : (TARGET_AVX512VL)))
11996 : return -1;
11997 : return 3994; /* avx512vl_fmsub_v2df_mask3 */
11998 :
11999 : case 23:
12000 : if (pattern1300 (x2,
12001 : E_SImode,
12002 : E_V32BFmode) != 0)
12003 : return -1;
12004 : x3 = XEXP (x2, 1);
12005 : if (rtx_equal_p (x3, operands[1])
12006 : &&
12007 : #line 33003 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12008 : (TARGET_AVX10_2))
12009 : return 10731; /* avx10_2_fmsubbf16_v32bf_mask */
12010 : if (!rtx_equal_p (x3, operands[3])
12011 : || !
12012 : #line 33021 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12013 : (TARGET_AVX10_2))
12014 : return -1;
12015 : return 10734; /* avx10_2_fmsubbf16_v32bf_mask3 */
12016 :
12017 : case 24:
12018 : if (pattern1300 (x2,
12019 : E_HImode,
12020 : E_V16BFmode) != 0)
12021 : return -1;
12022 : x3 = XEXP (x2, 1);
12023 : if (rtx_equal_p (x3, operands[1])
12024 : &&
12025 : #line 33003 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12026 : (TARGET_AVX10_2))
12027 : return 10732; /* avx10_2_fmsubbf16_v16bf_mask */
12028 : if (!rtx_equal_p (x3, operands[3])
12029 : || !
12030 : #line 33021 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12031 : (TARGET_AVX10_2))
12032 : return -1;
12033 : return 10735; /* avx10_2_fmsubbf16_v16bf_mask3 */
12034 :
12035 : case 25:
12036 : if (pattern1300 (x2,
12037 : E_QImode,
12038 : E_V8BFmode) != 0)
12039 : return -1;
12040 : x3 = XEXP (x2, 1);
12041 : if (rtx_equal_p (x3, operands[1])
12042 : &&
12043 : #line 33003 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12044 : (TARGET_AVX10_2))
12045 : return 10733; /* avx10_2_fmsubbf16_v8bf_mask */
12046 : if (!rtx_equal_p (x3, operands[3])
12047 : || !
12048 : #line 33021 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12049 : (TARGET_AVX10_2))
12050 : return -1;
12051 : return 10736; /* avx10_2_fmsubbf16_v8bf_mask3 */
12052 :
12053 : case 26:
12054 : if (pattern1395 (x2,
12055 : E_V8HFmode) != 0
12056 : || !(
12057 : #line 6961 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12058 : (TARGET_FMA || TARGET_AVX512F) &&
12059 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12060 : (TARGET_AVX512FP16)))
12061 : return -1;
12062 : return 4263; /* *fmai_fmsub_v8hf */
12063 :
12064 : case 27:
12065 : if (pattern1395 (x2,
12066 : E_V4SFmode) != 0
12067 : || !
12068 : #line 6961 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12069 : (TARGET_FMA || TARGET_AVX512F))
12070 : return -1;
12071 : return 4265; /* *fmai_fmsub_v4sf */
12072 :
12073 : case 28:
12074 : if (pattern1395 (x2,
12075 : E_V2DFmode) != 0
12076 : || !(
12077 : #line 6961 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12078 : (TARGET_FMA || TARGET_AVX512F) &&
12079 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12080 : (TARGET_SSE2)))
12081 : return -1;
12082 : return 4267; /* *fmai_fmsub_v2df */
12083 :
12084 : default:
12085 : return -1;
12086 : }
12087 : }
12088 :
12089 : int
12090 : recog_167 (rtx x1 ATTRIBUTE_UNUSED,
12091 : rtx_insn *insn ATTRIBUTE_UNUSED,
12092 : int *pnum_clobbers ATTRIBUTE_UNUSED)
12093 : {
12094 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
12095 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
12096 : rtx x10, x11, x12;
12097 : int res ATTRIBUTE_UNUSED;
12098 : x2 = XEXP (x1, 1);
12099 : x3 = XEXP (x2, 0);
12100 : x4 = XEXP (x3, 1);
12101 : x5 = XVECEXP (x4, 0, 2);
12102 : if (GET_CODE (x5) != CONST_INT)
12103 : return -1;
12104 : x6 = XVECEXP (x4, 0, 3);
12105 : if (GET_CODE (x6) != CONST_INT)
12106 : return -1;
12107 : x7 = XEXP (x2, 2);
12108 : if (!register_operand (x7, E_QImode))
12109 : return -1;
12110 : x8 = XVECEXP (x4, 0, 0);
12111 : switch (XWINT (x8, 0))
12112 : {
12113 : case 2L:
12114 : x9 = XVECEXP (x4, 0, 1);
12115 : if (XWINT (x9, 0) != 6L
12116 : || XWINT (x5, 0) != 3L
12117 : || XWINT (x6, 0) != 7L)
12118 : return -1;
12119 : x10 = XEXP (x3, 0);
12120 : x11 = XEXP (x10, 1);
12121 : operands[2] = x11;
12122 : x12 = XEXP (x2, 1);
12123 : operands[3] = x12;
12124 : operands[4] = x7;
12125 : switch (GET_MODE (operands[0]))
12126 : {
12127 : case E_V4SFmode:
12128 : if (pattern1594 (x2,
12129 : E_V4SFmode,
12130 : E_V8SFmode) != 0
12131 : || !(
12132 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12133 : (TARGET_AVX512F) &&
12134 : #line 11546 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12135 : (TARGET_SSE && TARGET_AVX512VL)))
12136 : return -1;
12137 : return 5264; /* vec_interleave_highv4sf_mask */
12138 :
12139 : case E_V4SImode:
12140 : if (pattern1594 (x2,
12141 : E_V4SImode,
12142 : E_V8SImode) != 0
12143 : || !(
12144 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12145 : (TARGET_AVX512F) &&
12146 : #line 20097 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12147 : (TARGET_SSE2 && TARGET_AVX512VL)))
12148 : return -1;
12149 : return 8416; /* vec_interleave_highv4si_mask */
12150 :
12151 : default:
12152 : return -1;
12153 : }
12154 :
12155 : case 0L:
12156 : x9 = XVECEXP (x4, 0, 1);
12157 : switch (XWINT (x9, 0))
12158 : {
12159 : case 4L:
12160 : switch (XWINT (x5, 0))
12161 : {
12162 : case 1L:
12163 : if (XWINT (x6, 0) != 5L)
12164 : return -1;
12165 : x10 = XEXP (x3, 0);
12166 : x11 = XEXP (x10, 1);
12167 : operands[2] = x11;
12168 : x12 = XEXP (x2, 1);
12169 : operands[3] = x12;
12170 : operands[4] = x7;
12171 : switch (GET_MODE (operands[0]))
12172 : {
12173 : case E_V4SFmode:
12174 : if (pattern1593 (x2,
12175 : E_V4SFmode,
12176 : E_V8SFmode) != 0
12177 : || !
12178 : #line 11603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12179 : (TARGET_AVX512VL))
12180 : return -1;
12181 : return 5269; /* unpcklps128_mask */
12182 :
12183 : case E_V4SImode:
12184 : if (pattern1594 (x2,
12185 : E_V4SImode,
12186 : E_V8SImode) != 0
12187 : || !(
12188 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12189 : (TARGET_AVX512F) &&
12190 : #line 20151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12191 : (TARGET_SSE2 && TARGET_AVX512VL)))
12192 : return -1;
12193 : return 8422; /* vec_interleave_lowv4si_mask */
12194 :
12195 : default:
12196 : return -1;
12197 : }
12198 :
12199 : case 2L:
12200 : if (XWINT (x6, 0) != 6L)
12201 : return -1;
12202 : switch (GET_MODE (operands[0]))
12203 : {
12204 : case E_V4DFmode:
12205 : if (pattern1656 (x2,
12206 : E_V4DFmode,
12207 : E_V8DFmode) != 0)
12208 : return -1;
12209 : x12 = XEXP (x2, 1);
12210 : operands[2] = x12;
12211 : if (nonimmediate_operand (operands[1], E_V4DFmode))
12212 : {
12213 : operands[3] = x7;
12214 : x10 = XEXP (x3, 0);
12215 : x11 = XEXP (x10, 1);
12216 : if (rtx_equal_p (x11, operands[1])
12217 : && (
12218 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12219 : (TARGET_AVX512F) &&
12220 : #line 13794 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12221 : (TARGET_AVX && TARGET_AVX512VL)))
12222 : return 5424; /* avx_movddup256_mask */
12223 : }
12224 : operands[3] = x12;
12225 : if (!register_operand (operands[1], E_V4DFmode))
12226 : return -1;
12227 : x10 = XEXP (x3, 0);
12228 : x11 = XEXP (x10, 1);
12229 : operands[2] = x11;
12230 : if (!nonimmediate_operand (operands[2], E_V4DFmode))
12231 : return -1;
12232 : operands[4] = x7;
12233 : if (!(
12234 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12235 : (TARGET_AVX512F) &&
12236 : #line 13808 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12237 : (TARGET_AVX && TARGET_AVX512VL)))
12238 : return -1;
12239 : return 5426; /* avx_unpcklpd256_mask */
12240 :
12241 : case E_V4DImode:
12242 : if (pattern1657 (x2,
12243 : E_V4DImode,
12244 : E_V8DImode) != 0
12245 : || !(
12246 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12247 : (TARGET_AVX512F) &&
12248 : #line 14840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12249 : (TARGET_AVX2 && TARGET_AVX512VL)))
12250 : return -1;
12251 : return 7239; /* avx2_interleave_lowv4di_mask */
12252 :
12253 : default:
12254 : return -1;
12255 : }
12256 :
12257 : default:
12258 : return -1;
12259 : }
12260 :
12261 : case 0L:
12262 : if (XWINT (x5, 0) != 6L
12263 : || XWINT (x6, 0) != 6L
12264 : || pattern1592 (x2) != 0
12265 : || !(
12266 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12267 : (TARGET_AVX512F) &&
12268 : #line 11741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12269 : (TARGET_SSE3 && TARGET_AVX512VL)))
12270 : return -1;
12271 : return 5280; /* sse3_movsldup_mask */
12272 :
12273 : default:
12274 : return -1;
12275 : }
12276 :
12277 : case 1L:
12278 : if (XWINT (x6, 0) != 7L)
12279 : return -1;
12280 : x9 = XVECEXP (x4, 0, 1);
12281 : switch (XWINT (x9, 0))
12282 : {
12283 : case 1L:
12284 : if (XWINT (x5, 0) != 7L
12285 : || pattern1592 (x2) != 0
12286 : || !(
12287 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12288 : (TARGET_AVX512F) &&
12289 : #line 11688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12290 : (TARGET_SSE3 && TARGET_AVX512VL)))
12291 : return -1;
12292 : return 5274; /* sse3_movshdup_mask */
12293 :
12294 : case 5L:
12295 : if (XWINT (x5, 0) != 3L)
12296 : return -1;
12297 : x10 = XEXP (x3, 0);
12298 : x11 = XEXP (x10, 1);
12299 : operands[2] = x11;
12300 : x12 = XEXP (x2, 1);
12301 : operands[3] = x12;
12302 : operands[4] = x7;
12303 : switch (GET_MODE (operands[0]))
12304 : {
12305 : case E_V4DFmode:
12306 : if (pattern1593 (x2,
12307 : E_V4DFmode,
12308 : E_V8DFmode) != 0
12309 : || !(
12310 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12311 : (TARGET_AVX512F) &&
12312 : #line 13664 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12313 : (TARGET_AVX && TARGET_AVX512VL)))
12314 : return -1;
12315 : return 5416; /* avx_unpckhpd256_mask */
12316 :
12317 : case E_V4DImode:
12318 : if (pattern1593 (x2,
12319 : E_V4DImode,
12320 : E_V8DImode) != 0
12321 : || !(
12322 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12323 : (TARGET_AVX512F) &&
12324 : #line 14790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12325 : (TARGET_AVX2 && TARGET_AVX512VL)))
12326 : return -1;
12327 : return 7233; /* avx2_interleave_highv4di_mask */
12328 :
12329 : default:
12330 : return -1;
12331 : }
12332 :
12333 : default:
12334 : return -1;
12335 : }
12336 :
12337 : default:
12338 : return -1;
12339 : }
12340 : }
12341 :
12342 : int
12343 : recog_173 (rtx x1 ATTRIBUTE_UNUSED,
12344 : rtx_insn *insn ATTRIBUTE_UNUSED,
12345 : int *pnum_clobbers ATTRIBUTE_UNUSED)
12346 : {
12347 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
12348 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
12349 : rtx x10;
12350 : int res ATTRIBUTE_UNUSED;
12351 : x2 = XEXP (x1, 1);
12352 : x3 = XEXP (x2, 0);
12353 : x4 = XEXP (x3, 1);
12354 : x5 = XVECEXP (x4, 0, 0);
12355 : if (GET_CODE (x5) != CONST_INT)
12356 : return -1;
12357 : operands[2] = x5;
12358 : res = recog_172 (x1, insn, pnum_clobbers);
12359 : if (res >= 0)
12360 : return res;
12361 : x6 = XVECEXP (x4, 0, 1);
12362 : if (GET_CODE (x6) != CONST_INT)
12363 : return -1;
12364 : x7 = XVECEXP (x4, 0, 2);
12365 : if (GET_CODE (x7) != CONST_INT)
12366 : return -1;
12367 : x8 = XVECEXP (x4, 0, 3);
12368 : if (GET_CODE (x8) != CONST_INT)
12369 : return -1;
12370 : x9 = XEXP (x2, 1);
12371 : operands[2] = x9;
12372 : x10 = XEXP (x2, 2);
12373 : operands[3] = x10;
12374 : if (!register_operand (operands[3], E_QImode))
12375 : return -1;
12376 : switch (XWINT (x5, 0))
12377 : {
12378 : case 0L:
12379 : if (XWINT (x6, 0) != 1L
12380 : || XWINT (x7, 0) != 2L
12381 : || XWINT (x8, 0) != 3L)
12382 : return -1;
12383 : switch (GET_MODE (operands[0]))
12384 : {
12385 : case E_V4DFmode:
12386 : if (!nonimmediate_operand (operands[0], E_V4DFmode)
12387 : || pattern1557 (x2,
12388 : E_V4DFmode,
12389 : E_V8DFmode) != 0
12390 : || !
12391 : #line 12947 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12392 : (TARGET_AVX512F
12393 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[2]))))
12394 : return -1;
12395 : return 5357; /* vec_extract_lo_v8df_mask */
12396 :
12397 : case E_V4DImode:
12398 : if (!nonimmediate_operand (operands[0], E_V4DImode)
12399 : || pattern1557 (x2,
12400 : E_V4DImode,
12401 : E_V8DImode) != 0
12402 : || !
12403 : #line 12947 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12404 : (TARGET_AVX512F
12405 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[2]))))
12406 : return -1;
12407 : return 5358; /* vec_extract_lo_v8di_mask */
12408 :
12409 : case E_V4SImode:
12410 : if (!nonimmediate_operand (operands[0], E_V4SImode)
12411 : || pattern1557 (x2,
12412 : E_V4SImode,
12413 : E_V8SImode) != 0
12414 : || !
12415 : #line 13281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12416 : (TARGET_AVX512VL
12417 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[2]))))
12418 : return -1;
12419 : return 5381; /* vec_extract_lo_v8si_mask */
12420 :
12421 : case E_V4SFmode:
12422 : if (!nonimmediate_operand (operands[0], E_V4SFmode)
12423 : || pattern1557 (x2,
12424 : E_V4SFmode,
12425 : E_V8SFmode) != 0
12426 : || !
12427 : #line 13281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12428 : (TARGET_AVX512VL
12429 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[2]))))
12430 : return -1;
12431 : return 5382; /* vec_extract_lo_v8sf_mask */
12432 :
12433 : default:
12434 : return -1;
12435 : }
12436 :
12437 : case 4L:
12438 : if (XWINT (x6, 0) != 5L
12439 : || XWINT (x7, 0) != 6L
12440 : || XWINT (x8, 0) != 7L)
12441 : return -1;
12442 : switch (GET_MODE (operands[0]))
12443 : {
12444 : case E_V4DFmode:
12445 : if (!nonimmediate_operand (operands[0], E_V4DFmode)
12446 : || pattern1557 (x2,
12447 : E_V4DFmode,
12448 : E_V8DFmode) != 0
12449 : || !
12450 : #line 12984 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12451 : (TARGET_AVX512F
12452 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[2]))))
12453 : return -1;
12454 : return 5361; /* vec_extract_hi_v8df_mask */
12455 :
12456 : case E_V4DImode:
12457 : if (!nonimmediate_operand (operands[0], E_V4DImode)
12458 : || pattern1557 (x2,
12459 : E_V4DImode,
12460 : E_V8DImode) != 0
12461 : || !
12462 : #line 12984 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12463 : (TARGET_AVX512F
12464 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[2]))))
12465 : return -1;
12466 : return 5362; /* vec_extract_hi_v8di_mask */
12467 :
12468 : case E_V4SImode:
12469 : if (!register_operand (operands[0], E_V4SImode)
12470 : || pattern1557 (x2,
12471 : E_V4SImode,
12472 : E_V8SImode) != 0
12473 : || !
12474 : #line 13313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12475 : (TARGET_AVX512VL
12476 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[2]))))
12477 : return -1;
12478 : return 5385; /* vec_extract_hi_v8si_mask */
12479 :
12480 : case E_V4SFmode:
12481 : if (!register_operand (operands[0], E_V4SFmode)
12482 : || pattern1557 (x2,
12483 : E_V4SFmode,
12484 : E_V8SFmode) != 0
12485 : || !
12486 : #line 13313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12487 : (TARGET_AVX512VL
12488 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[2]))))
12489 : return -1;
12490 : return 5386; /* vec_extract_hi_v8sf_mask */
12491 :
12492 : default:
12493 : return -1;
12494 : }
12495 :
12496 : default:
12497 : return -1;
12498 : }
12499 : }
12500 :
12501 : int
12502 : recog_185 (rtx x1 ATTRIBUTE_UNUSED,
12503 : rtx_insn *insn ATTRIBUTE_UNUSED,
12504 : int *pnum_clobbers ATTRIBUTE_UNUSED)
12505 : {
12506 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
12507 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
12508 : rtx x10, x11, x12, x13, x14, x15;
12509 : int res ATTRIBUTE_UNUSED;
12510 : x2 = XEXP (x1, 1);
12511 : x3 = XEXP (x2, 0);
12512 : x4 = XEXP (x3, 0);
12513 : switch (GET_CODE (x4))
12514 : {
12515 : case REG:
12516 : case SUBREG:
12517 : x5 = XEXP (x3, 1);
12518 : switch (GET_CODE (x5))
12519 : {
12520 : case CONST_INT:
12521 : case CONST_DOUBLE:
12522 : case CONST_VECTOR:
12523 : case REG:
12524 : case SUBREG:
12525 : case MEM:
12526 : operands[3] = x5;
12527 : x6 = XEXP (x2, 2);
12528 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12529 : return -1;
12530 : operands[2] = x4;
12531 : x7 = XEXP (x3, 2);
12532 : operands[4] = x7;
12533 : if (!register_operand (operands[4], E_QImode))
12534 : return -1;
12535 : x8 = XEXP (x2, 1);
12536 : operands[1] = x8;
12537 : switch (GET_MODE (operands[0]))
12538 : {
12539 : case E_V8HFmode:
12540 : if (pattern1286 (x2,
12541 : E_V8HFmode) != 0
12542 : || !(
12543 : #line 1717 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12544 : (TARGET_AVX512F) &&
12545 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12546 : (TARGET_AVX512FP16)))
12547 : return -1;
12548 : return 2559; /* avx512f_movhf_mask */
12549 :
12550 : case E_V4SFmode:
12551 : if (pattern1286 (x2,
12552 : E_V4SFmode) != 0
12553 : || !
12554 : #line 1717 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12555 : (TARGET_AVX512F))
12556 : return -1;
12557 : return 2560; /* avx512f_movsf_mask */
12558 :
12559 : case E_V2DFmode:
12560 : if (pattern1286 (x2,
12561 : E_V2DFmode) != 0
12562 : || !(
12563 : #line 1717 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12564 : (TARGET_AVX512F) &&
12565 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12566 : (TARGET_SSE2)))
12567 : return -1;
12568 : return 2561; /* avx512f_movdf_mask */
12569 :
12570 : default:
12571 : return -1;
12572 : }
12573 :
12574 : case VEC_DUPLICATE:
12575 : operands[1] = x4;
12576 : x9 = XEXP (x5, 0);
12577 : operands[2] = x9;
12578 : x7 = XEXP (x3, 2);
12579 : operands[3] = x7;
12580 : if (!const_int_operand (operands[3], E_SImode))
12581 : return -1;
12582 : x8 = XEXP (x2, 1);
12583 : operands[4] = x8;
12584 : x6 = XEXP (x2, 2);
12585 : operands[5] = x6;
12586 : switch (GET_MODE (operands[0]))
12587 : {
12588 : case E_V8DFmode:
12589 : if (pattern1287 (x2,
12590 : E_V8DFmode,
12591 : E_V2DFmode,
12592 : E_QImode) != 0
12593 : || !(
12594 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12595 : (TARGET_AVX512F) && (
12596 : #line 20377 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12597 : (TARGET_AVX512F) &&
12598 : #line 12722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12599 : (TARGET_AVX512DQ))))
12600 : return -1;
12601 : return 8434; /* avx512dq_vinsertf64x2_1_mask */
12602 :
12603 : case E_V8DImode:
12604 : if (pattern1287 (x2,
12605 : E_V8DImode,
12606 : E_V2DImode,
12607 : E_QImode) != 0
12608 : || !(
12609 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12610 : (TARGET_AVX512F) && (
12611 : #line 20377 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12612 : (TARGET_AVX512F) &&
12613 : #line 12722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12614 : (TARGET_AVX512DQ))))
12615 : return -1;
12616 : return 8436; /* avx512dq_vinserti64x2_1_mask */
12617 :
12618 : case E_V16SFmode:
12619 : if (pattern1287 (x2,
12620 : E_V16SFmode,
12621 : E_V4SFmode,
12622 : E_HImode) != 0
12623 : || !
12624 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12625 : (TARGET_AVX512F))
12626 : return -1;
12627 : return 8438; /* avx512f_vinsertf32x4_1_mask */
12628 :
12629 : case E_V16SImode:
12630 : if (pattern1287 (x2,
12631 : E_V16SImode,
12632 : E_V4SImode,
12633 : E_HImode) != 0
12634 : || !
12635 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12636 : (TARGET_AVX512F))
12637 : return -1;
12638 : return 8440; /* avx512f_vinserti32x4_1_mask */
12639 :
12640 : default:
12641 : return -1;
12642 : }
12643 :
12644 : default:
12645 : return -1;
12646 : }
12647 :
12648 : case VEC_DUPLICATE:
12649 : x10 = XEXP (x4, 0);
12650 : switch (GET_CODE (x10))
12651 : {
12652 : case SUBREG:
12653 : case MEM:
12654 : operands[1] = x10;
12655 : x6 = XEXP (x2, 2);
12656 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12657 : return -1;
12658 : x5 = XEXP (x3, 1);
12659 : operands[2] = x5;
12660 : x7 = XEXP (x3, 2);
12661 : operands[3] = x7;
12662 : if (!register_operand (operands[3], E_QImode))
12663 : return -1;
12664 : x8 = XEXP (x2, 1);
12665 : operands[4] = x8;
12666 : switch (GET_MODE (operands[0]))
12667 : {
12668 : case E_V8HFmode:
12669 : if (pattern1288 (x2,
12670 : E_V8HFmode,
12671 : E_HFmode) != 0
12672 : || !(
12673 : #line 1746 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12674 : (TARGET_AVX512F) &&
12675 : #line 1356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
12676 : (TARGET_AVX512FP16)))
12677 : return -1;
12678 : return 2562; /* *avx512f_loadhf_mask */
12679 :
12680 : case E_V4SFmode:
12681 : if (pattern1288 (x2,
12682 : E_V4SFmode,
12683 : E_SFmode) != 0
12684 : || !
12685 : #line 1746 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12686 : (TARGET_AVX512F))
12687 : return -1;
12688 : return 2563; /* *avx512f_loadsf_mask */
12689 :
12690 : case E_V2DFmode:
12691 : if (pattern1288 (x2,
12692 : E_V2DFmode,
12693 : E_DFmode) != 0
12694 : || !
12695 : #line 1746 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12696 : (TARGET_AVX512F))
12697 : return -1;
12698 : return 2564; /* *avx512f_loaddf_mask */
12699 :
12700 : default:
12701 : return -1;
12702 : }
12703 :
12704 : case SQRT:
12705 : x6 = XEXP (x2, 2);
12706 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12707 : return -1;
12708 : x11 = XEXP (x10, 0);
12709 : operands[1] = x11;
12710 : x5 = XEXP (x3, 1);
12711 : operands[3] = x5;
12712 : x7 = XEXP (x3, 2);
12713 : operands[4] = x7;
12714 : if (!register_operand (operands[4], E_QImode))
12715 : return -1;
12716 : x8 = XEXP (x2, 1);
12717 : operands[2] = x8;
12718 : switch (GET_MODE (operands[0]))
12719 : {
12720 : case E_V8HFmode:
12721 : if (pattern1289 (x2,
12722 : E_V8HFmode,
12723 : E_HFmode) != 0
12724 : || !(
12725 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12726 : (TARGET_AVX512F) && (
12727 : #line 3125 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12728 : (TARGET_SSE) &&
12729 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12730 : (TARGET_AVX512FP16))))
12731 : return -1;
12732 : return 3004; /* *avx512fp16_vmsqrtv8hf2_mask */
12733 :
12734 : case E_V4SFmode:
12735 : if (pattern1289 (x2,
12736 : E_V4SFmode,
12737 : E_SFmode) != 0
12738 : || !(
12739 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12740 : (TARGET_AVX512F) &&
12741 : #line 3125 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12742 : (TARGET_SSE)))
12743 : return -1;
12744 : return 3008; /* *sse_vmsqrtv4sf2_mask */
12745 :
12746 : case E_V2DFmode:
12747 : if (pattern1289 (x2,
12748 : E_V2DFmode,
12749 : E_DFmode) != 0
12750 : || !(
12751 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12752 : (TARGET_AVX512F) && (
12753 : #line 3125 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12754 : (TARGET_SSE) &&
12755 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12756 : (TARGET_SSE2))))
12757 : return -1;
12758 : return 3012; /* *sse2_vmsqrtv2df2_mask */
12759 :
12760 : default:
12761 : return -1;
12762 : }
12763 :
12764 : case UNSPEC:
12765 : if (XVECLEN (x10, 0) != 1
12766 : || XINT (x10, 1) != 56
12767 : || GET_MODE (x10) != E_HFmode)
12768 : return -1;
12769 : x6 = XEXP (x2, 2);
12770 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
12771 : || pattern1007 (x2,
12772 : E_V8HFmode) != 0)
12773 : return -1;
12774 : x12 = XVECEXP (x10, 0, 0);
12775 : operands[1] = x12;
12776 : if (!nonimmediate_operand (operands[1], E_HFmode))
12777 : return -1;
12778 : x5 = XEXP (x3, 1);
12779 : operands[3] = x5;
12780 : if (!nonimm_or_0_operand (operands[3], E_V8HFmode))
12781 : return -1;
12782 : x7 = XEXP (x3, 2);
12783 : operands[4] = x7;
12784 : if (!register_operand (operands[4], E_QImode))
12785 : return -1;
12786 : x8 = XEXP (x2, 1);
12787 : operands[2] = x8;
12788 : if (!register_operand (operands[2], E_V8HFmode)
12789 : || !(
12790 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12791 : (TARGET_AVX512F) &&
12792 : #line 3274 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12793 : (TARGET_AVX512FP16)))
12794 : return -1;
12795 : return 3043; /* *avx512fp16_vmrsqrtv8hf2 */
12796 :
12797 : case FLOAT_EXTEND:
12798 : x6 = XEXP (x2, 2);
12799 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12800 : return -1;
12801 : x5 = XEXP (x3, 1);
12802 : operands[3] = x5;
12803 : x7 = XEXP (x3, 2);
12804 : operands[4] = x7;
12805 : if (!register_operand (operands[4], E_QImode))
12806 : return -1;
12807 : x8 = XEXP (x2, 1);
12808 : operands[2] = x8;
12809 : x11 = XEXP (x10, 0);
12810 : switch (GET_CODE (x11))
12811 : {
12812 : case VEC_SELECT:
12813 : if (GET_MODE (x11) != E_HFmode)
12814 : return -1;
12815 : x13 = XEXP (x11, 1);
12816 : if (GET_CODE (x13) != PARALLEL
12817 : || XVECLEN (x13, 0) != 1)
12818 : return -1;
12819 : x14 = XVECEXP (x13, 0, 0);
12820 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
12821 : return -1;
12822 : x15 = XEXP (x11, 0);
12823 : operands[1] = x15;
12824 : if (!register_operand (operands[1], E_V8HFmode))
12825 : return -1;
12826 : switch (GET_MODE (operands[0]))
12827 : {
12828 : case E_V2DFmode:
12829 : if (pattern1470 (x2,
12830 : E_V2DFmode,
12831 : E_DFmode) != 0
12832 : || !(
12833 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12834 : (TARGET_AVX512F) &&
12835 : #line 8632 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12836 : (TARGET_AVX512FP16)))
12837 : return -1;
12838 : return 4801; /* avx512fp16_vcvtsh2sd_mask */
12839 :
12840 : case E_V4SFmode:
12841 : if (pattern1470 (x2,
12842 : E_V4SFmode,
12843 : E_SFmode) != 0
12844 : || !(
12845 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12846 : (TARGET_AVX512F) &&
12847 : #line 8632 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12848 : (TARGET_AVX512FP16)))
12849 : return -1;
12850 : return 4805; /* avx512fp16_vcvtsh2ss_mask */
12851 :
12852 : default:
12853 : return -1;
12854 : }
12855 :
12856 : case SUBREG:
12857 : case MEM:
12858 : operands[1] = x11;
12859 : if (!memory_operand (operands[1], E_HFmode))
12860 : return -1;
12861 : switch (GET_MODE (operands[0]))
12862 : {
12863 : case E_V2DFmode:
12864 : if (pattern1470 (x2,
12865 : E_V2DFmode,
12866 : E_DFmode) != 0
12867 : || !(
12868 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12869 : (TARGET_AVX512F) &&
12870 : #line 8646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12871 : (TARGET_AVX512FP16)))
12872 : return -1;
12873 : return 4809; /* avx512fp16_vcvtsh2sd_mask_mem */
12874 :
12875 : case E_V4SFmode:
12876 : if (pattern1470 (x2,
12877 : E_V4SFmode,
12878 : E_SFmode) != 0
12879 : || !(
12880 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12881 : (TARGET_AVX512F) &&
12882 : #line 8646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12883 : (TARGET_AVX512FP16)))
12884 : return -1;
12885 : return 4811; /* avx512fp16_vcvtsh2ss_mask_mem */
12886 :
12887 : default:
12888 : return -1;
12889 : }
12890 :
12891 : default:
12892 : return -1;
12893 : }
12894 :
12895 : case FLOAT_TRUNCATE:
12896 : x11 = XEXP (x10, 0);
12897 : switch (GET_CODE (x11))
12898 : {
12899 : case VEC_SELECT:
12900 : x13 = XEXP (x11, 1);
12901 : if (GET_CODE (x13) != PARALLEL
12902 : || XVECLEN (x13, 0) != 1)
12903 : return -1;
12904 : x14 = XVECEXP (x13, 0, 0);
12905 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
12906 : return -1;
12907 : x6 = XEXP (x2, 2);
12908 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
12909 : || pattern893 (x2,
12910 : E_HFmode,
12911 : E_V8HFmode) != 0)
12912 : return -1;
12913 : x15 = XEXP (x11, 0);
12914 : operands[1] = x15;
12915 : x5 = XEXP (x3, 1);
12916 : operands[3] = x5;
12917 : if (!nonimm_or_0_operand (operands[3], E_V8HFmode))
12918 : return -1;
12919 : x7 = XEXP (x3, 2);
12920 : operands[4] = x7;
12921 : if (!register_operand (operands[4], E_QImode))
12922 : return -1;
12923 : x8 = XEXP (x2, 1);
12924 : operands[2] = x8;
12925 : if (!register_operand (operands[2], E_V8HFmode))
12926 : return -1;
12927 : switch (GET_MODE (x11))
12928 : {
12929 : case E_DFmode:
12930 : if (!register_operand (operands[1], E_V2DFmode)
12931 : || !(
12932 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12933 : (TARGET_AVX512F) &&
12934 : #line 8662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12935 : (TARGET_AVX512FP16)))
12936 : return -1;
12937 : return 4814; /* avx512fp16_vcvtsd2sh_mask */
12938 :
12939 : case E_SFmode:
12940 : if (!register_operand (operands[1], E_V4SFmode)
12941 : || !(
12942 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12943 : (TARGET_AVX512F) &&
12944 : #line 8662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12945 : (TARGET_AVX512FP16)))
12946 : return -1;
12947 : return 4818; /* avx512fp16_vcvtss2sh_mask */
12948 :
12949 : default:
12950 : return -1;
12951 : }
12952 :
12953 : case REG:
12954 : case SUBREG:
12955 : case MEM:
12956 : x7 = XEXP (x3, 2);
12957 : switch (GET_CODE (x7))
12958 : {
12959 : case REG:
12960 : case SUBREG:
12961 : operands[4] = x7;
12962 : if (!register_operand (operands[4], E_QImode))
12963 : return -1;
12964 : x6 = XEXP (x2, 2);
12965 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
12966 : || pattern893 (x2,
12967 : E_HFmode,
12968 : E_V8HFmode) != 0)
12969 : return -1;
12970 : operands[1] = x11;
12971 : x5 = XEXP (x3, 1);
12972 : operands[3] = x5;
12973 : if (!nonimm_or_0_operand (operands[3], E_V8HFmode))
12974 : return -1;
12975 : x8 = XEXP (x2, 1);
12976 : operands[2] = x8;
12977 : if (!register_operand (operands[2], E_V8HFmode))
12978 : return -1;
12979 : switch (GET_MODE (operands[1]))
12980 : {
12981 : case E_SFmode:
12982 : if (!memory_operand (operands[1], E_SFmode)
12983 : || !(
12984 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12985 : (TARGET_AVX512F) &&
12986 : #line 8676 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12987 : (TARGET_AVX512FP16)))
12988 : return -1;
12989 : return 4821; /* avx512fp16_vcvtss2sh_mask_mem */
12990 :
12991 : case E_DFmode:
12992 : if (!memory_operand (operands[1], E_DFmode)
12993 : || !(
12994 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12995 : (TARGET_AVX512F) &&
12996 : #line 8676 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12997 : (TARGET_AVX512FP16)))
12998 : return -1;
12999 : return 4823; /* avx512fp16_vcvtsd2sh_mask_mem */
13000 :
13001 : default:
13002 : return -1;
13003 : }
13004 :
13005 : case CONST_INT:
13006 : if (XWINT (x7, 0) != 1L
13007 : || pattern893 (x2,
13008 : E_V2SFmode,
13009 : E_V4SFmode) != 0
13010 : || pattern1381 (x2,
13011 : E_V4SFmode,
13012 : E_V2DFmode) != 0
13013 : || !(
13014 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13015 : (TARGET_AVX512F) &&
13016 : #line 10333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13017 : (TARGET_SSE2)))
13018 : return -1;
13019 : return 5182; /* sse2_cvtsd2ss_mask */
13020 :
13021 : default:
13022 : return -1;
13023 : }
13024 :
13025 : default:
13026 : return -1;
13027 : }
13028 :
13029 : default:
13030 : return -1;
13031 : }
13032 :
13033 : case PLUS:
13034 : switch (pattern309 (x2))
13035 : {
13036 : case 0:
13037 : if (!(
13038 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13039 : (TARGET_AVX512F) && (
13040 : #line 2733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13041 : (TARGET_SSE) &&
13042 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13043 : (TARGET_AVX512FP16))))
13044 : return -1;
13045 : return 2825; /* avx512fp16_vmaddv8hf3_mask */
13046 :
13047 : case 1:
13048 : if (!(
13049 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13050 : (TARGET_AVX512F) &&
13051 : #line 2733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13052 : (TARGET_SSE)))
13053 : return -1;
13054 : return 2833; /* sse_vmaddv4sf3_mask */
13055 :
13056 : case 2:
13057 : if (!(
13058 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13059 : (TARGET_AVX512F) && (
13060 : #line 2733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13061 : (TARGET_SSE) &&
13062 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13063 : (TARGET_SSE2))))
13064 : return -1;
13065 : return 2841; /* sse2_vmaddv2df3_mask */
13066 :
13067 : default:
13068 : return -1;
13069 : }
13070 :
13071 : case MINUS:
13072 : switch (pattern309 (x2))
13073 : {
13074 : case 0:
13075 : if (!(
13076 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13077 : (TARGET_AVX512F) && (
13078 : #line 2733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13079 : (TARGET_SSE) &&
13080 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13081 : (TARGET_AVX512FP16))))
13082 : return -1;
13083 : return 2829; /* avx512fp16_vmsubv8hf3_mask */
13084 :
13085 : case 1:
13086 : if (!(
13087 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13088 : (TARGET_AVX512F) &&
13089 : #line 2733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13090 : (TARGET_SSE)))
13091 : return -1;
13092 : return 2837; /* sse_vmsubv4sf3_mask */
13093 :
13094 : case 2:
13095 : if (!(
13096 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13097 : (TARGET_AVX512F) && (
13098 : #line 2733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13099 : (TARGET_SSE) &&
13100 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13101 : (TARGET_SSE2))))
13102 : return -1;
13103 : return 2845; /* sse2_vmsubv2df3_mask */
13104 :
13105 : default:
13106 : return -1;
13107 : }
13108 :
13109 : case MULT:
13110 : switch (pattern309 (x2))
13111 : {
13112 : case 0:
13113 : if (!(
13114 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13115 : (TARGET_AVX512F) && (
13116 : #line 2824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13117 : (TARGET_SSE) &&
13118 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13119 : (TARGET_AVX512FP16))))
13120 : return -1;
13121 : return 2891; /* avx512fp16_vmmulv8hf3_mask */
13122 :
13123 : case 1:
13124 : if (!(
13125 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13126 : (TARGET_AVX512F) &&
13127 : #line 2824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13128 : (TARGET_SSE)))
13129 : return -1;
13130 : return 2899; /* sse_vmmulv4sf3_mask */
13131 :
13132 : case 2:
13133 : if (!(
13134 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13135 : (TARGET_AVX512F) && (
13136 : #line 2824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13137 : (TARGET_SSE) &&
13138 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13139 : (TARGET_SSE2))))
13140 : return -1;
13141 : return 2907; /* sse2_vmmulv2df3_mask */
13142 :
13143 : default:
13144 : return -1;
13145 : }
13146 :
13147 : case DIV:
13148 : switch (pattern309 (x2))
13149 : {
13150 : case 0:
13151 : if (!(
13152 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13153 : (TARGET_AVX512F) && (
13154 : #line 2824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13155 : (TARGET_SSE) &&
13156 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13157 : (TARGET_AVX512FP16))))
13158 : return -1;
13159 : return 2895; /* avx512fp16_vmdivv8hf3_mask */
13160 :
13161 : case 1:
13162 : if (!(
13163 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13164 : (TARGET_AVX512F) &&
13165 : #line 2824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13166 : (TARGET_SSE)))
13167 : return -1;
13168 : return 2903; /* sse_vmdivv4sf3_mask */
13169 :
13170 : case 2:
13171 : if (!(
13172 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13173 : (TARGET_AVX512F) && (
13174 : #line 2824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13175 : (TARGET_SSE) &&
13176 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13177 : (TARGET_SSE2))))
13178 : return -1;
13179 : return 2911; /* sse2_vmdivv2df3_mask */
13180 :
13181 : default:
13182 : return -1;
13183 : }
13184 :
13185 : case UNSPEC:
13186 : return recog_151 (x1, insn, pnum_clobbers);
13187 :
13188 : case SQRT:
13189 : x6 = XEXP (x2, 2);
13190 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
13191 : return -1;
13192 : x10 = XEXP (x4, 0);
13193 : operands[1] = x10;
13194 : x5 = XEXP (x3, 1);
13195 : operands[3] = x5;
13196 : x7 = XEXP (x3, 2);
13197 : operands[4] = x7;
13198 : if (!register_operand (operands[4], E_QImode))
13199 : return -1;
13200 : x8 = XEXP (x2, 1);
13201 : operands[2] = x8;
13202 : switch (GET_MODE (operands[0]))
13203 : {
13204 : case E_V8HFmode:
13205 : if (pattern1223 (x2,
13206 : E_V8HFmode) != 0
13207 : || !(
13208 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13209 : (TARGET_AVX512F) && (
13210 : #line 3106 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13211 : (TARGET_SSE) &&
13212 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13213 : (TARGET_AVX512FP16))))
13214 : return -1;
13215 : return 2992; /* avx512fp16_vmsqrtv8hf2_mask */
13216 :
13217 : case E_V4SFmode:
13218 : if (pattern1223 (x2,
13219 : E_V4SFmode) != 0
13220 : || !(
13221 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13222 : (TARGET_AVX512F) &&
13223 : #line 3106 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13224 : (TARGET_SSE)))
13225 : return -1;
13226 : return 2996; /* sse_vmsqrtv4sf2_mask */
13227 :
13228 : case E_V2DFmode:
13229 : if (pattern1223 (x2,
13230 : E_V2DFmode) != 0
13231 : || !(
13232 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13233 : (TARGET_AVX512F) && (
13234 : #line 3106 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13235 : (TARGET_SSE) &&
13236 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13237 : (TARGET_SSE2))))
13238 : return -1;
13239 : return 3000; /* sse2_vmsqrtv2df2_mask */
13240 :
13241 : default:
13242 : return -1;
13243 : }
13244 :
13245 : case SMAX:
13246 : switch (pattern309 (x2))
13247 : {
13248 : case 0:
13249 : if (!(
13250 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13251 : (TARGET_AVX512F) && (
13252 : #line 3536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13253 : (TARGET_SSE) &&
13254 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13255 : (TARGET_AVX512FP16))))
13256 : return -1;
13257 : return 3168; /* *avx512fp16_vmsmaxv8hf3_mask */
13258 :
13259 : case 1:
13260 : if (!(
13261 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13262 : (TARGET_AVX512F) &&
13263 : #line 3536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13264 : (TARGET_SSE)))
13265 : return -1;
13266 : return 3176; /* *sse_vmsmaxv4sf3_mask */
13267 :
13268 : case 2:
13269 : if (!(
13270 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13271 : (TARGET_AVX512F) && (
13272 : #line 3536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13273 : (TARGET_SSE) &&
13274 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13275 : (TARGET_SSE2))))
13276 : return -1;
13277 : return 3184; /* *sse2_vmsmaxv2df3_mask */
13278 :
13279 : default:
13280 : return -1;
13281 : }
13282 :
13283 : case SMIN:
13284 : switch (pattern309 (x2))
13285 : {
13286 : case 0:
13287 : if (!(
13288 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13289 : (TARGET_AVX512F) && (
13290 : #line 3536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13291 : (TARGET_SSE) &&
13292 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13293 : (TARGET_AVX512FP16))))
13294 : return -1;
13295 : return 3172; /* *avx512fp16_vmsminv8hf3_mask */
13296 :
13297 : case 1:
13298 : if (!(
13299 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13300 : (TARGET_AVX512F) &&
13301 : #line 3536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13302 : (TARGET_SSE)))
13303 : return -1;
13304 : return 3180; /* *sse_vmsminv4sf3_mask */
13305 :
13306 : case 2:
13307 : if (!(
13308 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13309 : (TARGET_AVX512F) && (
13310 : #line 3536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13311 : (TARGET_SSE) &&
13312 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13313 : (TARGET_SSE2))))
13314 : return -1;
13315 : return 3188; /* *sse2_vmsminv2df3_mask */
13316 :
13317 : default:
13318 : return -1;
13319 : }
13320 :
13321 : case FMA:
13322 : return recog_150 (x1, insn, pnum_clobbers);
13323 :
13324 : case FLOAT_EXTEND:
13325 : if (pattern310 (x4,
13326 : 1,
13327 : E_V2SFmode,
13328 : E_V2DFmode) != 0)
13329 : return -1;
13330 : x7 = XEXP (x3, 2);
13331 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
13332 : || !register_operand (operands[0], E_V2DFmode)
13333 : || GET_MODE (x2) != E_V2DFmode
13334 : || GET_MODE (x3) != E_V2DFmode
13335 : || pattern1381 (x2,
13336 : E_V2DFmode,
13337 : E_V4SFmode) != 0
13338 : || !(
13339 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13340 : (TARGET_AVX512F) &&
13341 : #line 10377 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13342 : (TARGET_SSE2)))
13343 : return -1;
13344 : return 5187; /* sse2_cvtss2sd_mask */
13345 :
13346 : default:
13347 : return -1;
13348 : }
13349 : }
13350 :
13351 : int
13352 : recog_201 (rtx x1 ATTRIBUTE_UNUSED,
13353 : rtx_insn *insn ATTRIBUTE_UNUSED,
13354 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13355 : {
13356 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13357 : rtx x2;
13358 : int res ATTRIBUTE_UNUSED;
13359 : x2 = XEXP (x1, 1);
13360 : switch (pattern139 (x2))
13361 : {
13362 : case 0:
13363 : if (!(
13364 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13365 : (TARGET_AVX512F) && (
13366 : #line 3329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13367 : (TARGET_SSE
13368 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13369 : && (64 == 64 || TARGET_AVX512VL)
13370 : && 1) &&
13371 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13372 : (TARGET_AVX512FP16))))
13373 : return -1;
13374 : return 3050; /* *sminv32hf3_mask */
13375 :
13376 : case 1:
13377 : if (!(
13378 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13379 : (TARGET_AVX512F) && (
13380 : #line 3329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13381 : (TARGET_SSE
13382 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13383 : && (32 == 64 || TARGET_AVX512VL)
13384 : && 1) &&
13385 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13386 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
13387 : return -1;
13388 : return 3055; /* *sminv16hf3_mask */
13389 :
13390 : case 2:
13391 : if (!(
13392 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13393 : (TARGET_AVX512F) && (
13394 : #line 3329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13395 : (TARGET_SSE
13396 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13397 : && (16 == 64 || TARGET_AVX512VL)
13398 : && 1) &&
13399 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13400 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
13401 : return -1;
13402 : return 3059; /* *sminv8hf3_mask */
13403 :
13404 : case 3:
13405 : if (!(
13406 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13407 : (TARGET_AVX512F) && (
13408 : #line 3329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13409 : (TARGET_SSE
13410 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13411 : && (64 == 64 || TARGET_AVX512VL)
13412 : && 1) &&
13413 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13414 : (TARGET_AVX512F))))
13415 : return -1;
13416 : return 3066; /* *sminv16sf3_mask */
13417 :
13418 : case 4:
13419 : if (!(
13420 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13421 : (TARGET_AVX512F) && (
13422 : #line 3329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13423 : (TARGET_SSE
13424 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13425 : && (32 == 64 || TARGET_AVX512VL)
13426 : && 1) &&
13427 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13428 : (TARGET_AVX))))
13429 : return -1;
13430 : return 3071; /* *sminv8sf3_mask */
13431 :
13432 : case 5:
13433 : if (!(
13434 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13435 : (TARGET_AVX512F) &&
13436 : #line 3329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13437 : (TARGET_SSE
13438 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13439 : && (16 == 64 || TARGET_AVX512VL)
13440 : && 1)))
13441 : return -1;
13442 : return 3075; /* *sminv4sf3_mask */
13443 :
13444 : case 6:
13445 : if (!(
13446 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13447 : (TARGET_AVX512F) && (
13448 : #line 3329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13449 : (TARGET_SSE
13450 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13451 : && (64 == 64 || TARGET_AVX512VL)
13452 : && 1) &&
13453 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13454 : (TARGET_AVX512F))))
13455 : return -1;
13456 : return 3082; /* *sminv8df3_mask */
13457 :
13458 : case 7:
13459 : if (!(
13460 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13461 : (TARGET_AVX512F) && (
13462 : #line 3329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13463 : (TARGET_SSE
13464 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13465 : && (32 == 64 || TARGET_AVX512VL)
13466 : && 1) &&
13467 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13468 : (TARGET_AVX))))
13469 : return -1;
13470 : return 3087; /* *sminv4df3_mask */
13471 :
13472 : case 8:
13473 : if (!(
13474 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13475 : (TARGET_AVX512F) && (
13476 : #line 3329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13477 : (TARGET_SSE
13478 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13479 : && (16 == 64 || TARGET_AVX512VL)
13480 : && 1) &&
13481 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13482 : (TARGET_SSE2))))
13483 : return -1;
13484 : return 3091; /* *sminv2df3_mask */
13485 :
13486 : case 9:
13487 : if (!(
13488 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13489 : (TARGET_AVX512F) &&
13490 : #line 18033 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13491 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
13492 : return -1;
13493 : return 7809; /* *avx512f_sminv16si3_mask */
13494 :
13495 : case 10:
13496 : if (!(
13497 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13498 : (TARGET_AVX512F) && (
13499 : #line 18033 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13500 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
13501 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13502 : (TARGET_AVX512VL))))
13503 : return -1;
13504 : return 7817; /* *avx512f_sminv8si3_mask */
13505 :
13506 : case 11:
13507 : if (nonimmediate_operand (operands[1], E_V4SImode)
13508 : && nonimmediate_operand (operands[2], E_V4SImode)
13509 : && (
13510 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13511 : (TARGET_AVX512F) && (
13512 : #line 18033 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13513 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
13514 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13515 : (TARGET_AVX512VL))))
13516 : return 7825; /* *avx512f_sminv4si3_mask */
13517 : if (!vector_operand (operands[1], E_V4SImode)
13518 : || !vector_operand (operands[2], E_V4SImode)
13519 : || !(
13520 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13521 : (TARGET_AVX512F) &&
13522 : #line 18136 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13523 : (TARGET_SSE4_1
13524 : && (16 == 64 || TARGET_AVX512VL)
13525 : && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
13526 : return -1;
13527 : return 7909; /* *sse4_1_sminv4si3_mask */
13528 :
13529 : case 12:
13530 : if (!(
13531 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13532 : (TARGET_AVX512F) &&
13533 : #line 18033 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13534 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
13535 : return -1;
13536 : return 7833; /* *avx512f_sminv8di3_mask */
13537 :
13538 : case 13:
13539 : if (!(
13540 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13541 : (TARGET_AVX512F) && (
13542 : #line 18033 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13543 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
13544 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13545 : (TARGET_AVX512VL))))
13546 : return -1;
13547 : return 7841; /* *avx512f_sminv4di3_mask */
13548 :
13549 : case 14:
13550 : if (!(
13551 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13552 : (TARGET_AVX512F) && (
13553 : #line 18033 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13554 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
13555 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13556 : (TARGET_AVX512VL))))
13557 : return -1;
13558 : return 7849; /* *avx512f_sminv2di3_mask */
13559 :
13560 : case 15:
13561 : if (!(
13562 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13563 : (TARGET_AVX512F) &&
13564 : #line 18044 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13565 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
13566 : return -1;
13567 : return 7857; /* *avx512bw_sminv64qi3_mask */
13568 :
13569 : case 16:
13570 : if (nonimmediate_operand (operands[1], E_V16QImode)
13571 : && nonimmediate_operand (operands[2], E_V16QImode)
13572 : && (
13573 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13574 : (TARGET_AVX512F) && (
13575 : #line 18044 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13576 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
13577 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13578 : (TARGET_AVX512VL))))
13579 : return 7865; /* *avx512bw_sminv16qi3_mask */
13580 : if (!vector_operand (operands[1], E_V16QImode)
13581 : || !vector_operand (operands[2], E_V16QImode)
13582 : || !(
13583 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13584 : (TARGET_AVX512F) &&
13585 : #line 18136 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13586 : (TARGET_SSE4_1
13587 : && (16 == 64 || TARGET_AVX512VL)
13588 : && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
13589 : return -1;
13590 : return 7905; /* *sse4_1_sminv16qi3_mask */
13591 :
13592 : case 17:
13593 : if (!(
13594 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13595 : (TARGET_AVX512F) && (
13596 : #line 18044 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13597 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
13598 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13599 : (TARGET_AVX512VL))))
13600 : return -1;
13601 : return 7873; /* *avx512bw_sminv32qi3_mask */
13602 :
13603 : case 18:
13604 : if (!(
13605 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13606 : (TARGET_AVX512F) &&
13607 : #line 18044 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13608 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
13609 : return -1;
13610 : return 7881; /* *avx512bw_sminv32hi3_mask */
13611 :
13612 : case 19:
13613 : if (!(
13614 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13615 : (TARGET_AVX512F) && (
13616 : #line 18044 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13617 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
13618 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13619 : (TARGET_AVX512VL))))
13620 : return -1;
13621 : return 7889; /* *avx512bw_sminv16hi3_mask */
13622 :
13623 : case 20:
13624 : if (!(
13625 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13626 : (TARGET_AVX512F) && (
13627 : #line 18044 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13628 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
13629 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13630 : (TARGET_AVX512VL))))
13631 : return -1;
13632 : return 7897; /* *avx512bw_sminv8hi3_mask */
13633 :
13634 : case 21:
13635 : if (!(
13636 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13637 : (TARGET_AVX512F) &&
13638 : #line 32821 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13639 : (TARGET_AVX10_2)))
13640 : return -1;
13641 : return 10668; /* avx10_2_sminbf16_v32bf_mask */
13642 :
13643 : case 22:
13644 : if (!(
13645 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13646 : (TARGET_AVX512F) &&
13647 : #line 32821 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13648 : (TARGET_AVX10_2)))
13649 : return -1;
13650 : return 10672; /* avx10_2_sminbf16_v16bf_mask */
13651 :
13652 : case 23:
13653 : if (!(
13654 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13655 : (TARGET_AVX512F) &&
13656 : #line 32821 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13657 : (TARGET_AVX10_2)))
13658 : return -1;
13659 : return 10676; /* avx10_2_sminbf16_v8bf_mask */
13660 :
13661 : case 24:
13662 : if (!(
13663 : #line 3536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13664 : (TARGET_SSE) &&
13665 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13666 : (TARGET_AVX512FP16)))
13667 : return -1;
13668 : return 3171; /* *avx512fp16_vmsminv8hf3 */
13669 :
13670 : case 25:
13671 : if (!
13672 : #line 3536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13673 : (TARGET_SSE))
13674 : return -1;
13675 : return 3179; /* *sse_vmsminv4sf3 */
13676 :
13677 : case 26:
13678 : if (!(
13679 : #line 3536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13680 : (TARGET_SSE) &&
13681 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13682 : (TARGET_SSE2)))
13683 : return -1;
13684 : return 3187; /* *sse2_vmsminv2df3 */
13685 :
13686 : default:
13687 : return -1;
13688 : }
13689 : }
13690 :
13691 : int
13692 : recog_213 (rtx x1 ATTRIBUTE_UNUSED,
13693 : rtx_insn *insn ATTRIBUTE_UNUSED,
13694 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13695 : {
13696 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13697 : rtx x2, x3;
13698 : int res ATTRIBUTE_UNUSED;
13699 : x2 = XEXP (x1, 1);
13700 : x3 = XVECEXP (x2, 0, 0);
13701 : operands[1] = x3;
13702 : switch (GET_MODE (operands[0]))
13703 : {
13704 : case E_V8HImode:
13705 : if (!register_operand (operands[0], E_V8HImode)
13706 : || GET_MODE (x2) != E_V8HImode
13707 : || !vector_operand (operands[1], E_V8HFmode)
13708 : || !(
13709 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13710 : (TARGET_AVX512FP16) &&
13711 : #line 687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13712 : (TARGET_AVX512VL)))
13713 : return -1;
13714 : return 4607; /* unspec_avx512fp16_fixuns_truncv8hi2 */
13715 :
13716 : case E_V16HImode:
13717 : if (!register_operand (operands[0], E_V16HImode)
13718 : || GET_MODE (x2) != E_V16HImode
13719 : || !vector_operand (operands[1], E_V16HFmode)
13720 : || !(
13721 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13722 : (TARGET_AVX512FP16) &&
13723 : #line 687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13724 : (TARGET_AVX512VL)))
13725 : return -1;
13726 : return 4615; /* unspec_avx512fp16_fixuns_truncv16hi2 */
13727 :
13728 : case E_V32HImode:
13729 : if (!register_operand (operands[0], E_V32HImode)
13730 : || GET_MODE (x2) != E_V32HImode
13731 : || !vector_operand (operands[1], E_V32HFmode)
13732 : || !
13733 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13734 : (TARGET_AVX512FP16))
13735 : return -1;
13736 : return 4623; /* unspec_avx512fp16_fixuns_truncv32hi2 */
13737 :
13738 : case E_V8SImode:
13739 : if (!register_operand (operands[0], E_V8SImode)
13740 : || GET_MODE (x2) != E_V8SImode)
13741 : return -1;
13742 : switch (GET_MODE (operands[1]))
13743 : {
13744 : case E_V8HFmode:
13745 : if (!vector_operand (operands[1], E_V8HFmode)
13746 : || !(
13747 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13748 : (TARGET_AVX512FP16) &&
13749 : #line 688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13750 : (TARGET_AVX512VL)))
13751 : return -1;
13752 : return 4631; /* unspec_avx512fp16_fixuns_truncv8si2 */
13753 :
13754 : case E_V8DFmode:
13755 : if (!vector_operand (operands[1], E_V8DFmode)
13756 : || !
13757 : #line 9890 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13758 : (TARGET_AVX512F))
13759 : return -1;
13760 : return 5062; /* unspec_fixuns_truncv8dfv8si2 */
13761 :
13762 : case E_V8SFmode:
13763 : if (!nonimmediate_operand (operands[1], E_V8SFmode)
13764 : || !(
13765 : #line 10233 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13766 : (TARGET_AVX512VL) &&
13767 : #line 444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13768 : (TARGET_AVX)))
13769 : return -1;
13770 : return 5167; /* *unspec_fixuns_truncv8sfv8si2 */
13771 :
13772 : default:
13773 : return -1;
13774 : }
13775 :
13776 : case E_V16SImode:
13777 : switch (pattern653 (x2,
13778 : E_V16SImode))
13779 : {
13780 : case 0:
13781 : if (!
13782 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13783 : (TARGET_AVX512FP16))
13784 : return -1;
13785 : return 4639; /* unspec_avx512fp16_fixuns_truncv16si2 */
13786 :
13787 : case 1:
13788 : if (!
13789 : #line 9097 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13790 : (TARGET_AVX512F))
13791 : return -1;
13792 : return 4913; /* unspec_fixuns_truncv16sfv16si2 */
13793 :
13794 : default:
13795 : return -1;
13796 : }
13797 :
13798 : case E_V8DImode:
13799 : switch (pattern654 (x2))
13800 : {
13801 : case 0:
13802 : if (!
13803 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13804 : (TARGET_AVX512FP16))
13805 : return -1;
13806 : return 4647; /* unspec_avx512fp16_fixuns_truncv8di2 */
13807 :
13808 : case 1:
13809 : if (!
13810 : #line 10019 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13811 : (TARGET_AVX512DQ && 1))
13812 : return -1;
13813 : return 5091; /* unspec_fixuns_truncv8dfv8di2 */
13814 :
13815 : case 2:
13816 : if (!
13817 : #line 10062 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13818 : (TARGET_AVX512DQ && 1))
13819 : return -1;
13820 : return 5139; /* unspec_fixuns_truncv8sfv8di2 */
13821 :
13822 : default:
13823 : return -1;
13824 : }
13825 :
13826 : case E_V4SImode:
13827 : if (!register_operand (operands[0], E_V4SImode)
13828 : || GET_MODE (x2) != E_V4SImode)
13829 : return -1;
13830 : switch (GET_MODE (operands[1]))
13831 : {
13832 : case E_V8HFmode:
13833 : if (!register_operand (operands[1], E_V8HFmode)
13834 : || !
13835 : #line 8240 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13836 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
13837 : return -1;
13838 : return 4701; /* unspec_avx512fp16_fixuns_truncv4si2 */
13839 :
13840 : case E_V4DFmode:
13841 : if (!nonimmediate_operand (operands[1], E_V4DFmode)
13842 : || !
13843 : #line 9999 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13844 : (TARGET_AVX512VL && TARGET_AVX512F))
13845 : return -1;
13846 : return 5083; /* unspec_fixuns_truncv4dfv4si2 */
13847 :
13848 : case E_V4SFmode:
13849 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
13850 : || !
13851 : #line 10233 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13852 : (TARGET_AVX512VL))
13853 : return -1;
13854 : return 5169; /* *unspec_fixuns_truncv4sfv4si2 */
13855 :
13856 : default:
13857 : return -1;
13858 : }
13859 :
13860 : case E_V4DImode:
13861 : switch (pattern655 (x2))
13862 : {
13863 : case 0:
13864 : if (!
13865 : #line 8240 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13866 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
13867 : return -1;
13868 : return 4705; /* unspec_avx512fp16_fixuns_truncv4di2 */
13869 :
13870 : case 1:
13871 : if (!(
13872 : #line 10019 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13873 : (TARGET_AVX512DQ && 1) &&
13874 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13875 : (TARGET_AVX512VL)))
13876 : return -1;
13877 : return 5097; /* unspec_fixuns_truncv4dfv4di2 */
13878 :
13879 : case 2:
13880 : if (!(
13881 : #line 10062 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13882 : (TARGET_AVX512DQ && 1) &&
13883 : #line 620 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13884 : (TARGET_AVX512VL)))
13885 : return -1;
13886 : return 5145; /* unspec_fixuns_truncv4sfv4di2 */
13887 :
13888 : default:
13889 : return -1;
13890 : }
13891 :
13892 : case E_V2DImode:
13893 : switch (pattern656 (x2))
13894 : {
13895 : case 0:
13896 : if (!
13897 : #line 8290 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13898 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
13899 : return -1;
13900 : return 4725; /* unspec_avx512fp16_fixuns_truncv2di2 */
13901 :
13902 : case 1:
13903 : if (!(
13904 : #line 10019 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13905 : (TARGET_AVX512DQ && 1) &&
13906 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13907 : (TARGET_AVX512VL)))
13908 : return -1;
13909 : return 5101; /* unspec_fixuns_truncv2dfv2di2 */
13910 :
13911 : case 2:
13912 : if (!
13913 : #line 10083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13914 : (TARGET_AVX512DQ && TARGET_AVX512VL))
13915 : return -1;
13916 : return 5161; /* unspec_avx512dq_fixuns_truncv2sfv2di2 */
13917 :
13918 : default:
13919 : return -1;
13920 : }
13921 :
13922 : default:
13923 : return -1;
13924 : }
13925 : }
13926 :
13927 : int
13928 : recog_228 (rtx x1 ATTRIBUTE_UNUSED,
13929 : rtx_insn *insn ATTRIBUTE_UNUSED,
13930 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13931 : {
13932 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13933 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
13934 : rtx x10, x11, x12;
13935 : int res ATTRIBUTE_UNUSED;
13936 : x2 = XEXP (x1, 1);
13937 : x3 = XVECEXP (x2, 0, 0);
13938 : x4 = XEXP (x3, 0);
13939 : x5 = XEXP (x4, 1);
13940 : operands[2] = x5;
13941 : x6 = XVECEXP (x2, 0, 1);
13942 : if (!const_4_or_8_to_11_operand (x6, E_SImode))
13943 : return -1;
13944 : x7 = XEXP (x4, 0);
13945 : switch (GET_CODE (x7))
13946 : {
13947 : case REG:
13948 : case SUBREG:
13949 : case MEM:
13950 : return recog_226 (x1, insn, pnum_clobbers);
13951 :
13952 : case NEG:
13953 : x8 = XEXP (x7, 0);
13954 : operands[1] = x8;
13955 : x9 = XEXP (x4, 2);
13956 : switch (GET_CODE (x9))
13957 : {
13958 : case REG:
13959 : case SUBREG:
13960 : case MEM:
13961 : operands[3] = x9;
13962 : x10 = XEXP (x3, 1);
13963 : switch (GET_CODE (x10))
13964 : {
13965 : case CONST_INT:
13966 : case CONST_DOUBLE:
13967 : case CONST_VECTOR:
13968 : operands[4] = x10;
13969 : x11 = XEXP (x3, 2);
13970 : operands[5] = x11;
13971 : operands[6] = x6;
13972 : switch (GET_MODE (operands[0]))
13973 : {
13974 : case E_V32HFmode:
13975 : if (pattern1608 (x2,
13976 : E_SImode,
13977 : E_V32HFmode) != 0
13978 : || !(
13979 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13980 : (TARGET_AVX512F) && (
13981 : #line 6498 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13982 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V32HFmode == V16SFmode
13983 : || V32HFmode == V8DFmode
13984 : || V32HFmode == V8DImode
13985 : || V32HFmode == V16SImode
13986 : || V32HFmode == V32HFmode)) &&
13987 : #line 6276 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13988 : (TARGET_AVX512FP16))))
13989 : return -1;
13990 : return 4004; /* fma_fnmadd_v32hf_maskz_1_round */
13991 :
13992 : case E_V16SFmode:
13993 : if (pattern1608 (x2,
13994 : E_HImode,
13995 : E_V16SFmode) != 0
13996 : || !(
13997 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13998 : (TARGET_AVX512F) &&
13999 : #line 6498 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14000 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V16SFmode == V16SFmode
14001 : || V16SFmode == V8DFmode
14002 : || V16SFmode == V8DImode
14003 : || V16SFmode == V16SImode
14004 : || V16SFmode == V32HFmode))))
14005 : return -1;
14006 : return 4014; /* fma_fnmadd_v16sf_maskz_1_round */
14007 :
14008 : case E_V8DFmode:
14009 : if (pattern1608 (x2,
14010 : E_QImode,
14011 : E_V8DFmode) != 0
14012 : || !(
14013 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14014 : (TARGET_AVX512F) &&
14015 : #line 6498 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14016 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V8DFmode == V16SFmode
14017 : || V8DFmode == V8DFmode
14018 : || V8DFmode == V8DImode
14019 : || V8DFmode == V16SImode
14020 : || V8DFmode == V32HFmode))))
14021 : return -1;
14022 : return 4023; /* fma_fnmadd_v8df_maskz_1_round */
14023 :
14024 : default:
14025 : return -1;
14026 : }
14027 :
14028 : case REG:
14029 : case SUBREG:
14030 : case MEM:
14031 : x11 = XEXP (x3, 2);
14032 : switch (GET_CODE (x11))
14033 : {
14034 : case REG:
14035 : case SUBREG:
14036 : operands[4] = x11;
14037 : operands[5] = x6;
14038 : switch (GET_MODE (operands[0]))
14039 : {
14040 : case E_V32HFmode:
14041 : if (pattern1609 (x2,
14042 : E_SImode,
14043 : E_V32HFmode) != 0)
14044 : return -1;
14045 : if (nonimmediate_operand (operands[1], E_V32HFmode)
14046 : && register_operand (operands[3], E_V32HFmode)
14047 : && rtx_equal_p (x10, operands[1])
14048 : && (
14049 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14050 : (TARGET_AVX512F) && (
14051 : #line 6541 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14052 : (TARGET_AVX512F && (V32HFmode == V16SFmode
14053 : || V32HFmode == V8DFmode
14054 : || V32HFmode == V8DImode
14055 : || V32HFmode == V16SImode
14056 : || V32HFmode == V32HFmode)) &&
14057 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14058 : (TARGET_AVX512FP16))))
14059 : return 4029; /* avx512bw_fnmadd_v32hf_mask_round */
14060 : if (!register_operand (operands[1], E_V32HFmode)
14061 : || !nonimmediate_operand (operands[3], E_V32HFmode)
14062 : || !rtx_equal_p (x10, operands[3])
14063 : || !(
14064 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14065 : (TARGET_AVX512F) && (
14066 : #line 6559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14067 : (TARGET_AVX512F && (V32HFmode == V16SFmode
14068 : || V32HFmode == V8DFmode
14069 : || V32HFmode == V8DImode
14070 : || V32HFmode == V16SImode
14071 : || V32HFmode == V32HFmode)) &&
14072 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14073 : (TARGET_AVX512FP16))))
14074 : return -1;
14075 : return 4041; /* avx512bw_fnmadd_v32hf_mask3_round */
14076 :
14077 : case E_V16SFmode:
14078 : if (pattern1609 (x2,
14079 : E_HImode,
14080 : E_V16SFmode) != 0)
14081 : return -1;
14082 : if (nonimmediate_operand (operands[1], E_V16SFmode)
14083 : && register_operand (operands[3], E_V16SFmode)
14084 : && rtx_equal_p (x10, operands[1])
14085 : && (
14086 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14087 : (TARGET_AVX512F) &&
14088 : #line 6541 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14089 : (TARGET_AVX512F && (V16SFmode == V16SFmode
14090 : || V16SFmode == V8DFmode
14091 : || V16SFmode == V8DImode
14092 : || V16SFmode == V16SImode
14093 : || V16SFmode == V32HFmode))))
14094 : return 4033; /* avx512f_fnmadd_v16sf_mask_round */
14095 : if (!register_operand (operands[1], E_V16SFmode)
14096 : || !nonimmediate_operand (operands[3], E_V16SFmode)
14097 : || !rtx_equal_p (x10, operands[3])
14098 : || !(
14099 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14100 : (TARGET_AVX512F) &&
14101 : #line 6559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14102 : (TARGET_AVX512F && (V16SFmode == V16SFmode
14103 : || V16SFmode == V8DFmode
14104 : || V16SFmode == V8DImode
14105 : || V16SFmode == V16SImode
14106 : || V16SFmode == V32HFmode))))
14107 : return -1;
14108 : return 4045; /* avx512f_fnmadd_v16sf_mask3_round */
14109 :
14110 : case E_V8DFmode:
14111 : if (pattern1609 (x2,
14112 : E_QImode,
14113 : E_V8DFmode) != 0)
14114 : return -1;
14115 : if (nonimmediate_operand (operands[1], E_V8DFmode)
14116 : && register_operand (operands[3], E_V8DFmode)
14117 : && rtx_equal_p (x10, operands[1])
14118 : && (
14119 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14120 : (TARGET_AVX512F) &&
14121 : #line 6541 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14122 : (TARGET_AVX512F && (V8DFmode == V16SFmode
14123 : || V8DFmode == V8DFmode
14124 : || V8DFmode == V8DImode
14125 : || V8DFmode == V16SImode
14126 : || V8DFmode == V32HFmode))))
14127 : return 4037; /* avx512f_fnmadd_v8df_mask_round */
14128 : if (!register_operand (operands[1], E_V8DFmode)
14129 : || !nonimmediate_operand (operands[3], E_V8DFmode)
14130 : || !rtx_equal_p (x10, operands[3])
14131 : || !(
14132 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14133 : (TARGET_AVX512F) &&
14134 : #line 6559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14135 : (TARGET_AVX512F && (V8DFmode == V16SFmode
14136 : || V8DFmode == V8DFmode
14137 : || V8DFmode == V8DImode
14138 : || V8DFmode == V16SImode
14139 : || V8DFmode == V32HFmode))))
14140 : return -1;
14141 : return 4049; /* avx512f_fnmadd_v8df_mask3_round */
14142 :
14143 : default:
14144 : return -1;
14145 : }
14146 :
14147 : case CONST_INT:
14148 : if (XWINT (x11, 0) != 1L)
14149 : return -1;
14150 : operands[4] = x6;
14151 : if (!rtx_equal_p (x10, operands[1]))
14152 : return -1;
14153 : switch (GET_MODE (operands[0]))
14154 : {
14155 : case E_V8HFmode:
14156 : if (pattern1668 (x2,
14157 : E_V8HFmode) != 0
14158 : || !(
14159 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14160 : (TARGET_AVX512F) && (
14161 : #line 6979 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14162 : (TARGET_FMA || TARGET_AVX512F) &&
14163 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14164 : (TARGET_AVX512FP16))))
14165 : return -1;
14166 : return 4270; /* *fmai_fnmadd_v8hf_round */
14167 :
14168 : case E_V4SFmode:
14169 : if (pattern1668 (x2,
14170 : E_V4SFmode) != 0
14171 : || !(
14172 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14173 : (TARGET_AVX512F) &&
14174 : #line 6979 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14175 : (TARGET_FMA || TARGET_AVX512F)))
14176 : return -1;
14177 : return 4272; /* *fmai_fnmadd_v4sf_round */
14178 :
14179 : case E_V2DFmode:
14180 : if (pattern1668 (x2,
14181 : E_V2DFmode) != 0
14182 : || !(
14183 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14184 : (TARGET_AVX512F) && (
14185 : #line 6979 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14186 : (TARGET_FMA || TARGET_AVX512F) &&
14187 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14188 : (TARGET_SSE2))))
14189 : return -1;
14190 : return 4274; /* *fmai_fnmadd_v2df_round */
14191 :
14192 : default:
14193 : return -1;
14194 : }
14195 :
14196 : default:
14197 : return -1;
14198 : }
14199 :
14200 : default:
14201 : return -1;
14202 : }
14203 :
14204 : case NEG:
14205 : x12 = XEXP (x9, 0);
14206 : operands[3] = x12;
14207 : x10 = XEXP (x3, 1);
14208 : switch (GET_CODE (x10))
14209 : {
14210 : case CONST_INT:
14211 : case CONST_DOUBLE:
14212 : case CONST_VECTOR:
14213 : operands[4] = x10;
14214 : x11 = XEXP (x3, 2);
14215 : operands[5] = x11;
14216 : operands[6] = x6;
14217 : switch (GET_MODE (operands[0]))
14218 : {
14219 : case E_V4SFmode:
14220 : if (pattern1610 (x2,
14221 : E_V4SFmode) != 0
14222 : || !(
14223 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14224 : (TARGET_AVX512F) &&
14225 : #line 6573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14226 : (TARGET_FMA || TARGET_FMA4)))
14227 : return -1;
14228 : return 4059; /* *fma_fnmsub_v4sf */
14229 :
14230 : case E_V2DFmode:
14231 : if (pattern1610 (x2,
14232 : E_V2DFmode) != 0
14233 : || !(
14234 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14235 : (TARGET_AVX512F) &&
14236 : #line 6573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14237 : (TARGET_FMA || TARGET_FMA4)))
14238 : return -1;
14239 : return 4063; /* *fma_fnmsub_v2df */
14240 :
14241 : case E_V8SFmode:
14242 : if (pattern1610 (x2,
14243 : E_V8SFmode) != 0
14244 : || !(
14245 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14246 : (TARGET_AVX512F) &&
14247 : #line 6573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14248 : (TARGET_FMA || TARGET_FMA4)))
14249 : return -1;
14250 : return 4067; /* *fma_fnmsub_v8sf */
14251 :
14252 : case E_V4DFmode:
14253 : if (pattern1610 (x2,
14254 : E_V4DFmode) != 0
14255 : || !(
14256 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14257 : (TARGET_AVX512F) &&
14258 : #line 6573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14259 : (TARGET_FMA || TARGET_FMA4)))
14260 : return -1;
14261 : return 4071; /* *fma_fnmsub_v4df */
14262 :
14263 : case E_V32HFmode:
14264 : if (pattern1611 (x2,
14265 : E_SImode,
14266 : E_V32HFmode) != 0
14267 : || !(
14268 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14269 : (TARGET_AVX512F) && (
14270 : #line 6606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14271 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V32HFmode == V16SFmode
14272 : || V32HFmode == V8DFmode
14273 : || V32HFmode == V8DImode
14274 : || V32HFmode == V16SImode
14275 : || V32HFmode == V32HFmode)) &&
14276 : #line 6276 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14277 : (TARGET_AVX512FP16))))
14278 : return -1;
14279 : return 4075; /* fma_fnmsub_v32hf_maskz_1_round */
14280 :
14281 : case E_V16SFmode:
14282 : if (pattern1611 (x2,
14283 : E_HImode,
14284 : E_V16SFmode) != 0
14285 : || !(
14286 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14287 : (TARGET_AVX512F) &&
14288 : #line 6606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14289 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V16SFmode == V16SFmode
14290 : || V16SFmode == V8DFmode
14291 : || V16SFmode == V8DImode
14292 : || V16SFmode == V16SImode
14293 : || V16SFmode == V32HFmode))))
14294 : return -1;
14295 : return 4085; /* fma_fnmsub_v16sf_maskz_1_round */
14296 :
14297 : case E_V8DFmode:
14298 : if (pattern1611 (x2,
14299 : E_QImode,
14300 : E_V8DFmode) != 0
14301 : || !(
14302 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14303 : (TARGET_AVX512F) &&
14304 : #line 6606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14305 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V8DFmode == V16SFmode
14306 : || V8DFmode == V8DFmode
14307 : || V8DFmode == V8DImode
14308 : || V8DFmode == V16SImode
14309 : || V8DFmode == V32HFmode))))
14310 : return -1;
14311 : return 4094; /* fma_fnmsub_v8df_maskz_1_round */
14312 :
14313 : default:
14314 : return -1;
14315 : }
14316 :
14317 : case REG:
14318 : case SUBREG:
14319 : case MEM:
14320 : switch (pattern1419 (x2))
14321 : {
14322 : case 0:
14323 : if (pattern1612 (x2,
14324 : E_SImode,
14325 : E_V32HFmode) != 0)
14326 : return -1;
14327 : if (nonimmediate_operand (operands[1], E_V32HFmode)
14328 : && register_operand (operands[3], E_V32HFmode)
14329 : && rtx_equal_p (x10, operands[1])
14330 : && (
14331 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14332 : (TARGET_AVX512F) && (
14333 : #line 6651 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14334 : (TARGET_AVX512F && (V32HFmode == V16SFmode
14335 : || V32HFmode == V8DFmode
14336 : || V32HFmode == V8DImode
14337 : || V32HFmode == V16SImode
14338 : || V32HFmode == V32HFmode)) &&
14339 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14340 : (TARGET_AVX512FP16))))
14341 : return 4100; /* avx512bw_fnmsub_v32hf_mask_round */
14342 : if (!register_operand (operands[1], E_V32HFmode)
14343 : || !nonimmediate_operand (operands[3], E_V32HFmode)
14344 : || !rtx_equal_p (x10, operands[3])
14345 : || !(
14346 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14347 : (TARGET_AVX512F) && (
14348 : #line 6670 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14349 : (TARGET_AVX512F) &&
14350 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14351 : (TARGET_AVX512FP16))))
14352 : return -1;
14353 : return 4112; /* avx512bw_fnmsub_v32hf_mask3_round */
14354 :
14355 : case 1:
14356 : if (pattern1612 (x2,
14357 : E_HImode,
14358 : E_V16SFmode) != 0)
14359 : return -1;
14360 : if (nonimmediate_operand (operands[1], E_V16SFmode)
14361 : && register_operand (operands[3], E_V16SFmode)
14362 : && rtx_equal_p (x10, operands[1])
14363 : && (
14364 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14365 : (TARGET_AVX512F) &&
14366 : #line 6651 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14367 : (TARGET_AVX512F && (V16SFmode == V16SFmode
14368 : || V16SFmode == V8DFmode
14369 : || V16SFmode == V8DImode
14370 : || V16SFmode == V16SImode
14371 : || V16SFmode == V32HFmode))))
14372 : return 4104; /* avx512f_fnmsub_v16sf_mask_round */
14373 : if (!register_operand (operands[1], E_V16SFmode)
14374 : || !nonimmediate_operand (operands[3], E_V16SFmode)
14375 : || !rtx_equal_p (x10, operands[3])
14376 : || !
14377 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14378 : (TARGET_AVX512F))
14379 : return -1;
14380 : return 4118; /* avx512f_fnmsub_v16sf_mask3_round */
14381 :
14382 : case 2:
14383 : if (pattern1612 (x2,
14384 : E_QImode,
14385 : E_V8DFmode) != 0)
14386 : return -1;
14387 : if (nonimmediate_operand (operands[1], E_V8DFmode)
14388 : && register_operand (operands[3], E_V8DFmode)
14389 : && rtx_equal_p (x10, operands[1])
14390 : && (
14391 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14392 : (TARGET_AVX512F) &&
14393 : #line 6651 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14394 : (TARGET_AVX512F && (V8DFmode == V16SFmode
14395 : || V8DFmode == V8DFmode
14396 : || V8DFmode == V8DImode
14397 : || V8DFmode == V16SImode
14398 : || V8DFmode == V32HFmode))))
14399 : return 4108; /* avx512f_fnmsub_v8df_mask_round */
14400 : if (!register_operand (operands[1], E_V8DFmode)
14401 : || !nonimmediate_operand (operands[3], E_V8DFmode)
14402 : || !rtx_equal_p (x10, operands[3])
14403 : || !
14404 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14405 : (TARGET_AVX512F))
14406 : return -1;
14407 : return 4124; /* avx512f_fnmsub_v8df_mask3_round */
14408 :
14409 : case 3:
14410 : if (pattern1613 (x2,
14411 : E_V16HFmode,
14412 : E_HImode) != 0
14413 : || !(
14414 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14415 : (TARGET_AVX512F) && (
14416 : #line 6670 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14417 : (TARGET_AVX512F) &&
14418 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14419 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14420 : return -1;
14421 : return 4114; /* avx512vl_fnmsub_v16hf_mask3_round */
14422 :
14423 : case 4:
14424 : if (pattern1613 (x2,
14425 : E_V8HFmode,
14426 : E_QImode) != 0
14427 : || !(
14428 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14429 : (TARGET_AVX512F) && (
14430 : #line 6670 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14431 : (TARGET_AVX512F) &&
14432 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14433 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14434 : return -1;
14435 : return 4116; /* avx512fp16_fnmsub_v8hf_mask3_round */
14436 :
14437 : case 5:
14438 : if (pattern1613 (x2,
14439 : E_V8SFmode,
14440 : E_QImode) != 0
14441 : || !(
14442 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14443 : (TARGET_AVX512F) && (
14444 : #line 6670 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14445 : (TARGET_AVX512F) &&
14446 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14447 : (TARGET_AVX512VL))))
14448 : return -1;
14449 : return 4120; /* avx512vl_fnmsub_v8sf_mask3_round */
14450 :
14451 : case 6:
14452 : if (pattern1613 (x2,
14453 : E_V4SFmode,
14454 : E_QImode) != 0
14455 : || !(
14456 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14457 : (TARGET_AVX512F) && (
14458 : #line 6670 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14459 : (TARGET_AVX512F) &&
14460 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14461 : (TARGET_AVX512VL))))
14462 : return -1;
14463 : return 4122; /* avx512vl_fnmsub_v4sf_mask3_round */
14464 :
14465 : case 7:
14466 : if (pattern1613 (x2,
14467 : E_V4DFmode,
14468 : E_QImode) != 0
14469 : || !(
14470 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14471 : (TARGET_AVX512F) && (
14472 : #line 6670 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14473 : (TARGET_AVX512F) &&
14474 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14475 : (TARGET_AVX512VL))))
14476 : return -1;
14477 : return 4126; /* avx512vl_fnmsub_v4df_mask3_round */
14478 :
14479 : case 8:
14480 : if (pattern1613 (x2,
14481 : E_V2DFmode,
14482 : E_QImode) != 0
14483 : || !(
14484 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14485 : (TARGET_AVX512F) && (
14486 : #line 6670 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14487 : (TARGET_AVX512F) &&
14488 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14489 : (TARGET_AVX512VL))))
14490 : return -1;
14491 : return 4128; /* avx512vl_fnmsub_v2df_mask3_round */
14492 :
14493 : case 9:
14494 : if (pattern1669 (x2,
14495 : E_V8HFmode) != 0
14496 : || !(
14497 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14498 : (TARGET_AVX512F) && (
14499 : #line 6998 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14500 : (TARGET_FMA || TARGET_AVX512F) &&
14501 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14502 : (TARGET_AVX512FP16))))
14503 : return -1;
14504 : return 4276; /* *fmai_fnmsub_v8hf_round */
14505 :
14506 : case 10:
14507 : if (pattern1669 (x2,
14508 : E_V4SFmode) != 0
14509 : || !(
14510 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14511 : (TARGET_AVX512F) &&
14512 : #line 6998 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14513 : (TARGET_FMA || TARGET_AVX512F)))
14514 : return -1;
14515 : return 4278; /* *fmai_fnmsub_v4sf_round */
14516 :
14517 : case 11:
14518 : if (pattern1669 (x2,
14519 : E_V2DFmode) != 0
14520 : || !(
14521 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14522 : (TARGET_AVX512F) && (
14523 : #line 6998 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14524 : (TARGET_FMA || TARGET_AVX512F) &&
14525 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14526 : (TARGET_SSE2))))
14527 : return -1;
14528 : return 4280; /* *fmai_fnmsub_v2df_round */
14529 :
14530 : default:
14531 : return -1;
14532 : }
14533 :
14534 : default:
14535 : return -1;
14536 : }
14537 :
14538 : default:
14539 : return -1;
14540 : }
14541 :
14542 : default:
14543 : return -1;
14544 : }
14545 : }
14546 :
14547 : int
14548 : recog_235 (rtx x1 ATTRIBUTE_UNUSED,
14549 : rtx_insn *insn ATTRIBUTE_UNUSED,
14550 : int *pnum_clobbers ATTRIBUTE_UNUSED)
14551 : {
14552 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
14553 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
14554 : int res ATTRIBUTE_UNUSED;
14555 : x2 = XEXP (x1, 0);
14556 : operands[0] = x2;
14557 : x3 = XEXP (x1, 1);
14558 : x4 = XVECEXP (x3, 0, 0);
14559 : switch (GET_CODE (x4))
14560 : {
14561 : case PLUS:
14562 : switch (pattern492 (x3))
14563 : {
14564 : case 0:
14565 : if (!(
14566 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14567 : (TARGET_AVX512F) && (
14568 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14569 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V32HFmode, operands)
14570 : && 1 && (V32HFmode == V16SFmode
14571 : || V32HFmode == V8DFmode
14572 : || V32HFmode == V8DImode
14573 : || V32HFmode == V16SImode
14574 : || V32HFmode == V32HFmode)) &&
14575 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14576 : (TARGET_AVX512FP16))))
14577 : return -1;
14578 : return 2746; /* *addv32hf3_round */
14579 :
14580 : case 1:
14581 : if (!(
14582 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14583 : (TARGET_AVX512F) && (
14584 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14585 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V16HFmode, operands)
14586 : && 1 && (V16HFmode == V16SFmode
14587 : || V16HFmode == V8DFmode
14588 : || V16HFmode == V8DImode
14589 : || V16HFmode == V16SImode
14590 : || V16HFmode == V32HFmode)) &&
14591 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14592 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14593 : return -1;
14594 : return 2754; /* *addv16hf3_round */
14595 :
14596 : case 2:
14597 : if (!(
14598 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14599 : (TARGET_AVX512F) && (
14600 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14601 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V8HFmode, operands)
14602 : && 1 && (V8HFmode == V16SFmode
14603 : || V8HFmode == V8DFmode
14604 : || V8HFmode == V8DImode
14605 : || V8HFmode == V16SImode
14606 : || V8HFmode == V32HFmode)) &&
14607 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14608 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14609 : return -1;
14610 : return 2762; /* *addv8hf3_round */
14611 :
14612 : case 3:
14613 : if (!(
14614 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14615 : (TARGET_AVX512F) && (
14616 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14617 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V16SFmode, operands)
14618 : && 1 && (V16SFmode == V16SFmode
14619 : || V16SFmode == V8DFmode
14620 : || V16SFmode == V8DImode
14621 : || V16SFmode == V16SImode
14622 : || V16SFmode == V32HFmode)) &&
14623 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14624 : (TARGET_AVX512F))))
14625 : return -1;
14626 : return 2770; /* *addv16sf3_round */
14627 :
14628 : case 4:
14629 : if (!(
14630 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14631 : (TARGET_AVX512F) && (
14632 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14633 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V8SFmode, operands)
14634 : && 1 && (V8SFmode == V16SFmode
14635 : || V8SFmode == V8DFmode
14636 : || V8SFmode == V8DImode
14637 : || V8SFmode == V16SImode
14638 : || V8SFmode == V32HFmode)) &&
14639 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14640 : (TARGET_AVX))))
14641 : return -1;
14642 : return 2778; /* *addv8sf3_round */
14643 :
14644 : case 5:
14645 : if (!(
14646 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14647 : (TARGET_AVX512F) &&
14648 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14649 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V4SFmode, operands)
14650 : && 1 && (V4SFmode == V16SFmode
14651 : || V4SFmode == V8DFmode
14652 : || V4SFmode == V8DImode
14653 : || V4SFmode == V16SImode
14654 : || V4SFmode == V32HFmode))))
14655 : return -1;
14656 : return 2786; /* *addv4sf3_round */
14657 :
14658 : case 6:
14659 : if (!(
14660 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14661 : (TARGET_AVX512F) && (
14662 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14663 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V8DFmode, operands)
14664 : && 1 && (V8DFmode == V16SFmode
14665 : || V8DFmode == V8DFmode
14666 : || V8DFmode == V8DImode
14667 : || V8DFmode == V16SImode
14668 : || V8DFmode == V32HFmode)) &&
14669 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14670 : (TARGET_AVX512F))))
14671 : return -1;
14672 : return 2794; /* *addv8df3_round */
14673 :
14674 : case 7:
14675 : if (!(
14676 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14677 : (TARGET_AVX512F) && (
14678 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14679 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V4DFmode, operands)
14680 : && 1 && (V4DFmode == V16SFmode
14681 : || V4DFmode == V8DFmode
14682 : || V4DFmode == V8DImode
14683 : || V4DFmode == V16SImode
14684 : || V4DFmode == V32HFmode)) &&
14685 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14686 : (TARGET_AVX))))
14687 : return -1;
14688 : return 2802; /* *addv4df3_round */
14689 :
14690 : case 8:
14691 : if (!(
14692 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14693 : (TARGET_AVX512F) && (
14694 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14695 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V2DFmode, operands)
14696 : && 1 && (V2DFmode == V16SFmode
14697 : || V2DFmode == V8DFmode
14698 : || V2DFmode == V8DImode
14699 : || V2DFmode == V16SImode
14700 : || V2DFmode == V32HFmode)) &&
14701 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14702 : (TARGET_SSE2))))
14703 : return -1;
14704 : return 2810; /* *addv2df3_round */
14705 :
14706 : default:
14707 : return -1;
14708 : }
14709 :
14710 : case VEC_MERGE:
14711 : return recog_232 (x1, insn, pnum_clobbers);
14712 :
14713 : case MINUS:
14714 : switch (pattern492 (x3))
14715 : {
14716 : case 0:
14717 : if (!(
14718 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14719 : (TARGET_AVX512F) && (
14720 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14721 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V32HFmode, operands)
14722 : && 1 && (V32HFmode == V16SFmode
14723 : || V32HFmode == V8DFmode
14724 : || V32HFmode == V8DImode
14725 : || V32HFmode == V16SImode
14726 : || V32HFmode == V32HFmode)) &&
14727 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14728 : (TARGET_AVX512FP16))))
14729 : return -1;
14730 : return 2750; /* *subv32hf3_round */
14731 :
14732 : case 1:
14733 : if (!(
14734 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14735 : (TARGET_AVX512F) && (
14736 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14737 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V16HFmode, operands)
14738 : && 1 && (V16HFmode == V16SFmode
14739 : || V16HFmode == V8DFmode
14740 : || V16HFmode == V8DImode
14741 : || V16HFmode == V16SImode
14742 : || V16HFmode == V32HFmode)) &&
14743 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14744 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14745 : return -1;
14746 : return 2758; /* *subv16hf3_round */
14747 :
14748 : case 2:
14749 : if (!(
14750 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14751 : (TARGET_AVX512F) && (
14752 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14753 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V8HFmode, operands)
14754 : && 1 && (V8HFmode == V16SFmode
14755 : || V8HFmode == V8DFmode
14756 : || V8HFmode == V8DImode
14757 : || V8HFmode == V16SImode
14758 : || V8HFmode == V32HFmode)) &&
14759 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14760 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14761 : return -1;
14762 : return 2766; /* *subv8hf3_round */
14763 :
14764 : case 3:
14765 : if (!(
14766 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14767 : (TARGET_AVX512F) && (
14768 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14769 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V16SFmode, operands)
14770 : && 1 && (V16SFmode == V16SFmode
14771 : || V16SFmode == V8DFmode
14772 : || V16SFmode == V8DImode
14773 : || V16SFmode == V16SImode
14774 : || V16SFmode == V32HFmode)) &&
14775 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14776 : (TARGET_AVX512F))))
14777 : return -1;
14778 : return 2774; /* *subv16sf3_round */
14779 :
14780 : case 4:
14781 : if (!(
14782 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14783 : (TARGET_AVX512F) && (
14784 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14785 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V8SFmode, operands)
14786 : && 1 && (V8SFmode == V16SFmode
14787 : || V8SFmode == V8DFmode
14788 : || V8SFmode == V8DImode
14789 : || V8SFmode == V16SImode
14790 : || V8SFmode == V32HFmode)) &&
14791 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14792 : (TARGET_AVX))))
14793 : return -1;
14794 : return 2782; /* *subv8sf3_round */
14795 :
14796 : case 5:
14797 : if (!(
14798 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14799 : (TARGET_AVX512F) &&
14800 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14801 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V4SFmode, operands)
14802 : && 1 && (V4SFmode == V16SFmode
14803 : || V4SFmode == V8DFmode
14804 : || V4SFmode == V8DImode
14805 : || V4SFmode == V16SImode
14806 : || V4SFmode == V32HFmode))))
14807 : return -1;
14808 : return 2790; /* *subv4sf3_round */
14809 :
14810 : case 6:
14811 : if (!(
14812 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14813 : (TARGET_AVX512F) && (
14814 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14815 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V8DFmode, operands)
14816 : && 1 && (V8DFmode == V16SFmode
14817 : || V8DFmode == V8DFmode
14818 : || V8DFmode == V8DImode
14819 : || V8DFmode == V16SImode
14820 : || V8DFmode == V32HFmode)) &&
14821 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14822 : (TARGET_AVX512F))))
14823 : return -1;
14824 : return 2798; /* *subv8df3_round */
14825 :
14826 : case 7:
14827 : if (!(
14828 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14829 : (TARGET_AVX512F) && (
14830 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14831 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V4DFmode, operands)
14832 : && 1 && (V4DFmode == V16SFmode
14833 : || V4DFmode == V8DFmode
14834 : || V4DFmode == V8DImode
14835 : || V4DFmode == V16SImode
14836 : || V4DFmode == V32HFmode)) &&
14837 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14838 : (TARGET_AVX))))
14839 : return -1;
14840 : return 2806; /* *subv4df3_round */
14841 :
14842 : case 8:
14843 : if (!(
14844 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14845 : (TARGET_AVX512F) && (
14846 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14847 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V2DFmode, operands)
14848 : && 1 && (V2DFmode == V16SFmode
14849 : || V2DFmode == V8DFmode
14850 : || V2DFmode == V8DImode
14851 : || V2DFmode == V16SImode
14852 : || V2DFmode == V32HFmode)) &&
14853 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14854 : (TARGET_SSE2))))
14855 : return -1;
14856 : return 2814; /* *subv2df3_round */
14857 :
14858 : default:
14859 : return -1;
14860 : }
14861 :
14862 : case MULT:
14863 : switch (pattern492 (x3))
14864 : {
14865 : case 0:
14866 : if (!(
14867 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14868 : (TARGET_AVX512F) && (
14869 : #line 2773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14870 : (TARGET_SSE && ix86_binary_operator_ok (MULT, V32HFmode, operands)
14871 : && 1 && (V32HFmode == V16SFmode
14872 : || V32HFmode == V8DFmode
14873 : || V32HFmode == V8DImode
14874 : || V32HFmode == V16SImode
14875 : || V32HFmode == V32HFmode)) &&
14876 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14877 : (TARGET_AVX512FP16))))
14878 : return -1;
14879 : return 2848; /* *mulv32hf3_round */
14880 :
14881 : case 1:
14882 : if (!(
14883 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14884 : (TARGET_AVX512F) && (
14885 : #line 2773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14886 : (TARGET_SSE && ix86_binary_operator_ok (MULT, V16HFmode, operands)
14887 : && 1 && (V16HFmode == V16SFmode
14888 : || V16HFmode == V8DFmode
14889 : || V16HFmode == V8DImode
14890 : || V16HFmode == V16SImode
14891 : || V16HFmode == V32HFmode)) &&
14892 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14893 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14894 : return -1;
14895 : return 2852; /* *mulv16hf3_round */
14896 :
14897 : case 2:
14898 : if (!(
14899 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14900 : (TARGET_AVX512F) && (
14901 : #line 2773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14902 : (TARGET_SSE && ix86_binary_operator_ok (MULT, V8HFmode, operands)
14903 : && 1 && (V8HFmode == V16SFmode
14904 : || V8HFmode == V8DFmode
14905 : || V8HFmode == V8DImode
14906 : || V8HFmode == V16SImode
14907 : || V8HFmode == V32HFmode)) &&
14908 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14909 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14910 : return -1;
14911 : return 2856; /* *mulv8hf3_round */
14912 :
14913 : case 3:
14914 : if (!(
14915 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14916 : (TARGET_AVX512F) && (
14917 : #line 2773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14918 : (TARGET_SSE && ix86_binary_operator_ok (MULT, V16SFmode, operands)
14919 : && 1 && (V16SFmode == V16SFmode
14920 : || V16SFmode == V8DFmode
14921 : || V16SFmode == V8DImode
14922 : || V16SFmode == V16SImode
14923 : || V16SFmode == V32HFmode)) &&
14924 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14925 : (TARGET_AVX512F))))
14926 : return -1;
14927 : return 2860; /* *mulv16sf3_round */
14928 :
14929 : case 4:
14930 : if (!(
14931 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14932 : (TARGET_AVX512F) && (
14933 : #line 2773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14934 : (TARGET_SSE && ix86_binary_operator_ok (MULT, V8SFmode, operands)
14935 : && 1 && (V8SFmode == V16SFmode
14936 : || V8SFmode == V8DFmode
14937 : || V8SFmode == V8DImode
14938 : || V8SFmode == V16SImode
14939 : || V8SFmode == V32HFmode)) &&
14940 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14941 : (TARGET_AVX))))
14942 : return -1;
14943 : return 2864; /* *mulv8sf3_round */
14944 :
14945 : case 5:
14946 : if (!(
14947 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14948 : (TARGET_AVX512F) &&
14949 : #line 2773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14950 : (TARGET_SSE && ix86_binary_operator_ok (MULT, V4SFmode, operands)
14951 : && 1 && (V4SFmode == V16SFmode
14952 : || V4SFmode == V8DFmode
14953 : || V4SFmode == V8DImode
14954 : || V4SFmode == V16SImode
14955 : || V4SFmode == V32HFmode))))
14956 : return -1;
14957 : return 2868; /* *mulv4sf3_round */
14958 :
14959 : case 6:
14960 : if (!(
14961 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14962 : (TARGET_AVX512F) && (
14963 : #line 2773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14964 : (TARGET_SSE && ix86_binary_operator_ok (MULT, V8DFmode, operands)
14965 : && 1 && (V8DFmode == V16SFmode
14966 : || V8DFmode == V8DFmode
14967 : || V8DFmode == V8DImode
14968 : || V8DFmode == V16SImode
14969 : || V8DFmode == V32HFmode)) &&
14970 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14971 : (TARGET_AVX512F))))
14972 : return -1;
14973 : return 2872; /* *mulv8df3_round */
14974 :
14975 : case 7:
14976 : if (!(
14977 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14978 : (TARGET_AVX512F) && (
14979 : #line 2773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14980 : (TARGET_SSE && ix86_binary_operator_ok (MULT, V4DFmode, operands)
14981 : && 1 && (V4DFmode == V16SFmode
14982 : || V4DFmode == V8DFmode
14983 : || V4DFmode == V8DImode
14984 : || V4DFmode == V16SImode
14985 : || V4DFmode == V32HFmode)) &&
14986 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14987 : (TARGET_AVX))))
14988 : return -1;
14989 : return 2876; /* *mulv4df3_round */
14990 :
14991 : case 8:
14992 : if (!(
14993 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14994 : (TARGET_AVX512F) && (
14995 : #line 2773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14996 : (TARGET_SSE && ix86_binary_operator_ok (MULT, V2DFmode, operands)
14997 : && 1 && (V2DFmode == V16SFmode
14998 : || V2DFmode == V8DFmode
14999 : || V2DFmode == V8DImode
15000 : || V2DFmode == V16SImode
15001 : || V2DFmode == V32HFmode)) &&
15002 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15003 : (TARGET_SSE2))))
15004 : return -1;
15005 : return 2880; /* *mulv2df3_round */
15006 :
15007 : default:
15008 : return -1;
15009 : }
15010 :
15011 : case DIV:
15012 : x5 = XEXP (x4, 0);
15013 : operands[1] = x5;
15014 : x6 = XEXP (x4, 1);
15015 : operands[2] = x6;
15016 : x7 = XVECEXP (x3, 0, 1);
15017 : operands[3] = x7;
15018 : if (!const_4_or_8_to_11_operand (operands[3], E_SImode))
15019 : return -1;
15020 : switch (GET_MODE (operands[0]))
15021 : {
15022 : case E_V32HFmode:
15023 : if (pattern491 (x3,
15024 : E_V32HFmode) != 0
15025 : || !(
15026 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15027 : (TARGET_AVX512F) && (
15028 : #line 2922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15029 : (TARGET_SSE && 1 && (V32HFmode == V16SFmode
15030 : || V32HFmode == V8DFmode
15031 : || V32HFmode == V8DImode
15032 : || V32HFmode == V16SImode
15033 : || V32HFmode == V32HFmode)) &&
15034 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15035 : (TARGET_AVX512FP16))))
15036 : return -1;
15037 : return 2914; /* avx512fp16_divv32hf3_round */
15038 :
15039 : case E_V16SFmode:
15040 : if (pattern491 (x3,
15041 : E_V16SFmode) != 0
15042 : || !(
15043 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15044 : (TARGET_AVX512F) && (
15045 : #line 2922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15046 : (TARGET_SSE && 1 && (V16SFmode == V16SFmode
15047 : || V16SFmode == V8DFmode
15048 : || V16SFmode == V8DImode
15049 : || V16SFmode == V16SImode
15050 : || V16SFmode == V32HFmode)) &&
15051 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15052 : (TARGET_AVX512F))))
15053 : return -1;
15054 : return 2922; /* avx512f_divv16sf3_round */
15055 :
15056 : case E_V8DFmode:
15057 : if (pattern491 (x3,
15058 : E_V8DFmode) != 0
15059 : || !(
15060 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15061 : (TARGET_AVX512F) && (
15062 : #line 2922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15063 : (TARGET_SSE && 1 && (V8DFmode == V16SFmode
15064 : || V8DFmode == V8DFmode
15065 : || V8DFmode == V8DImode
15066 : || V8DFmode == V16SImode
15067 : || V8DFmode == V32HFmode)) &&
15068 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15069 : (TARGET_AVX512F))))
15070 : return -1;
15071 : return 2930; /* avx512f_divv8df3_round */
15072 :
15073 : default:
15074 : return -1;
15075 : }
15076 :
15077 : case SQRT:
15078 : x5 = XEXP (x4, 0);
15079 : operands[1] = x5;
15080 : x7 = XVECEXP (x3, 0, 1);
15081 : operands[2] = x7;
15082 : if (!const_4_or_8_to_11_operand (operands[2], E_SImode))
15083 : return -1;
15084 : switch (GET_MODE (operands[0]))
15085 : {
15086 : case E_V32HFmode:
15087 : if (pattern1024 (x3,
15088 : E_V32HFmode) != 0
15089 : || !(
15090 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15091 : (TARGET_AVX512F) && (
15092 : #line 3088 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15093 : (TARGET_SSE && 1 && (V32HFmode == V16SFmode
15094 : || V32HFmode == V8DFmode
15095 : || V32HFmode == V8DImode
15096 : || V32HFmode == V16SImode
15097 : || V32HFmode == V32HFmode)) &&
15098 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15099 : (TARGET_AVX512FP16))))
15100 : return -1;
15101 : return 2967; /* avx512fp16_sqrtv32hf2_round */
15102 :
15103 : case E_V16SFmode:
15104 : if (pattern1024 (x3,
15105 : E_V16SFmode) != 0
15106 : || !(
15107 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15108 : (TARGET_AVX512F) && (
15109 : #line 3088 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15110 : (TARGET_SSE && 1 && (V16SFmode == V16SFmode
15111 : || V16SFmode == V8DFmode
15112 : || V16SFmode == V8DImode
15113 : || V16SFmode == V16SImode
15114 : || V16SFmode == V32HFmode)) &&
15115 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15116 : (TARGET_AVX512F))))
15117 : return -1;
15118 : return 2975; /* avx512f_sqrtv16sf2_round */
15119 :
15120 : case E_V8DFmode:
15121 : if (pattern1024 (x3,
15122 : E_V8DFmode) != 0
15123 : || !(
15124 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15125 : (TARGET_AVX512F) && (
15126 : #line 3088 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15127 : (TARGET_SSE && 1 && (V8DFmode == V16SFmode
15128 : || V8DFmode == V8DFmode
15129 : || V8DFmode == V8DImode
15130 : || V8DFmode == V16SImode
15131 : || V8DFmode == V32HFmode)) &&
15132 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15133 : (TARGET_AVX512F))))
15134 : return -1;
15135 : return 2983; /* avx512f_sqrtv8df2_round */
15136 :
15137 : default:
15138 : return -1;
15139 : }
15140 :
15141 : case SMAX:
15142 : switch (pattern493 (x3))
15143 : {
15144 : case 0:
15145 : if (!(
15146 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15147 : (TARGET_AVX512F) && (
15148 : #line 3329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15149 : (TARGET_SSE
15150 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
15151 : && 1
15152 : && (V32HFmode == V16SFmode
15153 : || V32HFmode == V8DFmode
15154 : || V32HFmode == V8DImode
15155 : || V32HFmode == V16SImode
15156 : || V32HFmode == V32HFmode)) &&
15157 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15158 : (TARGET_AVX512FP16))))
15159 : return -1;
15160 : return 3045; /* *smaxv32hf3_round */
15161 :
15162 : case 1:
15163 : if (!(
15164 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15165 : (TARGET_AVX512F) && (
15166 : #line 3329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15167 : (TARGET_SSE
15168 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
15169 : && 1
15170 : && (V16SFmode == V16SFmode
15171 : || V16SFmode == V8DFmode
15172 : || V16SFmode == V8DImode
15173 : || V16SFmode == V16SImode
15174 : || V16SFmode == V32HFmode)) &&
15175 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15176 : (TARGET_AVX512F))))
15177 : return -1;
15178 : return 3061; /* *smaxv16sf3_round */
15179 :
15180 : case 2:
15181 : if (!(
15182 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15183 : (TARGET_AVX512F) && (
15184 : #line 3329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15185 : (TARGET_SSE
15186 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
15187 : && 1
15188 : && (V8DFmode == V16SFmode
15189 : || V8DFmode == V8DFmode
15190 : || V8DFmode == V8DImode
15191 : || V8DFmode == V16SImode
15192 : || V8DFmode == V32HFmode)) &&
15193 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15194 : (TARGET_AVX512F))))
15195 : return -1;
15196 : return 3077; /* *smaxv8df3_round */
15197 :
15198 : default:
15199 : return -1;
15200 : }
15201 :
15202 : case SMIN:
15203 : switch (pattern493 (x3))
15204 : {
15205 : case 0:
15206 : if (!(
15207 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15208 : (TARGET_AVX512F) && (
15209 : #line 3329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15210 : (TARGET_SSE
15211 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
15212 : && 1
15213 : && (V32HFmode == V16SFmode
15214 : || V32HFmode == V8DFmode
15215 : || V32HFmode == V8DImode
15216 : || V32HFmode == V16SImode
15217 : || V32HFmode == V32HFmode)) &&
15218 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15219 : (TARGET_AVX512FP16))))
15220 : return -1;
15221 : return 3049; /* *sminv32hf3_round */
15222 :
15223 : case 1:
15224 : if (!(
15225 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15226 : (TARGET_AVX512F) && (
15227 : #line 3329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15228 : (TARGET_SSE
15229 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
15230 : && 1
15231 : && (V16SFmode == V16SFmode
15232 : || V16SFmode == V8DFmode
15233 : || V16SFmode == V8DImode
15234 : || V16SFmode == V16SImode
15235 : || V16SFmode == V32HFmode)) &&
15236 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15237 : (TARGET_AVX512F))))
15238 : return -1;
15239 : return 3065; /* *sminv16sf3_round */
15240 :
15241 : case 2:
15242 : if (!(
15243 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15244 : (TARGET_AVX512F) && (
15245 : #line 3329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15246 : (TARGET_SSE
15247 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
15248 : && 1
15249 : && (V8DFmode == V16SFmode
15250 : || V8DFmode == V8DFmode
15251 : || V8DFmode == V8DImode
15252 : || V8DFmode == V16SImode
15253 : || V8DFmode == V32HFmode)) &&
15254 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15255 : (TARGET_AVX512F))))
15256 : return -1;
15257 : return 3081; /* *sminv8df3_round */
15258 :
15259 : default:
15260 : return -1;
15261 : }
15262 :
15263 : case UNSPEC:
15264 : return recog_233 (x1, insn, pnum_clobbers);
15265 :
15266 : case FMA:
15267 : return recog_234 (x1, insn, pnum_clobbers);
15268 :
15269 : case FLOAT:
15270 : x5 = XEXP (x4, 0);
15271 : operands[1] = x5;
15272 : x7 = XVECEXP (x3, 0, 1);
15273 : operands[2] = x7;
15274 : if (!const_4_or_8_to_11_operand (operands[2], E_SImode))
15275 : return -1;
15276 : switch (GET_MODE (operands[0]))
15277 : {
15278 : case E_V8HFmode:
15279 : switch (pattern1032 (x3))
15280 : {
15281 : case 0:
15282 : if (!(
15283 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15284 : (TARGET_AVX512F) && (
15285 : #line 7993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15286 : (TARGET_AVX512FP16) &&
15287 : #line 687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15288 : (TARGET_AVX512VL))))
15289 : return -1;
15290 : return 4518; /* avx512fp16_vcvtw2ph_v8hi_round */
15291 :
15292 : case 1:
15293 : if (!(
15294 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15295 : (TARGET_AVX512F) && (
15296 : #line 7993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15297 : (TARGET_AVX512FP16) &&
15298 : #line 688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15299 : (TARGET_AVX512VL))))
15300 : return -1;
15301 : return 4542; /* avx512fp16_vcvtdq2ph_v8si_round */
15302 :
15303 : case 2:
15304 : if (!(
15305 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15306 : (TARGET_AVX512F) &&
15307 : #line 7993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15308 : (TARGET_AVX512FP16)))
15309 : return -1;
15310 : return 4558; /* avx512fp16_vcvtqq2ph_v8di_round */
15311 :
15312 : default:
15313 : return -1;
15314 : }
15315 :
15316 : case E_V16HFmode:
15317 : switch (pattern1033 (x3))
15318 : {
15319 : case 0:
15320 : if (!(
15321 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15322 : (TARGET_AVX512F) && (
15323 : #line 7993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15324 : (TARGET_AVX512FP16) &&
15325 : #line 687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15326 : (TARGET_AVX512VL))))
15327 : return -1;
15328 : return 4526; /* avx512fp16_vcvtw2ph_v16hi_round */
15329 :
15330 : case 1:
15331 : if (!(
15332 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15333 : (TARGET_AVX512F) &&
15334 : #line 7993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15335 : (TARGET_AVX512FP16)))
15336 : return -1;
15337 : return 4550; /* avx512fp16_vcvtdq2ph_v16si_round */
15338 :
15339 : default:
15340 : return -1;
15341 : }
15342 :
15343 : case E_V32HFmode:
15344 : if (pattern494 (x3,
15345 : E_V32HImode,
15346 : E_V32HFmode) != 0
15347 : || !(
15348 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15349 : (TARGET_AVX512F) &&
15350 : #line 7993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15351 : (TARGET_AVX512FP16)))
15352 : return -1;
15353 : return 4534; /* avx512fp16_vcvtw2ph_v32hi_round */
15354 :
15355 : case E_V16SFmode:
15356 : if (pattern494 (x3,
15357 : E_V16SImode,
15358 : E_V16SFmode) != 0
15359 : || !(
15360 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15361 : (TARGET_AVX512F) && (
15362 : #line 8971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15363 : (TARGET_SSE2 && 1 && (V16SFmode == V16SFmode
15364 : || V16SFmode == V8DFmode
15365 : || V16SFmode == V8DImode
15366 : || V16SFmode == V16SImode
15367 : || V16SFmode == V32HFmode)) &&
15368 : #line 437 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15369 : (TARGET_AVX512F))))
15370 : return -1;
15371 : return 4854; /* floatv16siv16sf2_round */
15372 :
15373 : case E_V8DFmode:
15374 : if (pattern1034 (x3,
15375 : E_V8DImode,
15376 : E_V8DFmode) != 0
15377 : || !(
15378 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15379 : (TARGET_AVX512F) &&
15380 : #line 9504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15381 : (TARGET_AVX512DQ)))
15382 : return -1;
15383 : return 4986; /* floatv8div8df2_round */
15384 :
15385 : case E_V4DFmode:
15386 : if (pattern1034 (x3,
15387 : E_V4DImode,
15388 : E_V4DFmode) != 0
15389 : || !(
15390 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15391 : (TARGET_AVX512F) && (
15392 : #line 9504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15393 : (TARGET_AVX512DQ) &&
15394 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15395 : (TARGET_AVX512VL))))
15396 : return -1;
15397 : return 4994; /* floatv4div4df2_round */
15398 :
15399 : case E_V2DFmode:
15400 : if (pattern1034 (x3,
15401 : E_V2DImode,
15402 : E_V2DFmode) != 0
15403 : || !(
15404 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15405 : (TARGET_AVX512F) && (
15406 : #line 9504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15407 : (TARGET_AVX512DQ) &&
15408 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15409 : (TARGET_AVX512VL))))
15410 : return -1;
15411 : return 5002; /* floatv2div2df2_round */
15412 :
15413 : case E_V8SFmode:
15414 : if (pattern1034 (x3,
15415 : E_V8DImode,
15416 : E_V8SFmode) != 0
15417 : || !(
15418 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15419 : (TARGET_AVX512F) &&
15420 : #line 9518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15421 : (TARGET_AVX512DQ && (V8DImode == V16SFmode
15422 : || V8DImode == V8DFmode
15423 : || V8DImode == V8DImode
15424 : || V8DImode == V16SImode
15425 : || V8DImode == V32HFmode))))
15426 : return -1;
15427 : return 5010; /* floatv8div8sf2_round */
15428 :
15429 : default:
15430 : return -1;
15431 : }
15432 :
15433 : case UNSIGNED_FLOAT:
15434 : x5 = XEXP (x4, 0);
15435 : operands[1] = x5;
15436 : x7 = XVECEXP (x3, 0, 1);
15437 : operands[2] = x7;
15438 : if (!const_4_or_8_to_11_operand (operands[2], E_SImode))
15439 : return -1;
15440 : switch (GET_MODE (operands[0]))
15441 : {
15442 : case E_V8HFmode:
15443 : switch (pattern1032 (x3))
15444 : {
15445 : case 0:
15446 : if (!(
15447 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15448 : (TARGET_AVX512F) && (
15449 : #line 7993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15450 : (TARGET_AVX512FP16) &&
15451 : #line 687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15452 : (TARGET_AVX512VL))))
15453 : return -1;
15454 : return 4522; /* avx512fp16_vcvtuw2ph_v8hi_round */
15455 :
15456 : case 1:
15457 : if (!(
15458 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15459 : (TARGET_AVX512F) && (
15460 : #line 7993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15461 : (TARGET_AVX512FP16) &&
15462 : #line 688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15463 : (TARGET_AVX512VL))))
15464 : return -1;
15465 : return 4546; /* avx512fp16_vcvtudq2ph_v8si_round */
15466 :
15467 : case 2:
15468 : if (!(
15469 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15470 : (TARGET_AVX512F) &&
15471 : #line 7993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15472 : (TARGET_AVX512FP16)))
15473 : return -1;
15474 : return 4562; /* avx512fp16_vcvtuqq2ph_v8di_round */
15475 :
15476 : default:
15477 : return -1;
15478 : }
15479 :
15480 : case E_V16HFmode:
15481 : switch (pattern1033 (x3))
15482 : {
15483 : case 0:
15484 : if (!(
15485 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15486 : (TARGET_AVX512F) && (
15487 : #line 7993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15488 : (TARGET_AVX512FP16) &&
15489 : #line 687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15490 : (TARGET_AVX512VL))))
15491 : return -1;
15492 : return 4530; /* avx512fp16_vcvtuw2ph_v16hi_round */
15493 :
15494 : case 1:
15495 : if (!(
15496 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15497 : (TARGET_AVX512F) &&
15498 : #line 7993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15499 : (TARGET_AVX512FP16)))
15500 : return -1;
15501 : return 4554; /* avx512fp16_vcvtudq2ph_v16si_round */
15502 :
15503 : default:
15504 : return -1;
15505 : }
15506 :
15507 : case E_V32HFmode:
15508 : if (pattern494 (x3,
15509 : E_V32HImode,
15510 : E_V32HFmode) != 0
15511 : || !(
15512 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15513 : (TARGET_AVX512F) &&
15514 : #line 7993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15515 : (TARGET_AVX512FP16)))
15516 : return -1;
15517 : return 4538; /* avx512fp16_vcvtuw2ph_v32hi_round */
15518 :
15519 : case E_V16SFmode:
15520 : if (pattern1034 (x3,
15521 : E_V16SImode,
15522 : E_V16SFmode) != 0
15523 : || !
15524 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15525 : (TARGET_AVX512F))
15526 : return -1;
15527 : return 4862; /* *floatunsv16siv16sf2_round */
15528 :
15529 : case E_V8SFmode:
15530 : if (!register_operand (operands[0], E_V8SFmode)
15531 : || GET_MODE (x3) != E_V8SFmode
15532 : || GET_MODE (x4) != E_V8SFmode)
15533 : return -1;
15534 : switch (GET_MODE (operands[1]))
15535 : {
15536 : case E_V8SImode:
15537 : if (!nonimmediate_operand (operands[1], E_V8SImode)
15538 : || !(
15539 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15540 : (TARGET_AVX512F) && (
15541 : #line 8984 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15542 : (TARGET_AVX512F) &&
15543 : #line 534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15544 : (TARGET_AVX512VL))))
15545 : return -1;
15546 : return 4866; /* *floatunsv8siv8sf2_round */
15547 :
15548 : case E_V8DImode:
15549 : if (!nonimmediate_operand (operands[1], E_V8DImode)
15550 : || !(
15551 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15552 : (TARGET_AVX512F) &&
15553 : #line 9518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15554 : (TARGET_AVX512DQ && (V8DImode == V16SFmode
15555 : || V8DImode == V8DFmode
15556 : || V8DImode == V8DImode
15557 : || V8DImode == V16SImode
15558 : || V8DImode == V32HFmode))))
15559 : return -1;
15560 : return 5014; /* floatunsv8div8sf2_round */
15561 :
15562 : default:
15563 : return -1;
15564 : }
15565 :
15566 : case E_V4SFmode:
15567 : if (pattern1034 (x3,
15568 : E_V4SImode,
15569 : E_V4SFmode) != 0
15570 : || !(
15571 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15572 : (TARGET_AVX512F) && (
15573 : #line 8984 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15574 : (TARGET_AVX512F) &&
15575 : #line 534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15576 : (TARGET_AVX512VL))))
15577 : return -1;
15578 : return 4870; /* *floatunsv4siv4sf2_round */
15579 :
15580 : case E_V8DFmode:
15581 : if (pattern1034 (x3,
15582 : E_V8DImode,
15583 : E_V8DFmode) != 0
15584 : || !(
15585 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15586 : (TARGET_AVX512F) &&
15587 : #line 9504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15588 : (TARGET_AVX512DQ)))
15589 : return -1;
15590 : return 4990; /* floatunsv8div8df2_round */
15591 :
15592 : case E_V4DFmode:
15593 : if (pattern1034 (x3,
15594 : E_V4DImode,
15595 : E_V4DFmode) != 0
15596 : || !(
15597 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15598 : (TARGET_AVX512F) && (
15599 : #line 9504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15600 : (TARGET_AVX512DQ) &&
15601 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15602 : (TARGET_AVX512VL))))
15603 : return -1;
15604 : return 4998; /* floatunsv4div4df2_round */
15605 :
15606 : case E_V2DFmode:
15607 : if (pattern1034 (x3,
15608 : E_V2DImode,
15609 : E_V2DFmode) != 0
15610 : || !(
15611 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15612 : (TARGET_AVX512F) && (
15613 : #line 9504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15614 : (TARGET_AVX512DQ) &&
15615 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15616 : (TARGET_AVX512VL))))
15617 : return -1;
15618 : return 5006; /* floatunsv2div2df2_round */
15619 :
15620 : default:
15621 : return -1;
15622 : }
15623 :
15624 : case FIX:
15625 : switch (pattern495 (x3))
15626 : {
15627 : case 0:
15628 : if (!(
15629 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15630 : (TARGET_AVX512F) && (
15631 : #line 8212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15632 : (TARGET_AVX512FP16) &&
15633 : #line 687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15634 : (TARGET_AVX512VL))))
15635 : return -1;
15636 : return 4652; /* avx512fp16_fix_truncv8hi2_round */
15637 :
15638 : case 1:
15639 : if (!(
15640 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15641 : (TARGET_AVX512F) && (
15642 : #line 8212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15643 : (TARGET_AVX512FP16) &&
15644 : #line 687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15645 : (TARGET_AVX512VL))))
15646 : return -1;
15647 : return 4660; /* avx512fp16_fix_truncv16hi2_round */
15648 :
15649 : case 2:
15650 : if (!(
15651 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15652 : (TARGET_AVX512F) &&
15653 : #line 8212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15654 : (TARGET_AVX512FP16)))
15655 : return -1;
15656 : return 4668; /* avx512fp16_fix_truncv32hi2_round */
15657 :
15658 : case 3:
15659 : if (!(
15660 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15661 : (TARGET_AVX512F) && (
15662 : #line 8212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15663 : (TARGET_AVX512FP16) &&
15664 : #line 688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15665 : (TARGET_AVX512VL))))
15666 : return -1;
15667 : return 4676; /* avx512fp16_fix_truncv8si2_round */
15668 :
15669 : case 4:
15670 : if (!
15671 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15672 : (TARGET_AVX512F))
15673 : return -1;
15674 : return 5067; /* fix_truncv8dfv8si2_round */
15675 :
15676 : case 5:
15677 : if (!(
15678 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15679 : (TARGET_AVX512F) &&
15680 : #line 8212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15681 : (TARGET_AVX512FP16)))
15682 : return -1;
15683 : return 4684; /* avx512fp16_fix_truncv16si2_round */
15684 :
15685 : case 6:
15686 : if (!
15687 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15688 : (TARGET_AVX512F))
15689 : return -1;
15690 : return 4918; /* fix_truncv16sfv16si2_round */
15691 :
15692 : case 7:
15693 : if (!(
15694 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15695 : (TARGET_AVX512F) &&
15696 : #line 8212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15697 : (TARGET_AVX512FP16)))
15698 : return -1;
15699 : return 4692; /* avx512fp16_fix_truncv8di2_round */
15700 :
15701 : case 8:
15702 : if (!(
15703 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15704 : (TARGET_AVX512F) &&
15705 : #line 10029 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15706 : (TARGET_AVX512DQ && (V8DFmode == V16SFmode
15707 : || V8DFmode == V8DFmode
15708 : || V8DFmode == V8DImode
15709 : || V8DFmode == V16SImode
15710 : || V8DFmode == V32HFmode))))
15711 : return -1;
15712 : return 5104; /* fix_truncv8dfv8di2_round */
15713 :
15714 : case 9:
15715 : if (!(
15716 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15717 : (TARGET_AVX512F) &&
15718 : #line 10072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15719 : (TARGET_AVX512DQ && (V8DImode == V16SFmode
15720 : || V8DImode == V8DFmode
15721 : || V8DImode == V8DImode
15722 : || V8DImode == V16SImode
15723 : || V8DImode == V32HFmode))))
15724 : return -1;
15725 : return 5148; /* fix_truncv8sfv8di2_round */
15726 :
15727 : default:
15728 : return -1;
15729 : }
15730 :
15731 : case UNSIGNED_FIX:
15732 : switch (pattern495 (x3))
15733 : {
15734 : case 0:
15735 : if (!(
15736 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15737 : (TARGET_AVX512F) && (
15738 : #line 8212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15739 : (TARGET_AVX512FP16) &&
15740 : #line 687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15741 : (TARGET_AVX512VL))))
15742 : return -1;
15743 : return 4656; /* avx512fp16_fixuns_truncv8hi2_round */
15744 :
15745 : case 1:
15746 : if (!(
15747 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15748 : (TARGET_AVX512F) && (
15749 : #line 8212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15750 : (TARGET_AVX512FP16) &&
15751 : #line 687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15752 : (TARGET_AVX512VL))))
15753 : return -1;
15754 : return 4664; /* avx512fp16_fixuns_truncv16hi2_round */
15755 :
15756 : case 2:
15757 : if (!(
15758 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15759 : (TARGET_AVX512F) &&
15760 : #line 8212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15761 : (TARGET_AVX512FP16)))
15762 : return -1;
15763 : return 4672; /* avx512fp16_fixuns_truncv32hi2_round */
15764 :
15765 : case 3:
15766 : if (!(
15767 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15768 : (TARGET_AVX512F) && (
15769 : #line 8212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15770 : (TARGET_AVX512FP16) &&
15771 : #line 688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15772 : (TARGET_AVX512VL))))
15773 : return -1;
15774 : return 4680; /* avx512fp16_fixuns_truncv8si2_round */
15775 :
15776 : case 4:
15777 : if (!
15778 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15779 : (TARGET_AVX512F))
15780 : return -1;
15781 : return 5071; /* fixuns_truncv8dfv8si2_round */
15782 :
15783 : case 5:
15784 : if (!(
15785 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15786 : (TARGET_AVX512F) &&
15787 : #line 8212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15788 : (TARGET_AVX512FP16)))
15789 : return -1;
15790 : return 4688; /* avx512fp16_fixuns_truncv16si2_round */
15791 :
15792 : case 6:
15793 : if (!
15794 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15795 : (TARGET_AVX512F))
15796 : return -1;
15797 : return 4922; /* fixuns_truncv16sfv16si2_round */
15798 :
15799 : case 7:
15800 : if (!(
15801 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15802 : (TARGET_AVX512F) &&
15803 : #line 8212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15804 : (TARGET_AVX512FP16)))
15805 : return -1;
15806 : return 4696; /* avx512fp16_fixuns_truncv8di2_round */
15807 :
15808 : case 8:
15809 : if (!(
15810 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15811 : (TARGET_AVX512F) &&
15812 : #line 10029 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15813 : (TARGET_AVX512DQ && (V8DFmode == V16SFmode
15814 : || V8DFmode == V8DFmode
15815 : || V8DFmode == V8DImode
15816 : || V8DFmode == V16SImode
15817 : || V8DFmode == V32HFmode))))
15818 : return -1;
15819 : return 5108; /* fixuns_truncv8dfv8di2_round */
15820 :
15821 : case 9:
15822 : if (!(
15823 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15824 : (TARGET_AVX512F) &&
15825 : #line 10072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15826 : (TARGET_AVX512DQ && (V8DImode == V16SFmode
15827 : || V8DImode == V8DFmode
15828 : || V8DImode == V8DImode
15829 : || V8DImode == V16SImode
15830 : || V8DImode == V32HFmode))))
15831 : return -1;
15832 : return 5152; /* fixuns_truncv8sfv8di2_round */
15833 :
15834 : default:
15835 : return -1;
15836 : }
15837 :
15838 : case FLOAT_EXTEND:
15839 : x5 = XEXP (x4, 0);
15840 : operands[1] = x5;
15841 : x7 = XVECEXP (x3, 0, 1);
15842 : operands[2] = x7;
15843 : if (!const48_operand (operands[2], E_SImode))
15844 : return -1;
15845 : switch (GET_MODE (operands[0]))
15846 : {
15847 : case E_V8DFmode:
15848 : if (!register_operand (operands[0], E_V8DFmode)
15849 : || GET_MODE (x3) != E_V8DFmode
15850 : || GET_MODE (x4) != E_V8DFmode)
15851 : return -1;
15852 : switch (GET_MODE (operands[1]))
15853 : {
15854 : case E_V8HFmode:
15855 : if (!register_operand (operands[1], E_V8HFmode)
15856 : || !(
15857 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15858 : (TARGET_AVX512F) &&
15859 : #line 8365 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15860 : (TARGET_AVX512FP16)))
15861 : return -1;
15862 : return 4756; /* avx512fp16_float_extend_phv8df2_round */
15863 :
15864 : case E_V8SFmode:
15865 : if (!register_operand (operands[1], E_V8SFmode)
15866 : || !(
15867 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15868 : (TARGET_AVX512F) && (
15869 : #line 10550 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15870 : (TARGET_AVX && 1 && (V8DFmode == V16SFmode
15871 : || V8DFmode == V8DFmode
15872 : || V8DFmode == V8DImode
15873 : || V8DFmode == V16SImode
15874 : || V8DFmode == V32HFmode)) &&
15875 : #line 466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15876 : (TARGET_AVX512F))))
15877 : return -1;
15878 : return 5201; /* avx512f_cvtps2pd512_round */
15879 :
15880 : default:
15881 : return -1;
15882 : }
15883 :
15884 : case E_V16SFmode:
15885 : if (pattern494 (x3,
15886 : E_V16HFmode,
15887 : E_V16SFmode) != 0
15888 : || !(
15889 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15890 : (TARGET_AVX512F) &&
15891 : #line 8365 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15892 : (TARGET_AVX512FP16)))
15893 : return -1;
15894 : return 4760; /* avx512fp16_float_extend_phv16sf2_round */
15895 :
15896 : case E_V8SFmode:
15897 : if (pattern494 (x3,
15898 : E_V8HFmode,
15899 : E_V8SFmode) != 0
15900 : || !(
15901 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15902 : (TARGET_AVX512F) && (
15903 : #line 8365 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15904 : (TARGET_AVX512FP16) &&
15905 : #line 986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15906 : (TARGET_AVX512VL))))
15907 : return -1;
15908 : return 4764; /* avx512fp16_float_extend_phv8sf2_round */
15909 :
15910 : default:
15911 : return -1;
15912 : }
15913 :
15914 : case FLOAT_TRUNCATE:
15915 : x5 = XEXP (x4, 0);
15916 : operands[1] = x5;
15917 : x7 = XVECEXP (x3, 0, 1);
15918 : operands[2] = x7;
15919 : if (!const_4_or_8_to_11_operand (operands[2], E_SImode))
15920 : return -1;
15921 : switch (GET_MODE (operands[0]))
15922 : {
15923 : case E_V8HFmode:
15924 : if (!register_operand (operands[0], E_V8HFmode)
15925 : || GET_MODE (x3) != E_V8HFmode
15926 : || GET_MODE (x4) != E_V8HFmode)
15927 : return -1;
15928 : switch (GET_MODE (operands[1]))
15929 : {
15930 : case E_V8DFmode:
15931 : if (!register_operand (operands[1], E_V8DFmode)
15932 : || !(
15933 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15934 : (TARGET_AVX512F) &&
15935 : #line 8459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15936 : (TARGET_AVX512FP16)))
15937 : return -1;
15938 : return 4780; /* avx512fp16_vcvtpd2ph_v8df_round */
15939 :
15940 : case E_V8SFmode:
15941 : if (!register_operand (operands[1], E_V8SFmode)
15942 : || !(
15943 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15944 : (TARGET_AVX512F) && (
15945 : #line 8459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15946 : (TARGET_AVX512FP16) &&
15947 : #line 986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15948 : (TARGET_AVX512VL))))
15949 : return -1;
15950 : return 4788; /* avx512fp16_vcvtps2ph_v8sf_round */
15951 :
15952 : default:
15953 : return -1;
15954 : }
15955 :
15956 : case E_V16HFmode:
15957 : if (pattern494 (x3,
15958 : E_V16SFmode,
15959 : E_V16HFmode) != 0
15960 : || !(
15961 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15962 : (TARGET_AVX512F) &&
15963 : #line 8459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15964 : (TARGET_AVX512FP16)))
15965 : return -1;
15966 : return 4784; /* avx512fp16_vcvtps2ph_v16sf_round */
15967 :
15968 : case E_V8SFmode:
15969 : if (pattern494 (x3,
15970 : E_V8DFmode,
15971 : E_V8SFmode) != 0
15972 : || !
15973 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15974 : (TARGET_AVX512F))
15975 : return -1;
15976 : return 5191; /* *avx512f_cvtpd2ps512_round */
15977 :
15978 : default:
15979 : return -1;
15980 : }
15981 :
15982 : case VEC_CONCAT:
15983 : if (GET_MODE (x4) != E_V32HFmode)
15984 : return -1;
15985 : x5 = XEXP (x4, 0);
15986 : if (GET_CODE (x5) != FLOAT_TRUNCATE
15987 : || GET_MODE (x5) != E_V16HFmode)
15988 : return -1;
15989 : x6 = XEXP (x4, 1);
15990 : if (GET_CODE (x6) != FLOAT_TRUNCATE
15991 : || GET_MODE (x6) != E_V16HFmode
15992 : || !register_operand (operands[0], E_V32HFmode)
15993 : || GET_MODE (x3) != E_V32HFmode)
15994 : return -1;
15995 : x8 = XEXP (x5, 0);
15996 : operands[2] = x8;
15997 : if (!register_operand (operands[2], E_V16SFmode))
15998 : return -1;
15999 : x9 = XEXP (x6, 0);
16000 : operands[1] = x9;
16001 : if (!register_operand (operands[1], E_V16SFmode))
16002 : return -1;
16003 : x7 = XVECEXP (x3, 0, 1);
16004 : operands[3] = x7;
16005 : if (!const_4_or_8_to_11_operand (operands[3], E_SImode)
16006 : || !(
16007 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
16008 : (TARGET_AVX512F) &&
16009 : #line 32424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16010 : (TARGET_AVX10_2 && (V32HFmode == V16SFmode
16011 : || V32HFmode == V8DFmode
16012 : || V32HFmode == V8DImode
16013 : || V32HFmode == V16SImode
16014 : || V32HFmode == V32HFmode))))
16015 : return -1;
16016 : return 10511; /* avx10_2_cvt2ps2phx_v32hf_round */
16017 :
16018 : default:
16019 : return -1;
16020 : }
16021 : }
16022 :
16023 : int
16024 : recog_278 (rtx x1 ATTRIBUTE_UNUSED,
16025 : rtx_insn *insn ATTRIBUTE_UNUSED,
16026 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16027 : {
16028 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16029 : rtx x2, x3, x4, x5;
16030 : int res ATTRIBUTE_UNUSED;
16031 : x2 = XEXP (x1, 1);
16032 : x3 = XEXP (x2, 0);
16033 : operands[1] = x3;
16034 : x4 = XEXP (x2, 2);
16035 : switch (GET_CODE (x4))
16036 : {
16037 : case REG:
16038 : case SUBREG:
16039 : case MEM:
16040 : case VEC_DUPLICATE:
16041 : operands[3] = x4;
16042 : switch (GET_MODE (operands[0]))
16043 : {
16044 : case E_V4SFmode:
16045 : if (!register_operand (operands[0], E_V4SFmode)
16046 : || GET_MODE (x2) != E_V4SFmode)
16047 : return -1;
16048 : if (nonimmediate_operand (operands[1], E_V4SFmode)
16049 : && nonimmediate_operand (operands[2], E_V4SFmode)
16050 : && nonimmediate_operand (operands[3], E_V4SFmode)
16051 : &&
16052 : #line 6263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16053 : (TARGET_FMA || TARGET_FMA4))
16054 : return 3871; /* *fma_fmadd_v4sf */
16055 : if (!bcst_vector_operand (operands[1], E_V4SFmode)
16056 : || !bcst_vector_operand (operands[2], E_V4SFmode)
16057 : || !bcst_vector_operand (operands[3], E_V4SFmode)
16058 : || !(
16059 : #line 6289 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16060 : (TARGET_AVX512F && 1 && 1) &&
16061 : #line 6280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16062 : (TARGET_AVX512VL)))
16063 : return -1;
16064 : return 3891; /* *fma_fmadd_v4sf */
16065 :
16066 : case E_V2DFmode:
16067 : if (!register_operand (operands[0], E_V2DFmode)
16068 : || GET_MODE (x2) != E_V2DFmode)
16069 : return -1;
16070 : if (nonimmediate_operand (operands[1], E_V2DFmode)
16071 : && nonimmediate_operand (operands[2], E_V2DFmode)
16072 : && nonimmediate_operand (operands[3], E_V2DFmode)
16073 : &&
16074 : #line 6263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16075 : (TARGET_FMA || TARGET_FMA4))
16076 : return 3872; /* *fma_fmadd_v2df */
16077 : if (!bcst_vector_operand (operands[1], E_V2DFmode)
16078 : || !bcst_vector_operand (operands[2], E_V2DFmode)
16079 : || !bcst_vector_operand (operands[3], E_V2DFmode)
16080 : || !(
16081 : #line 6289 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16082 : (TARGET_AVX512F && 1 && 1) &&
16083 : #line 6281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16084 : (TARGET_AVX512VL)))
16085 : return -1;
16086 : return 3900; /* *fma_fmadd_v2df */
16087 :
16088 : case E_V8SFmode:
16089 : if (!register_operand (operands[0], E_V8SFmode)
16090 : || GET_MODE (x2) != E_V8SFmode)
16091 : return -1;
16092 : if (nonimmediate_operand (operands[1], E_V8SFmode)
16093 : && nonimmediate_operand (operands[2], E_V8SFmode)
16094 : && nonimmediate_operand (operands[3], E_V8SFmode)
16095 : &&
16096 : #line 6263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16097 : (TARGET_FMA || TARGET_FMA4))
16098 : return 3873; /* *fma_fmadd_v8sf */
16099 : if (!bcst_vector_operand (operands[1], E_V8SFmode)
16100 : || !bcst_vector_operand (operands[2], E_V8SFmode)
16101 : || !bcst_vector_operand (operands[3], E_V8SFmode)
16102 : || !(
16103 : #line 6289 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16104 : (TARGET_AVX512F && 1 && 1) &&
16105 : #line 6280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16106 : (TARGET_AVX512VL)))
16107 : return -1;
16108 : return 3889; /* *fma_fmadd_v8sf */
16109 :
16110 : case E_V4DFmode:
16111 : if (!register_operand (operands[0], E_V4DFmode)
16112 : || GET_MODE (x2) != E_V4DFmode)
16113 : return -1;
16114 : if (nonimmediate_operand (operands[1], E_V4DFmode)
16115 : && nonimmediate_operand (operands[2], E_V4DFmode)
16116 : && nonimmediate_operand (operands[3], E_V4DFmode)
16117 : &&
16118 : #line 6263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16119 : (TARGET_FMA || TARGET_FMA4))
16120 : return 3874; /* *fma_fmadd_v4df */
16121 : if (!bcst_vector_operand (operands[1], E_V4DFmode)
16122 : || !bcst_vector_operand (operands[2], E_V4DFmode)
16123 : || !bcst_vector_operand (operands[3], E_V4DFmode)
16124 : || !(
16125 : #line 6289 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16126 : (TARGET_AVX512F && 1 && 1) &&
16127 : #line 6281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16128 : (TARGET_AVX512VL)))
16129 : return -1;
16130 : return 3898; /* *fma_fmadd_v4df */
16131 :
16132 : case E_V32HFmode:
16133 : if (pattern874 (x2,
16134 : E_V32HFmode) != 0
16135 : || !(
16136 : #line 6289 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16137 : (TARGET_AVX512F && 1 && 1) &&
16138 : #line 6276 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16139 : (TARGET_AVX512FP16)))
16140 : return -1;
16141 : return 3875; /* *fma_fmadd_v32hf */
16142 :
16143 : case E_V16HFmode:
16144 : if (pattern874 (x2,
16145 : E_V16HFmode) != 0
16146 : || !(
16147 : #line 6289 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16148 : (TARGET_AVX512F && 1 && 1) &&
16149 : #line 6277 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16150 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
16151 : return -1;
16152 : return 3879; /* *fma_fmadd_v16hf */
16153 :
16154 : case E_V8HFmode:
16155 : if (pattern874 (x2,
16156 : E_V8HFmode) != 0
16157 : || !(
16158 : #line 6289 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16159 : (TARGET_AVX512F && 1 && 1) &&
16160 : #line 6278 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16161 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
16162 : return -1;
16163 : return 3881; /* *fma_fmadd_v8hf */
16164 :
16165 : case E_V16SFmode:
16166 : if (pattern874 (x2,
16167 : E_V16SFmode) != 0
16168 : || !
16169 : #line 6289 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16170 : (TARGET_AVX512F && 1 && 1))
16171 : return -1;
16172 : return 3885; /* *fma_fmadd_v16sf */
16173 :
16174 : case E_V8DFmode:
16175 : if (pattern874 (x2,
16176 : E_V8DFmode) != 0
16177 : || !
16178 : #line 6289 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16179 : (TARGET_AVX512F && 1 && 1))
16180 : return -1;
16181 : return 3894; /* *fma_fmadd_v8df */
16182 :
16183 : case E_V32BFmode:
16184 : if (pattern924 (x2,
16185 : E_V32BFmode) != 0
16186 : || !
16187 : #line 32856 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16188 : (TARGET_AVX10_2))
16189 : return -1;
16190 : return 10701; /* avx10_2_fmaddbf16_v32bf */
16191 :
16192 : case E_V16BFmode:
16193 : if (pattern924 (x2,
16194 : E_V16BFmode) != 0
16195 : || !
16196 : #line 32856 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16197 : (TARGET_AVX10_2))
16198 : return -1;
16199 : return 10703; /* avx10_2_fmaddbf16_v16bf */
16200 :
16201 : case E_V8BFmode:
16202 : if (pattern924 (x2,
16203 : E_V8BFmode) != 0
16204 : || !
16205 : #line 32856 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16206 : (TARGET_AVX10_2))
16207 : return -1;
16208 : return 10705; /* avx10_2_fmaddbf16_v8bf */
16209 :
16210 : default:
16211 : return -1;
16212 : }
16213 :
16214 : case NEG:
16215 : x5 = XEXP (x4, 0);
16216 : operands[3] = x5;
16217 : switch (GET_MODE (operands[0]))
16218 : {
16219 : case E_V4SFmode:
16220 : if (!register_operand (operands[0], E_V4SFmode)
16221 : || GET_MODE (x2) != E_V4SFmode
16222 : || GET_MODE (x4) != E_V4SFmode)
16223 : return -1;
16224 : if (nonimmediate_operand (operands[1], E_V4SFmode)
16225 : && nonimmediate_operand (operands[2], E_V4SFmode)
16226 : && nonimmediate_operand (operands[3], E_V4SFmode)
16227 : &&
16228 : #line 6360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16229 : (TARGET_FMA || TARGET_FMA4))
16230 : return 3934; /* *fma_fmsub_v4sf */
16231 : if (!bcst_vector_operand (operands[1], E_V4SFmode)
16232 : || !bcst_vector_operand (operands[2], E_V4SFmode)
16233 : || !bcst_vector_operand (operands[3], E_V4SFmode)
16234 : || !(
16235 : #line 6392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16236 : (TARGET_AVX512F && 1 && 1) &&
16237 : #line 6280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16238 : (TARGET_AVX512VL)))
16239 : return -1;
16240 : return 3954; /* *fma_fmsub_v4sf */
16241 :
16242 : case E_V2DFmode:
16243 : if (!register_operand (operands[0], E_V2DFmode)
16244 : || GET_MODE (x2) != E_V2DFmode
16245 : || GET_MODE (x4) != E_V2DFmode)
16246 : return -1;
16247 : if (nonimmediate_operand (operands[1], E_V2DFmode)
16248 : && nonimmediate_operand (operands[2], E_V2DFmode)
16249 : && nonimmediate_operand (operands[3], E_V2DFmode)
16250 : &&
16251 : #line 6360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16252 : (TARGET_FMA || TARGET_FMA4))
16253 : return 3935; /* *fma_fmsub_v2df */
16254 : if (!bcst_vector_operand (operands[1], E_V2DFmode)
16255 : || !bcst_vector_operand (operands[2], E_V2DFmode)
16256 : || !bcst_vector_operand (operands[3], E_V2DFmode)
16257 : || !(
16258 : #line 6392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16259 : (TARGET_AVX512F && 1 && 1) &&
16260 : #line 6281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16261 : (TARGET_AVX512VL)))
16262 : return -1;
16263 : return 3963; /* *fma_fmsub_v2df */
16264 :
16265 : case E_V8SFmode:
16266 : if (!register_operand (operands[0], E_V8SFmode)
16267 : || GET_MODE (x2) != E_V8SFmode
16268 : || GET_MODE (x4) != E_V8SFmode)
16269 : return -1;
16270 : if (nonimmediate_operand (operands[1], E_V8SFmode)
16271 : && nonimmediate_operand (operands[2], E_V8SFmode)
16272 : && nonimmediate_operand (operands[3], E_V8SFmode)
16273 : &&
16274 : #line 6360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16275 : (TARGET_FMA || TARGET_FMA4))
16276 : return 3936; /* *fma_fmsub_v8sf */
16277 : if (!bcst_vector_operand (operands[1], E_V8SFmode)
16278 : || !bcst_vector_operand (operands[2], E_V8SFmode)
16279 : || !bcst_vector_operand (operands[3], E_V8SFmode)
16280 : || !(
16281 : #line 6392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16282 : (TARGET_AVX512F && 1 && 1) &&
16283 : #line 6280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16284 : (TARGET_AVX512VL)))
16285 : return -1;
16286 : return 3952; /* *fma_fmsub_v8sf */
16287 :
16288 : case E_V4DFmode:
16289 : if (!register_operand (operands[0], E_V4DFmode)
16290 : || GET_MODE (x2) != E_V4DFmode
16291 : || GET_MODE (x4) != E_V4DFmode)
16292 : return -1;
16293 : if (nonimmediate_operand (operands[1], E_V4DFmode)
16294 : && nonimmediate_operand (operands[2], E_V4DFmode)
16295 : && nonimmediate_operand (operands[3], E_V4DFmode)
16296 : &&
16297 : #line 6360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16298 : (TARGET_FMA || TARGET_FMA4))
16299 : return 3937; /* *fma_fmsub_v4df */
16300 : if (!bcst_vector_operand (operands[1], E_V4DFmode)
16301 : || !bcst_vector_operand (operands[2], E_V4DFmode)
16302 : || !bcst_vector_operand (operands[3], E_V4DFmode)
16303 : || !(
16304 : #line 6392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16305 : (TARGET_AVX512F && 1 && 1) &&
16306 : #line 6281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16307 : (TARGET_AVX512VL)))
16308 : return -1;
16309 : return 3961; /* *fma_fmsub_v4df */
16310 :
16311 : case E_V32HFmode:
16312 : if (pattern875 (x2,
16313 : E_V32HFmode) != 0
16314 : || !(
16315 : #line 6392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16316 : (TARGET_AVX512F && 1 && 1) &&
16317 : #line 6276 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16318 : (TARGET_AVX512FP16)))
16319 : return -1;
16320 : return 3938; /* *fma_fmsub_v32hf */
16321 :
16322 : case E_V16HFmode:
16323 : if (pattern875 (x2,
16324 : E_V16HFmode) != 0
16325 : || !(
16326 : #line 6392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16327 : (TARGET_AVX512F && 1 && 1) &&
16328 : #line 6277 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16329 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
16330 : return -1;
16331 : return 3942; /* *fma_fmsub_v16hf */
16332 :
16333 : case E_V8HFmode:
16334 : if (pattern875 (x2,
16335 : E_V8HFmode) != 0
16336 : || !(
16337 : #line 6392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16338 : (TARGET_AVX512F && 1 && 1) &&
16339 : #line 6278 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16340 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
16341 : return -1;
16342 : return 3944; /* *fma_fmsub_v8hf */
16343 :
16344 : case E_V16SFmode:
16345 : if (pattern875 (x2,
16346 : E_V16SFmode) != 0
16347 : || !
16348 : #line 6392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16349 : (TARGET_AVX512F && 1 && 1))
16350 : return -1;
16351 : return 3948; /* *fma_fmsub_v16sf */
16352 :
16353 : case E_V8DFmode:
16354 : if (pattern875 (x2,
16355 : E_V8DFmode) != 0
16356 : || !
16357 : #line 6392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16358 : (TARGET_AVX512F && 1 && 1))
16359 : return -1;
16360 : return 3957; /* *fma_fmsub_v8df */
16361 :
16362 : case E_V32BFmode:
16363 : if (pattern925 (x2,
16364 : E_V32BFmode) != 0
16365 : || !
16366 : #line 32984 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16367 : (TARGET_AVX10_2))
16368 : return -1;
16369 : return 10725; /* avx10_2_fmsubbf16_v32bf */
16370 :
16371 : case E_V16BFmode:
16372 : if (pattern925 (x2,
16373 : E_V16BFmode) != 0
16374 : || !
16375 : #line 32984 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16376 : (TARGET_AVX10_2))
16377 : return -1;
16378 : return 10727; /* avx10_2_fmsubbf16_v16bf */
16379 :
16380 : case E_V8BFmode:
16381 : if (pattern925 (x2,
16382 : E_V8BFmode) != 0
16383 : || !
16384 : #line 32984 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16385 : (TARGET_AVX10_2))
16386 : return -1;
16387 : return 10729; /* avx10_2_fmsubbf16_v8bf */
16388 :
16389 : default:
16390 : return -1;
16391 : }
16392 :
16393 : default:
16394 : return -1;
16395 : }
16396 : }
16397 :
16398 : int
16399 : recog_287 (rtx x1 ATTRIBUTE_UNUSED,
16400 : rtx_insn *insn ATTRIBUTE_UNUSED,
16401 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16402 : {
16403 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16404 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
16405 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
16406 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
16407 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
16408 : rtx x34, x35, x36, x37, x38, x39, x40, x41;
16409 : rtx x42, x43, x44, x45, x46, x47, x48, x49;
16410 : rtx x50, x51, x52, x53, x54, x55, x56, x57;
16411 : rtx x58, x59, x60, x61, x62, x63, x64, x65;
16412 : rtx x66, x67;
16413 : int res ATTRIBUTE_UNUSED;
16414 : x2 = XEXP (x1, 1);
16415 : x3 = XEXP (x2, 1);
16416 : if (pattern683 (x3) != 0)
16417 : return -1;
16418 : x4 = XVECEXP (x3, 0, 32);
16419 : if (GET_CODE (x4) != CONST_INT)
16420 : return -1;
16421 : x5 = XVECEXP (x3, 0, 33);
16422 : if (GET_CODE (x5) != CONST_INT)
16423 : return -1;
16424 : x6 = XVECEXP (x3, 0, 34);
16425 : if (GET_CODE (x6) != CONST_INT)
16426 : return -1;
16427 : x7 = XVECEXP (x3, 0, 35);
16428 : if (GET_CODE (x7) != CONST_INT)
16429 : return -1;
16430 : x8 = XVECEXP (x3, 0, 36);
16431 : if (GET_CODE (x8) != CONST_INT)
16432 : return -1;
16433 : x9 = XVECEXP (x3, 0, 37);
16434 : if (GET_CODE (x9) != CONST_INT)
16435 : return -1;
16436 : x10 = XVECEXP (x3, 0, 38);
16437 : if (GET_CODE (x10) != CONST_INT)
16438 : return -1;
16439 : x11 = XVECEXP (x3, 0, 39);
16440 : if (GET_CODE (x11) != CONST_INT)
16441 : return -1;
16442 : x12 = XVECEXP (x3, 0, 40);
16443 : if (GET_CODE (x12) != CONST_INT)
16444 : return -1;
16445 : x13 = XVECEXP (x3, 0, 41);
16446 : if (GET_CODE (x13) != CONST_INT)
16447 : return -1;
16448 : x14 = XVECEXP (x3, 0, 42);
16449 : if (GET_CODE (x14) != CONST_INT)
16450 : return -1;
16451 : x15 = XVECEXP (x3, 0, 43);
16452 : if (GET_CODE (x15) != CONST_INT)
16453 : return -1;
16454 : x16 = XVECEXP (x3, 0, 44);
16455 : if (GET_CODE (x16) != CONST_INT)
16456 : return -1;
16457 : x17 = XVECEXP (x3, 0, 45);
16458 : if (GET_CODE (x17) != CONST_INT)
16459 : return -1;
16460 : x18 = XVECEXP (x3, 0, 46);
16461 : if (GET_CODE (x18) != CONST_INT)
16462 : return -1;
16463 : x19 = XVECEXP (x3, 0, 47);
16464 : if (GET_CODE (x19) != CONST_INT)
16465 : return -1;
16466 : x20 = XVECEXP (x3, 0, 48);
16467 : if (GET_CODE (x20) != CONST_INT)
16468 : return -1;
16469 : x21 = XVECEXP (x3, 0, 49);
16470 : if (GET_CODE (x21) != CONST_INT)
16471 : return -1;
16472 : x22 = XVECEXP (x3, 0, 50);
16473 : if (GET_CODE (x22) != CONST_INT)
16474 : return -1;
16475 : x23 = XVECEXP (x3, 0, 51);
16476 : if (GET_CODE (x23) != CONST_INT)
16477 : return -1;
16478 : x24 = XVECEXP (x3, 0, 52);
16479 : if (GET_CODE (x24) != CONST_INT)
16480 : return -1;
16481 : x25 = XVECEXP (x3, 0, 53);
16482 : if (GET_CODE (x25) != CONST_INT)
16483 : return -1;
16484 : x26 = XVECEXP (x3, 0, 54);
16485 : if (GET_CODE (x26) != CONST_INT)
16486 : return -1;
16487 : x27 = XVECEXP (x3, 0, 55);
16488 : if (GET_CODE (x27) != CONST_INT)
16489 : return -1;
16490 : x28 = XVECEXP (x3, 0, 56);
16491 : if (GET_CODE (x28) != CONST_INT)
16492 : return -1;
16493 : x29 = XVECEXP (x3, 0, 57);
16494 : if (GET_CODE (x29) != CONST_INT)
16495 : return -1;
16496 : x30 = XVECEXP (x3, 0, 58);
16497 : if (GET_CODE (x30) != CONST_INT)
16498 : return -1;
16499 : x31 = XVECEXP (x3, 0, 59);
16500 : if (GET_CODE (x31) != CONST_INT)
16501 : return -1;
16502 : x32 = XVECEXP (x3, 0, 60);
16503 : if (GET_CODE (x32) != CONST_INT)
16504 : return -1;
16505 : x33 = XVECEXP (x3, 0, 61);
16506 : if (GET_CODE (x33) != CONST_INT)
16507 : return -1;
16508 : x34 = XVECEXP (x3, 0, 62);
16509 : if (GET_CODE (x34) != CONST_INT)
16510 : return -1;
16511 : x35 = XVECEXP (x3, 0, 63);
16512 : if (GET_CODE (x35) != CONST_INT
16513 : || pattern1631 (x2,
16514 : E_V64QImode,
16515 : E_V128QImode) != 0)
16516 : return -1;
16517 : x36 = XVECEXP (x3, 0, 0);
16518 : switch (XWINT (x36, 0))
16519 : {
16520 : case 8L:
16521 : x37 = XVECEXP (x3, 0, 1);
16522 : if (XWINT (x37, 0) != 72L)
16523 : return -1;
16524 : x38 = XVECEXP (x3, 0, 2);
16525 : if (XWINT (x38, 0) != 9L)
16526 : return -1;
16527 : x39 = XVECEXP (x3, 0, 3);
16528 : if (XWINT (x39, 0) != 73L)
16529 : return -1;
16530 : x40 = XVECEXP (x3, 0, 4);
16531 : if (XWINT (x40, 0) != 10L)
16532 : return -1;
16533 : x41 = XVECEXP (x3, 0, 5);
16534 : if (XWINT (x41, 0) != 74L)
16535 : return -1;
16536 : x42 = XVECEXP (x3, 0, 6);
16537 : if (XWINT (x42, 0) != 11L)
16538 : return -1;
16539 : x43 = XVECEXP (x3, 0, 7);
16540 : if (XWINT (x43, 0) != 75L)
16541 : return -1;
16542 : x44 = XVECEXP (x3, 0, 8);
16543 : if (XWINT (x44, 0) != 12L)
16544 : return -1;
16545 : x45 = XVECEXP (x3, 0, 9);
16546 : if (XWINT (x45, 0) != 76L)
16547 : return -1;
16548 : x46 = XVECEXP (x3, 0, 10);
16549 : if (XWINT (x46, 0) != 13L)
16550 : return -1;
16551 : x47 = XVECEXP (x3, 0, 11);
16552 : if (XWINT (x47, 0) != 77L)
16553 : return -1;
16554 : x48 = XVECEXP (x3, 0, 12);
16555 : if (XWINT (x48, 0) != 14L)
16556 : return -1;
16557 : x49 = XVECEXP (x3, 0, 13);
16558 : if (XWINT (x49, 0) != 78L)
16559 : return -1;
16560 : x50 = XVECEXP (x3, 0, 14);
16561 : if (XWINT (x50, 0) != 15L)
16562 : return -1;
16563 : x51 = XVECEXP (x3, 0, 15);
16564 : if (XWINT (x51, 0) != 79L)
16565 : return -1;
16566 : x52 = XVECEXP (x3, 0, 16);
16567 : if (XWINT (x52, 0) != 24L)
16568 : return -1;
16569 : x53 = XVECEXP (x3, 0, 17);
16570 : if (XWINT (x53, 0) != 88L)
16571 : return -1;
16572 : x54 = XVECEXP (x3, 0, 18);
16573 : if (XWINT (x54, 0) != 25L)
16574 : return -1;
16575 : x55 = XVECEXP (x3, 0, 19);
16576 : if (XWINT (x55, 0) != 89L)
16577 : return -1;
16578 : x56 = XVECEXP (x3, 0, 20);
16579 : if (XWINT (x56, 0) != 26L)
16580 : return -1;
16581 : x57 = XVECEXP (x3, 0, 21);
16582 : if (XWINT (x57, 0) != 90L)
16583 : return -1;
16584 : x58 = XVECEXP (x3, 0, 22);
16585 : if (XWINT (x58, 0) != 27L)
16586 : return -1;
16587 : x59 = XVECEXP (x3, 0, 23);
16588 : if (XWINT (x59, 0) != 91L)
16589 : return -1;
16590 : x60 = XVECEXP (x3, 0, 24);
16591 : if (XWINT (x60, 0) != 28L)
16592 : return -1;
16593 : x61 = XVECEXP (x3, 0, 25);
16594 : if (XWINT (x61, 0) != 92L)
16595 : return -1;
16596 : x62 = XVECEXP (x3, 0, 26);
16597 : if (XWINT (x62, 0) != 29L)
16598 : return -1;
16599 : x63 = XVECEXP (x3, 0, 27);
16600 : if (XWINT (x63, 0) != 93L)
16601 : return -1;
16602 : x64 = XVECEXP (x3, 0, 28);
16603 : if (XWINT (x64, 0) != 30L)
16604 : return -1;
16605 : x65 = XVECEXP (x3, 0, 29);
16606 : if (XWINT (x65, 0) != 94L)
16607 : return -1;
16608 : x66 = XVECEXP (x3, 0, 30);
16609 : if (XWINT (x66, 0) != 31L)
16610 : return -1;
16611 : x67 = XVECEXP (x3, 0, 31);
16612 : if (XWINT (x67, 0) != 95L
16613 : || XWINT (x4, 0) != 40L
16614 : || XWINT (x5, 0) != 104L
16615 : || XWINT (x6, 0) != 41L
16616 : || XWINT (x7, 0) != 105L
16617 : || XWINT (x8, 0) != 42L
16618 : || XWINT (x9, 0) != 106L
16619 : || XWINT (x10, 0) != 43L
16620 : || XWINT (x11, 0) != 107L
16621 : || XWINT (x12, 0) != 44L
16622 : || XWINT (x13, 0) != 108L
16623 : || XWINT (x14, 0) != 45L
16624 : || XWINT (x15, 0) != 109L
16625 : || XWINT (x16, 0) != 46L
16626 : || XWINT (x17, 0) != 110L
16627 : || XWINT (x18, 0) != 47L
16628 : || XWINT (x19, 0) != 111L
16629 : || XWINT (x20, 0) != 56L
16630 : || XWINT (x21, 0) != 120L
16631 : || XWINT (x22, 0) != 57L
16632 : || XWINT (x23, 0) != 121L
16633 : || XWINT (x24, 0) != 58L
16634 : || XWINT (x25, 0) != 122L
16635 : || XWINT (x26, 0) != 59L
16636 : || XWINT (x27, 0) != 123L
16637 : || XWINT (x28, 0) != 60L
16638 : || XWINT (x29, 0) != 124L
16639 : || XWINT (x30, 0) != 61L
16640 : || XWINT (x31, 0) != 125L
16641 : || XWINT (x32, 0) != 62L
16642 : || XWINT (x33, 0) != 126L
16643 : || XWINT (x34, 0) != 63L
16644 : || XWINT (x35, 0) != 127L
16645 : || !
16646 : #line 19762 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16647 : (TARGET_AVX512BW))
16648 : return -1;
16649 : return 8363; /* avx512bw_interleave_highv64qi */
16650 :
16651 : case 0L:
16652 : x37 = XVECEXP (x3, 0, 1);
16653 : if (XWINT (x37, 0) != 64L)
16654 : return -1;
16655 : x38 = XVECEXP (x3, 0, 2);
16656 : if (XWINT (x38, 0) != 1L)
16657 : return -1;
16658 : x39 = XVECEXP (x3, 0, 3);
16659 : if (XWINT (x39, 0) != 65L)
16660 : return -1;
16661 : x40 = XVECEXP (x3, 0, 4);
16662 : if (XWINT (x40, 0) != 2L)
16663 : return -1;
16664 : x41 = XVECEXP (x3, 0, 5);
16665 : if (XWINT (x41, 0) != 66L)
16666 : return -1;
16667 : x42 = XVECEXP (x3, 0, 6);
16668 : if (XWINT (x42, 0) != 3L)
16669 : return -1;
16670 : x43 = XVECEXP (x3, 0, 7);
16671 : if (XWINT (x43, 0) != 67L)
16672 : return -1;
16673 : x44 = XVECEXP (x3, 0, 8);
16674 : if (XWINT (x44, 0) != 4L)
16675 : return -1;
16676 : x45 = XVECEXP (x3, 0, 9);
16677 : if (XWINT (x45, 0) != 68L)
16678 : return -1;
16679 : x46 = XVECEXP (x3, 0, 10);
16680 : if (XWINT (x46, 0) != 5L)
16681 : return -1;
16682 : x47 = XVECEXP (x3, 0, 11);
16683 : if (XWINT (x47, 0) != 69L)
16684 : return -1;
16685 : x48 = XVECEXP (x3, 0, 12);
16686 : if (XWINT (x48, 0) != 6L)
16687 : return -1;
16688 : x49 = XVECEXP (x3, 0, 13);
16689 : if (XWINT (x49, 0) != 70L)
16690 : return -1;
16691 : x50 = XVECEXP (x3, 0, 14);
16692 : if (XWINT (x50, 0) != 7L)
16693 : return -1;
16694 : x51 = XVECEXP (x3, 0, 15);
16695 : if (XWINT (x51, 0) != 71L)
16696 : return -1;
16697 : x52 = XVECEXP (x3, 0, 16);
16698 : if (XWINT (x52, 0) != 16L)
16699 : return -1;
16700 : x53 = XVECEXP (x3, 0, 17);
16701 : if (XWINT (x53, 0) != 80L)
16702 : return -1;
16703 : x54 = XVECEXP (x3, 0, 18);
16704 : if (XWINT (x54, 0) != 17L)
16705 : return -1;
16706 : x55 = XVECEXP (x3, 0, 19);
16707 : if (XWINT (x55, 0) != 81L)
16708 : return -1;
16709 : x56 = XVECEXP (x3, 0, 20);
16710 : if (XWINT (x56, 0) != 18L)
16711 : return -1;
16712 : x57 = XVECEXP (x3, 0, 21);
16713 : if (XWINT (x57, 0) != 82L)
16714 : return -1;
16715 : x58 = XVECEXP (x3, 0, 22);
16716 : if (XWINT (x58, 0) != 19L)
16717 : return -1;
16718 : x59 = XVECEXP (x3, 0, 23);
16719 : if (XWINT (x59, 0) != 83L)
16720 : return -1;
16721 : x60 = XVECEXP (x3, 0, 24);
16722 : if (XWINT (x60, 0) != 20L)
16723 : return -1;
16724 : x61 = XVECEXP (x3, 0, 25);
16725 : if (XWINT (x61, 0) != 84L)
16726 : return -1;
16727 : x62 = XVECEXP (x3, 0, 26);
16728 : if (XWINT (x62, 0) != 21L)
16729 : return -1;
16730 : x63 = XVECEXP (x3, 0, 27);
16731 : if (XWINT (x63, 0) != 85L)
16732 : return -1;
16733 : x64 = XVECEXP (x3, 0, 28);
16734 : if (XWINT (x64, 0) != 22L)
16735 : return -1;
16736 : x65 = XVECEXP (x3, 0, 29);
16737 : if (XWINT (x65, 0) != 86L)
16738 : return -1;
16739 : x66 = XVECEXP (x3, 0, 30);
16740 : if (XWINT (x66, 0) != 23L)
16741 : return -1;
16742 : x67 = XVECEXP (x3, 0, 31);
16743 : if (XWINT (x67, 0) != 87L
16744 : || XWINT (x4, 0) != 32L
16745 : || XWINT (x5, 0) != 96L
16746 : || XWINT (x6, 0) != 33L
16747 : || XWINT (x7, 0) != 97L
16748 : || XWINT (x8, 0) != 34L
16749 : || XWINT (x9, 0) != 98L
16750 : || XWINT (x10, 0) != 35L
16751 : || XWINT (x11, 0) != 99L
16752 : || XWINT (x12, 0) != 36L
16753 : || XWINT (x13, 0) != 100L
16754 : || XWINT (x14, 0) != 37L
16755 : || XWINT (x15, 0) != 101L
16756 : || XWINT (x16, 0) != 38L
16757 : || XWINT (x17, 0) != 102L
16758 : || XWINT (x18, 0) != 39L
16759 : || XWINT (x19, 0) != 103L
16760 : || XWINT (x20, 0) != 48L
16761 : || XWINT (x21, 0) != 112L
16762 : || XWINT (x22, 0) != 49L
16763 : || XWINT (x23, 0) != 113L
16764 : || XWINT (x24, 0) != 50L
16765 : || XWINT (x25, 0) != 114L
16766 : || XWINT (x26, 0) != 51L
16767 : || XWINT (x27, 0) != 115L
16768 : || XWINT (x28, 0) != 52L
16769 : || XWINT (x29, 0) != 116L
16770 : || XWINT (x30, 0) != 53L
16771 : || XWINT (x31, 0) != 117L
16772 : || XWINT (x32, 0) != 54L
16773 : || XWINT (x33, 0) != 118L
16774 : || XWINT (x34, 0) != 55L
16775 : || XWINT (x35, 0) != 119L
16776 : || !
16777 : #line 19858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16778 : (TARGET_AVX512BW))
16779 : return -1;
16780 : return 8369; /* avx512bw_interleave_lowv64qi */
16781 :
16782 : default:
16783 : return -1;
16784 : }
16785 : }
16786 :
16787 : int
16788 : recog_300 (rtx x1 ATTRIBUTE_UNUSED,
16789 : rtx_insn *insn ATTRIBUTE_UNUSED,
16790 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16791 : {
16792 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16793 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
16794 : rtx x10, x11;
16795 : int res ATTRIBUTE_UNUSED;
16796 : x2 = XEXP (x1, 1);
16797 : x3 = XEXP (x2, 1);
16798 : x4 = XVECEXP (x3, 0, 0);
16799 : if (GET_CODE (x4) != CONST_INT)
16800 : return -1;
16801 : x5 = XVECEXP (x3, 0, 1);
16802 : if (GET_CODE (x5) == CONST_INT)
16803 : {
16804 : res = recog_297 (x1, insn, pnum_clobbers);
16805 : if (res >= 0)
16806 : return res;
16807 : }
16808 : operands[2] = x4;
16809 : res = recog_299 (x1, insn, pnum_clobbers);
16810 : if (res >= 0)
16811 : return res;
16812 : if (XWINT (x4, 0) != 0L
16813 : || x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
16814 : return -1;
16815 : x6 = XVECEXP (x3, 0, 2);
16816 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
16817 : return -1;
16818 : x7 = XVECEXP (x3, 0, 3);
16819 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 3]
16820 : || pattern847 (x3,
16821 : 11,
16822 : 10,
16823 : 9,
16824 : 8) != 0
16825 : || !register_operand (operands[0], E_V16HImode)
16826 : || GET_MODE (x2) != E_V16HImode
16827 : || !nonimmediate_operand (operands[1], E_V16HImode)
16828 : || pattern1496 (x3) != 0)
16829 : return -1;
16830 : x8 = XVECEXP (x3, 0, 12);
16831 : operands[6] = x8;
16832 : if (!const_12_to_15_operand (operands[6], E_VOIDmode))
16833 : return -1;
16834 : x9 = XVECEXP (x3, 0, 13);
16835 : operands[7] = x9;
16836 : if (!const_12_to_15_operand (operands[7], E_VOIDmode))
16837 : return -1;
16838 : x10 = XVECEXP (x3, 0, 14);
16839 : operands[8] = x10;
16840 : if (!const_12_to_15_operand (operands[8], E_VOIDmode))
16841 : return -1;
16842 : x11 = XVECEXP (x3, 0, 15);
16843 : operands[9] = x11;
16844 : if (!const_12_to_15_operand (operands[9], E_VOIDmode)
16845 : || !
16846 : #line 21277 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16847 : (TARGET_AVX2
16848 : && 1 && 1
16849 : && INTVAL (operands[2]) + 8 == INTVAL (operands[6])
16850 : && INTVAL (operands[3]) + 8 == INTVAL (operands[7])
16851 : && INTVAL (operands[4]) + 8 == INTVAL (operands[8])
16852 : && INTVAL (operands[5]) + 8 == INTVAL (operands[9])))
16853 : return -1;
16854 : return 8495; /* avx2_pshufhw_1 */
16855 : }
16856 :
16857 : int
16858 : recog_306 (rtx x1 ATTRIBUTE_UNUSED,
16859 : rtx_insn *insn ATTRIBUTE_UNUSED,
16860 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16861 : {
16862 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16863 : rtx x2, x3, x4;
16864 : int res ATTRIBUTE_UNUSED;
16865 : x2 = XEXP (x1, 1);
16866 : x3 = XEXP (x2, 0);
16867 : x4 = XEXP (x3, 0);
16868 : switch (GET_CODE (x4))
16869 : {
16870 : case REG:
16871 : case SUBREG:
16872 : case MEM:
16873 : case NOT:
16874 : switch (pattern535 (x2))
16875 : {
16876 : case 0:
16877 : if (!(
16878 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16879 : ((64 == 64 || TARGET_AVX512VL
16880 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16881 : && ix86_pre_reload_split ()
16882 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
16883 : STRIP_UNARY (operands[4]))
16884 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16885 : STRIP_UNARY (operands[4]))
16886 : || rtx_equal_p (STRIP_UNARY (operands[1]),
16887 : STRIP_UNARY (operands[3]))
16888 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16889 : STRIP_UNARY (operands[3])))) &&
16890 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16891 : (TARGET_AVX512F)))
16892 : return -1;
16893 : return 5555; /* *avx512bw_vpternlogv64qi_1 */
16894 :
16895 : case 1:
16896 : if (!(
16897 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16898 : ((32 == 64 || TARGET_AVX512VL
16899 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16900 : && ix86_pre_reload_split ()
16901 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
16902 : STRIP_UNARY (operands[4]))
16903 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16904 : STRIP_UNARY (operands[4]))
16905 : || rtx_equal_p (STRIP_UNARY (operands[1]),
16906 : STRIP_UNARY (operands[3]))
16907 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16908 : STRIP_UNARY (operands[3])))) &&
16909 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16910 : (TARGET_AVX)))
16911 : return -1;
16912 : return 5582; /* *avx512vl_vpternlogv32qi_1 */
16913 :
16914 : case 2:
16915 : if (!
16916 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16917 : ((16 == 64 || TARGET_AVX512VL
16918 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16919 : && ix86_pre_reload_split ()
16920 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
16921 : STRIP_UNARY (operands[4]))
16922 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16923 : STRIP_UNARY (operands[4]))
16924 : || rtx_equal_p (STRIP_UNARY (operands[1]),
16925 : STRIP_UNARY (operands[3]))
16926 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16927 : STRIP_UNARY (operands[3])))))
16928 : return -1;
16929 : return 5609; /* *avx512vl_vpternlogv16qi_1 */
16930 :
16931 : case 3:
16932 : if (!(
16933 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16934 : ((64 == 64 || TARGET_AVX512VL
16935 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16936 : && ix86_pre_reload_split ()
16937 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
16938 : STRIP_UNARY (operands[4]))
16939 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16940 : STRIP_UNARY (operands[4]))
16941 : || rtx_equal_p (STRIP_UNARY (operands[1]),
16942 : STRIP_UNARY (operands[3]))
16943 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16944 : STRIP_UNARY (operands[3])))) &&
16945 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16946 : (TARGET_AVX512F)))
16947 : return -1;
16948 : return 5636; /* *avx512bw_vpternlogv32hi_1 */
16949 :
16950 : case 4:
16951 : if (!(
16952 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16953 : ((32 == 64 || TARGET_AVX512VL
16954 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16955 : && ix86_pre_reload_split ()
16956 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
16957 : STRIP_UNARY (operands[4]))
16958 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16959 : STRIP_UNARY (operands[4]))
16960 : || rtx_equal_p (STRIP_UNARY (operands[1]),
16961 : STRIP_UNARY (operands[3]))
16962 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16963 : STRIP_UNARY (operands[3])))) &&
16964 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16965 : (TARGET_AVX)))
16966 : return -1;
16967 : return 5663; /* *avx512vl_vpternlogv16hi_1 */
16968 :
16969 : case 5:
16970 : if (!
16971 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16972 : ((16 == 64 || TARGET_AVX512VL
16973 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16974 : && ix86_pre_reload_split ()
16975 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
16976 : STRIP_UNARY (operands[4]))
16977 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16978 : STRIP_UNARY (operands[4]))
16979 : || rtx_equal_p (STRIP_UNARY (operands[1]),
16980 : STRIP_UNARY (operands[3]))
16981 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16982 : STRIP_UNARY (operands[3])))))
16983 : return -1;
16984 : return 5690; /* *avx512vl_vpternlogv8hi_1 */
16985 :
16986 : case 6:
16987 : if (!(
16988 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16989 : ((64 == 64 || TARGET_AVX512VL
16990 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16991 : && ix86_pre_reload_split ()
16992 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
16993 : STRIP_UNARY (operands[4]))
16994 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16995 : STRIP_UNARY (operands[4]))
16996 : || rtx_equal_p (STRIP_UNARY (operands[1]),
16997 : STRIP_UNARY (operands[3]))
16998 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16999 : STRIP_UNARY (operands[3])))) &&
17000 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17001 : (TARGET_AVX512F)))
17002 : return -1;
17003 : return 5717; /* *avx512f_vpternlogv16si_1 */
17004 :
17005 : case 7:
17006 : if (!(
17007 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17008 : ((32 == 64 || TARGET_AVX512VL
17009 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17010 : && ix86_pre_reload_split ()
17011 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17012 : STRIP_UNARY (operands[4]))
17013 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17014 : STRIP_UNARY (operands[4]))
17015 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17016 : STRIP_UNARY (operands[3]))
17017 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17018 : STRIP_UNARY (operands[3])))) &&
17019 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17020 : (TARGET_AVX)))
17021 : return -1;
17022 : return 5744; /* *avx512vl_vpternlogv8si_1 */
17023 :
17024 : case 8:
17025 : if (!
17026 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17027 : ((16 == 64 || TARGET_AVX512VL
17028 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17029 : && ix86_pre_reload_split ()
17030 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17031 : STRIP_UNARY (operands[4]))
17032 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17033 : STRIP_UNARY (operands[4]))
17034 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17035 : STRIP_UNARY (operands[3]))
17036 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17037 : STRIP_UNARY (operands[3])))))
17038 : return -1;
17039 : return 5771; /* *avx512vl_vpternlogv4si_1 */
17040 :
17041 : case 9:
17042 : if (!(
17043 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17044 : ((64 == 64 || TARGET_AVX512VL
17045 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17046 : && ix86_pre_reload_split ()
17047 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17048 : STRIP_UNARY (operands[4]))
17049 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17050 : STRIP_UNARY (operands[4]))
17051 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17052 : STRIP_UNARY (operands[3]))
17053 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17054 : STRIP_UNARY (operands[3])))) &&
17055 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17056 : (TARGET_AVX512F)))
17057 : return -1;
17058 : return 5798; /* *avx512f_vpternlogv8di_1 */
17059 :
17060 : case 10:
17061 : if (!(
17062 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17063 : ((32 == 64 || TARGET_AVX512VL
17064 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17065 : && ix86_pre_reload_split ()
17066 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17067 : STRIP_UNARY (operands[4]))
17068 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17069 : STRIP_UNARY (operands[4]))
17070 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17071 : STRIP_UNARY (operands[3]))
17072 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17073 : STRIP_UNARY (operands[3])))) &&
17074 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17075 : (TARGET_AVX)))
17076 : return -1;
17077 : return 5825; /* *avx512vl_vpternlogv4di_1 */
17078 :
17079 : case 11:
17080 : if (!
17081 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17082 : ((16 == 64 || TARGET_AVX512VL
17083 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17084 : && ix86_pre_reload_split ()
17085 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17086 : STRIP_UNARY (operands[4]))
17087 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17088 : STRIP_UNARY (operands[4]))
17089 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17090 : STRIP_UNARY (operands[3]))
17091 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17092 : STRIP_UNARY (operands[3])))))
17093 : return -1;
17094 : return 5852; /* *avx512vl_vpternlogv2di_1 */
17095 :
17096 : case 12:
17097 : if (!(
17098 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17099 : ((64 == 64 || TARGET_AVX512VL
17100 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17101 : && ix86_pre_reload_split ()
17102 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17103 : STRIP_UNARY (operands[4]))
17104 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17105 : STRIP_UNARY (operands[4]))
17106 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17107 : STRIP_UNARY (operands[3]))
17108 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17109 : STRIP_UNARY (operands[3])))) &&
17110 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17111 : (TARGET_AVX512F)))
17112 : return -1;
17113 : return 5558; /* *avx512bw_vpternlogv64qi_1 */
17114 :
17115 : case 13:
17116 : if (!(
17117 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17118 : ((32 == 64 || TARGET_AVX512VL
17119 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17120 : && ix86_pre_reload_split ()
17121 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17122 : STRIP_UNARY (operands[4]))
17123 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17124 : STRIP_UNARY (operands[4]))
17125 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17126 : STRIP_UNARY (operands[3]))
17127 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17128 : STRIP_UNARY (operands[3])))) &&
17129 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17130 : (TARGET_AVX)))
17131 : return -1;
17132 : return 5585; /* *avx512vl_vpternlogv32qi_1 */
17133 :
17134 : case 14:
17135 : if (!
17136 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17137 : ((16 == 64 || TARGET_AVX512VL
17138 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17139 : && ix86_pre_reload_split ()
17140 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17141 : STRIP_UNARY (operands[4]))
17142 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17143 : STRIP_UNARY (operands[4]))
17144 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17145 : STRIP_UNARY (operands[3]))
17146 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17147 : STRIP_UNARY (operands[3])))))
17148 : return -1;
17149 : return 5612; /* *avx512vl_vpternlogv16qi_1 */
17150 :
17151 : case 15:
17152 : if (!(
17153 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17154 : ((64 == 64 || TARGET_AVX512VL
17155 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17156 : && ix86_pre_reload_split ()
17157 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17158 : STRIP_UNARY (operands[4]))
17159 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17160 : STRIP_UNARY (operands[4]))
17161 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17162 : STRIP_UNARY (operands[3]))
17163 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17164 : STRIP_UNARY (operands[3])))) &&
17165 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17166 : (TARGET_AVX512F)))
17167 : return -1;
17168 : return 5639; /* *avx512bw_vpternlogv32hi_1 */
17169 :
17170 : case 16:
17171 : if (!(
17172 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17173 : ((32 == 64 || TARGET_AVX512VL
17174 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17175 : && ix86_pre_reload_split ()
17176 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17177 : STRIP_UNARY (operands[4]))
17178 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17179 : STRIP_UNARY (operands[4]))
17180 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17181 : STRIP_UNARY (operands[3]))
17182 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17183 : STRIP_UNARY (operands[3])))) &&
17184 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17185 : (TARGET_AVX)))
17186 : return -1;
17187 : return 5666; /* *avx512vl_vpternlogv16hi_1 */
17188 :
17189 : case 17:
17190 : if (!
17191 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17192 : ((16 == 64 || TARGET_AVX512VL
17193 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17194 : && ix86_pre_reload_split ()
17195 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17196 : STRIP_UNARY (operands[4]))
17197 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17198 : STRIP_UNARY (operands[4]))
17199 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17200 : STRIP_UNARY (operands[3]))
17201 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17202 : STRIP_UNARY (operands[3])))))
17203 : return -1;
17204 : return 5693; /* *avx512vl_vpternlogv8hi_1 */
17205 :
17206 : case 18:
17207 : if (!(
17208 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17209 : ((64 == 64 || TARGET_AVX512VL
17210 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17211 : && ix86_pre_reload_split ()
17212 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17213 : STRIP_UNARY (operands[4]))
17214 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17215 : STRIP_UNARY (operands[4]))
17216 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17217 : STRIP_UNARY (operands[3]))
17218 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17219 : STRIP_UNARY (operands[3])))) &&
17220 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17221 : (TARGET_AVX512F)))
17222 : return -1;
17223 : return 5720; /* *avx512f_vpternlogv16si_1 */
17224 :
17225 : case 19:
17226 : if (!(
17227 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17228 : ((32 == 64 || TARGET_AVX512VL
17229 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17230 : && ix86_pre_reload_split ()
17231 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17232 : STRIP_UNARY (operands[4]))
17233 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17234 : STRIP_UNARY (operands[4]))
17235 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17236 : STRIP_UNARY (operands[3]))
17237 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17238 : STRIP_UNARY (operands[3])))) &&
17239 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17240 : (TARGET_AVX)))
17241 : return -1;
17242 : return 5747; /* *avx512vl_vpternlogv8si_1 */
17243 :
17244 : case 20:
17245 : if (!
17246 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17247 : ((16 == 64 || TARGET_AVX512VL
17248 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17249 : && ix86_pre_reload_split ()
17250 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17251 : STRIP_UNARY (operands[4]))
17252 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17253 : STRIP_UNARY (operands[4]))
17254 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17255 : STRIP_UNARY (operands[3]))
17256 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17257 : STRIP_UNARY (operands[3])))))
17258 : return -1;
17259 : return 5774; /* *avx512vl_vpternlogv4si_1 */
17260 :
17261 : case 21:
17262 : if (!(
17263 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17264 : ((64 == 64 || TARGET_AVX512VL
17265 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17266 : && ix86_pre_reload_split ()
17267 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17268 : STRIP_UNARY (operands[4]))
17269 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17270 : STRIP_UNARY (operands[4]))
17271 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17272 : STRIP_UNARY (operands[3]))
17273 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17274 : STRIP_UNARY (operands[3])))) &&
17275 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17276 : (TARGET_AVX512F)))
17277 : return -1;
17278 : return 5801; /* *avx512f_vpternlogv8di_1 */
17279 :
17280 : case 22:
17281 : if (!(
17282 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17283 : ((32 == 64 || TARGET_AVX512VL
17284 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17285 : && ix86_pre_reload_split ()
17286 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17287 : STRIP_UNARY (operands[4]))
17288 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17289 : STRIP_UNARY (operands[4]))
17290 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17291 : STRIP_UNARY (operands[3]))
17292 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17293 : STRIP_UNARY (operands[3])))) &&
17294 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17295 : (TARGET_AVX)))
17296 : return -1;
17297 : return 5828; /* *avx512vl_vpternlogv4di_1 */
17298 :
17299 : case 23:
17300 : if (!
17301 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17302 : ((16 == 64 || TARGET_AVX512VL
17303 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17304 : && ix86_pre_reload_split ()
17305 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17306 : STRIP_UNARY (operands[4]))
17307 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17308 : STRIP_UNARY (operands[4]))
17309 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17310 : STRIP_UNARY (operands[3]))
17311 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17312 : STRIP_UNARY (operands[3])))))
17313 : return -1;
17314 : return 5855; /* *avx512vl_vpternlogv2di_1 */
17315 :
17316 : case 24:
17317 : if (!(
17318 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17319 : ((64 == 64 || TARGET_AVX512VL
17320 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17321 : && ix86_pre_reload_split ()
17322 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17323 : STRIP_UNARY (operands[4]))
17324 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17325 : STRIP_UNARY (operands[4]))
17326 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17327 : STRIP_UNARY (operands[3]))
17328 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17329 : STRIP_UNARY (operands[3])))) &&
17330 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17331 : (TARGET_AVX512F)))
17332 : return -1;
17333 : return 5561; /* *avx512bw_vpternlogv64qi_1 */
17334 :
17335 : case 25:
17336 : if (!(
17337 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17338 : ((32 == 64 || TARGET_AVX512VL
17339 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17340 : && ix86_pre_reload_split ()
17341 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17342 : STRIP_UNARY (operands[4]))
17343 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17344 : STRIP_UNARY (operands[4]))
17345 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17346 : STRIP_UNARY (operands[3]))
17347 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17348 : STRIP_UNARY (operands[3])))) &&
17349 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17350 : (TARGET_AVX)))
17351 : return -1;
17352 : return 5588; /* *avx512vl_vpternlogv32qi_1 */
17353 :
17354 : case 26:
17355 : if (!
17356 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17357 : ((16 == 64 || TARGET_AVX512VL
17358 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17359 : && ix86_pre_reload_split ()
17360 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17361 : STRIP_UNARY (operands[4]))
17362 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17363 : STRIP_UNARY (operands[4]))
17364 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17365 : STRIP_UNARY (operands[3]))
17366 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17367 : STRIP_UNARY (operands[3])))))
17368 : return -1;
17369 : return 5615; /* *avx512vl_vpternlogv16qi_1 */
17370 :
17371 : case 27:
17372 : if (!(
17373 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17374 : ((64 == 64 || TARGET_AVX512VL
17375 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17376 : && ix86_pre_reload_split ()
17377 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17378 : STRIP_UNARY (operands[4]))
17379 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17380 : STRIP_UNARY (operands[4]))
17381 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17382 : STRIP_UNARY (operands[3]))
17383 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17384 : STRIP_UNARY (operands[3])))) &&
17385 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17386 : (TARGET_AVX512F)))
17387 : return -1;
17388 : return 5642; /* *avx512bw_vpternlogv32hi_1 */
17389 :
17390 : case 28:
17391 : if (!(
17392 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17393 : ((32 == 64 || TARGET_AVX512VL
17394 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17395 : && ix86_pre_reload_split ()
17396 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17397 : STRIP_UNARY (operands[4]))
17398 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17399 : STRIP_UNARY (operands[4]))
17400 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17401 : STRIP_UNARY (operands[3]))
17402 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17403 : STRIP_UNARY (operands[3])))) &&
17404 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17405 : (TARGET_AVX)))
17406 : return -1;
17407 : return 5669; /* *avx512vl_vpternlogv16hi_1 */
17408 :
17409 : case 29:
17410 : if (!
17411 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17412 : ((16 == 64 || TARGET_AVX512VL
17413 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17414 : && ix86_pre_reload_split ()
17415 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17416 : STRIP_UNARY (operands[4]))
17417 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17418 : STRIP_UNARY (operands[4]))
17419 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17420 : STRIP_UNARY (operands[3]))
17421 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17422 : STRIP_UNARY (operands[3])))))
17423 : return -1;
17424 : return 5696; /* *avx512vl_vpternlogv8hi_1 */
17425 :
17426 : case 30:
17427 : if (!(
17428 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17429 : ((64 == 64 || TARGET_AVX512VL
17430 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17431 : && ix86_pre_reload_split ()
17432 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17433 : STRIP_UNARY (operands[4]))
17434 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17435 : STRIP_UNARY (operands[4]))
17436 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17437 : STRIP_UNARY (operands[3]))
17438 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17439 : STRIP_UNARY (operands[3])))) &&
17440 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17441 : (TARGET_AVX512F)))
17442 : return -1;
17443 : return 5723; /* *avx512f_vpternlogv16si_1 */
17444 :
17445 : case 31:
17446 : if (!(
17447 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17448 : ((32 == 64 || TARGET_AVX512VL
17449 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17450 : && ix86_pre_reload_split ()
17451 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17452 : STRIP_UNARY (operands[4]))
17453 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17454 : STRIP_UNARY (operands[4]))
17455 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17456 : STRIP_UNARY (operands[3]))
17457 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17458 : STRIP_UNARY (operands[3])))) &&
17459 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17460 : (TARGET_AVX)))
17461 : return -1;
17462 : return 5750; /* *avx512vl_vpternlogv8si_1 */
17463 :
17464 : case 32:
17465 : if (!
17466 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17467 : ((16 == 64 || TARGET_AVX512VL
17468 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17469 : && ix86_pre_reload_split ()
17470 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17471 : STRIP_UNARY (operands[4]))
17472 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17473 : STRIP_UNARY (operands[4]))
17474 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17475 : STRIP_UNARY (operands[3]))
17476 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17477 : STRIP_UNARY (operands[3])))))
17478 : return -1;
17479 : return 5777; /* *avx512vl_vpternlogv4si_1 */
17480 :
17481 : case 33:
17482 : if (!(
17483 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17484 : ((64 == 64 || TARGET_AVX512VL
17485 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17486 : && ix86_pre_reload_split ()
17487 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17488 : STRIP_UNARY (operands[4]))
17489 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17490 : STRIP_UNARY (operands[4]))
17491 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17492 : STRIP_UNARY (operands[3]))
17493 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17494 : STRIP_UNARY (operands[3])))) &&
17495 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17496 : (TARGET_AVX512F)))
17497 : return -1;
17498 : return 5804; /* *avx512f_vpternlogv8di_1 */
17499 :
17500 : case 34:
17501 : if (!(
17502 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17503 : ((32 == 64 || TARGET_AVX512VL
17504 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17505 : && ix86_pre_reload_split ()
17506 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17507 : STRIP_UNARY (operands[4]))
17508 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17509 : STRIP_UNARY (operands[4]))
17510 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17511 : STRIP_UNARY (operands[3]))
17512 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17513 : STRIP_UNARY (operands[3])))) &&
17514 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17515 : (TARGET_AVX)))
17516 : return -1;
17517 : return 5831; /* *avx512vl_vpternlogv4di_1 */
17518 :
17519 : case 35:
17520 : if (!
17521 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17522 : ((16 == 64 || TARGET_AVX512VL
17523 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17524 : && ix86_pre_reload_split ()
17525 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17526 : STRIP_UNARY (operands[4]))
17527 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17528 : STRIP_UNARY (operands[4]))
17529 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17530 : STRIP_UNARY (operands[3]))
17531 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17532 : STRIP_UNARY (operands[3])))))
17533 : return -1;
17534 : return 5858; /* *avx512vl_vpternlogv2di_1 */
17535 :
17536 : case 36:
17537 : if (!(
17538 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17539 : ((64 == 64 || TARGET_AVX512VL
17540 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17541 : && ix86_pre_reload_split ()) &&
17542 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17543 : (TARGET_AVX512F)))
17544 : return -1;
17545 : return 6839; /* *avx512bw_vpternlogv64qi_3 */
17546 :
17547 : case 37:
17548 : if (!(
17549 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17550 : ((32 == 64 || TARGET_AVX512VL
17551 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17552 : && ix86_pre_reload_split ()) &&
17553 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17554 : (TARGET_AVX)))
17555 : return -1;
17556 : return 6848; /* *avx512vl_vpternlogv32qi_3 */
17557 :
17558 : case 38:
17559 : if (!
17560 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17561 : ((16 == 64 || TARGET_AVX512VL
17562 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17563 : && ix86_pre_reload_split ()))
17564 : return -1;
17565 : return 6857; /* *avx512vl_vpternlogv16qi_3 */
17566 :
17567 : case 39:
17568 : if (!(
17569 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17570 : ((64 == 64 || TARGET_AVX512VL
17571 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17572 : && ix86_pre_reload_split ()) &&
17573 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17574 : (TARGET_AVX512F)))
17575 : return -1;
17576 : return 6866; /* *avx512bw_vpternlogv32hi_3 */
17577 :
17578 : case 40:
17579 : if (!(
17580 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17581 : ((32 == 64 || TARGET_AVX512VL
17582 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17583 : && ix86_pre_reload_split ()) &&
17584 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17585 : (TARGET_AVX)))
17586 : return -1;
17587 : return 6875; /* *avx512vl_vpternlogv16hi_3 */
17588 :
17589 : case 41:
17590 : if (!
17591 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17592 : ((16 == 64 || TARGET_AVX512VL
17593 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17594 : && ix86_pre_reload_split ()))
17595 : return -1;
17596 : return 6884; /* *avx512vl_vpternlogv8hi_3 */
17597 :
17598 : case 42:
17599 : if (!(
17600 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17601 : ((64 == 64 || TARGET_AVX512VL
17602 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17603 : && ix86_pre_reload_split ()) &&
17604 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17605 : (TARGET_AVX512F)))
17606 : return -1;
17607 : return 6893; /* *avx512f_vpternlogv16si_3 */
17608 :
17609 : case 43:
17610 : if (!(
17611 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17612 : ((32 == 64 || TARGET_AVX512VL
17613 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17614 : && ix86_pre_reload_split ()) &&
17615 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17616 : (TARGET_AVX)))
17617 : return -1;
17618 : return 6902; /* *avx512vl_vpternlogv8si_3 */
17619 :
17620 : case 44:
17621 : if (!
17622 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17623 : ((16 == 64 || TARGET_AVX512VL
17624 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17625 : && ix86_pre_reload_split ()))
17626 : return -1;
17627 : return 6911; /* *avx512vl_vpternlogv4si_3 */
17628 :
17629 : case 45:
17630 : if (!(
17631 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17632 : ((64 == 64 || TARGET_AVX512VL
17633 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17634 : && ix86_pre_reload_split ()) &&
17635 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17636 : (TARGET_AVX512F)))
17637 : return -1;
17638 : return 6920; /* *avx512f_vpternlogv8di_3 */
17639 :
17640 : case 46:
17641 : if (!(
17642 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17643 : ((32 == 64 || TARGET_AVX512VL
17644 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17645 : && ix86_pre_reload_split ()) &&
17646 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17647 : (TARGET_AVX)))
17648 : return -1;
17649 : return 6929; /* *avx512vl_vpternlogv4di_3 */
17650 :
17651 : case 47:
17652 : if (!
17653 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17654 : ((16 == 64 || TARGET_AVX512VL
17655 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17656 : && ix86_pre_reload_split ()))
17657 : return -1;
17658 : return 6938; /* *avx512vl_vpternlogv2di_3 */
17659 :
17660 : default:
17661 : return -1;
17662 : }
17663 :
17664 : case AND:
17665 : switch (pattern537 (x2))
17666 : {
17667 : case 0:
17668 : if (!(
17669 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17670 : ((64 == 64 || TARGET_AVX512VL
17671 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17672 : && ix86_pre_reload_split ()
17673 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17674 : STRIP_UNARY (operands[4]))
17675 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17676 : STRIP_UNARY (operands[4]))
17677 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17678 : STRIP_UNARY (operands[3]))
17679 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17680 : STRIP_UNARY (operands[3])))) &&
17681 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17682 : (TARGET_AVX512F)))
17683 : return -1;
17684 : return 6203; /* *avx512bw_vpternlogv64qi_2 */
17685 :
17686 : case 1:
17687 : if (!(
17688 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17689 : ((32 == 64 || TARGET_AVX512VL
17690 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17691 : && ix86_pre_reload_split ()
17692 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17693 : STRIP_UNARY (operands[4]))
17694 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17695 : STRIP_UNARY (operands[4]))
17696 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17697 : STRIP_UNARY (operands[3]))
17698 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17699 : STRIP_UNARY (operands[3])))) &&
17700 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17701 : (TARGET_AVX)))
17702 : return -1;
17703 : return 6230; /* *avx512vl_vpternlogv32qi_2 */
17704 :
17705 : case 2:
17706 : if (!
17707 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17708 : ((16 == 64 || TARGET_AVX512VL
17709 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17710 : && ix86_pre_reload_split ()
17711 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17712 : STRIP_UNARY (operands[4]))
17713 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17714 : STRIP_UNARY (operands[4]))
17715 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17716 : STRIP_UNARY (operands[3]))
17717 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17718 : STRIP_UNARY (operands[3])))))
17719 : return -1;
17720 : return 6257; /* *avx512vl_vpternlogv16qi_2 */
17721 :
17722 : case 3:
17723 : if (!(
17724 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17725 : ((64 == 64 || TARGET_AVX512VL
17726 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17727 : && ix86_pre_reload_split ()
17728 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17729 : STRIP_UNARY (operands[4]))
17730 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17731 : STRIP_UNARY (operands[4]))
17732 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17733 : STRIP_UNARY (operands[3]))
17734 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17735 : STRIP_UNARY (operands[3])))) &&
17736 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17737 : (TARGET_AVX512F)))
17738 : return -1;
17739 : return 6284; /* *avx512bw_vpternlogv32hi_2 */
17740 :
17741 : case 4:
17742 : if (!(
17743 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17744 : ((32 == 64 || TARGET_AVX512VL
17745 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17746 : && ix86_pre_reload_split ()
17747 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17748 : STRIP_UNARY (operands[4]))
17749 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17750 : STRIP_UNARY (operands[4]))
17751 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17752 : STRIP_UNARY (operands[3]))
17753 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17754 : STRIP_UNARY (operands[3])))) &&
17755 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17756 : (TARGET_AVX)))
17757 : return -1;
17758 : return 6311; /* *avx512vl_vpternlogv16hi_2 */
17759 :
17760 : case 5:
17761 : if (!
17762 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17763 : ((16 == 64 || TARGET_AVX512VL
17764 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17765 : && ix86_pre_reload_split ()
17766 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17767 : STRIP_UNARY (operands[4]))
17768 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17769 : STRIP_UNARY (operands[4]))
17770 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17771 : STRIP_UNARY (operands[3]))
17772 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17773 : STRIP_UNARY (operands[3])))))
17774 : return -1;
17775 : return 6338; /* *avx512vl_vpternlogv8hi_2 */
17776 :
17777 : case 6:
17778 : if (!(
17779 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17780 : ((64 == 64 || TARGET_AVX512VL
17781 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17782 : && ix86_pre_reload_split ()
17783 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17784 : STRIP_UNARY (operands[4]))
17785 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17786 : STRIP_UNARY (operands[4]))
17787 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17788 : STRIP_UNARY (operands[3]))
17789 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17790 : STRIP_UNARY (operands[3])))) &&
17791 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17792 : (TARGET_AVX512F)))
17793 : return -1;
17794 : return 6365; /* *avx512f_vpternlogv16si_2 */
17795 :
17796 : case 7:
17797 : if (!(
17798 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17799 : ((32 == 64 || TARGET_AVX512VL
17800 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17801 : && ix86_pre_reload_split ()
17802 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17803 : STRIP_UNARY (operands[4]))
17804 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17805 : STRIP_UNARY (operands[4]))
17806 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17807 : STRIP_UNARY (operands[3]))
17808 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17809 : STRIP_UNARY (operands[3])))) &&
17810 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17811 : (TARGET_AVX)))
17812 : return -1;
17813 : return 6392; /* *avx512vl_vpternlogv8si_2 */
17814 :
17815 : case 8:
17816 : if (!
17817 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17818 : ((16 == 64 || TARGET_AVX512VL
17819 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17820 : && ix86_pre_reload_split ()
17821 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17822 : STRIP_UNARY (operands[4]))
17823 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17824 : STRIP_UNARY (operands[4]))
17825 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17826 : STRIP_UNARY (operands[3]))
17827 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17828 : STRIP_UNARY (operands[3])))))
17829 : return -1;
17830 : return 6419; /* *avx512vl_vpternlogv4si_2 */
17831 :
17832 : case 9:
17833 : if (!(
17834 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17835 : ((64 == 64 || TARGET_AVX512VL
17836 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17837 : && ix86_pre_reload_split ()
17838 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17839 : STRIP_UNARY (operands[4]))
17840 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17841 : STRIP_UNARY (operands[4]))
17842 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17843 : STRIP_UNARY (operands[3]))
17844 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17845 : STRIP_UNARY (operands[3])))) &&
17846 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17847 : (TARGET_AVX512F)))
17848 : return -1;
17849 : return 6446; /* *avx512f_vpternlogv8di_2 */
17850 :
17851 : case 10:
17852 : if (!(
17853 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17854 : ((32 == 64 || TARGET_AVX512VL
17855 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17856 : && ix86_pre_reload_split ()
17857 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17858 : STRIP_UNARY (operands[4]))
17859 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17860 : STRIP_UNARY (operands[4]))
17861 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17862 : STRIP_UNARY (operands[3]))
17863 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17864 : STRIP_UNARY (operands[3])))) &&
17865 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17866 : (TARGET_AVX)))
17867 : return -1;
17868 : return 6473; /* *avx512vl_vpternlogv4di_2 */
17869 :
17870 : case 11:
17871 : if (!
17872 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17873 : ((16 == 64 || TARGET_AVX512VL
17874 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17875 : && ix86_pre_reload_split ()
17876 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17877 : STRIP_UNARY (operands[4]))
17878 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17879 : STRIP_UNARY (operands[4]))
17880 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17881 : STRIP_UNARY (operands[3]))
17882 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17883 : STRIP_UNARY (operands[3])))))
17884 : return -1;
17885 : return 6500; /* *avx512vl_vpternlogv2di_2 */
17886 :
17887 : default:
17888 : return -1;
17889 : }
17890 :
17891 : case IOR:
17892 : switch (pattern537 (x2))
17893 : {
17894 : case 0:
17895 : if (!(
17896 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17897 : ((64 == 64 || TARGET_AVX512VL
17898 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17899 : && ix86_pre_reload_split ()
17900 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17901 : STRIP_UNARY (operands[4]))
17902 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17903 : STRIP_UNARY (operands[4]))
17904 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17905 : STRIP_UNARY (operands[3]))
17906 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17907 : STRIP_UNARY (operands[3])))) &&
17908 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17909 : (TARGET_AVX512F)))
17910 : return -1;
17911 : return 6206; /* *avx512bw_vpternlogv64qi_2 */
17912 :
17913 : case 1:
17914 : if (!(
17915 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17916 : ((32 == 64 || TARGET_AVX512VL
17917 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17918 : && ix86_pre_reload_split ()
17919 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17920 : STRIP_UNARY (operands[4]))
17921 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17922 : STRIP_UNARY (operands[4]))
17923 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17924 : STRIP_UNARY (operands[3]))
17925 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17926 : STRIP_UNARY (operands[3])))) &&
17927 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17928 : (TARGET_AVX)))
17929 : return -1;
17930 : return 6233; /* *avx512vl_vpternlogv32qi_2 */
17931 :
17932 : case 2:
17933 : if (!
17934 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17935 : ((16 == 64 || TARGET_AVX512VL
17936 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17937 : && ix86_pre_reload_split ()
17938 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17939 : STRIP_UNARY (operands[4]))
17940 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17941 : STRIP_UNARY (operands[4]))
17942 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17943 : STRIP_UNARY (operands[3]))
17944 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17945 : STRIP_UNARY (operands[3])))))
17946 : return -1;
17947 : return 6260; /* *avx512vl_vpternlogv16qi_2 */
17948 :
17949 : case 3:
17950 : if (!(
17951 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17952 : ((64 == 64 || TARGET_AVX512VL
17953 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17954 : && ix86_pre_reload_split ()
17955 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17956 : STRIP_UNARY (operands[4]))
17957 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17958 : STRIP_UNARY (operands[4]))
17959 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17960 : STRIP_UNARY (operands[3]))
17961 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17962 : STRIP_UNARY (operands[3])))) &&
17963 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17964 : (TARGET_AVX512F)))
17965 : return -1;
17966 : return 6287; /* *avx512bw_vpternlogv32hi_2 */
17967 :
17968 : case 4:
17969 : if (!(
17970 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17971 : ((32 == 64 || TARGET_AVX512VL
17972 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17973 : && ix86_pre_reload_split ()
17974 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17975 : STRIP_UNARY (operands[4]))
17976 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17977 : STRIP_UNARY (operands[4]))
17978 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17979 : STRIP_UNARY (operands[3]))
17980 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17981 : STRIP_UNARY (operands[3])))) &&
17982 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17983 : (TARGET_AVX)))
17984 : return -1;
17985 : return 6314; /* *avx512vl_vpternlogv16hi_2 */
17986 :
17987 : case 5:
17988 : if (!
17989 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17990 : ((16 == 64 || TARGET_AVX512VL
17991 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17992 : && ix86_pre_reload_split ()
17993 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17994 : STRIP_UNARY (operands[4]))
17995 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17996 : STRIP_UNARY (operands[4]))
17997 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17998 : STRIP_UNARY (operands[3]))
17999 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18000 : STRIP_UNARY (operands[3])))))
18001 : return -1;
18002 : return 6341; /* *avx512vl_vpternlogv8hi_2 */
18003 :
18004 : case 6:
18005 : if (!(
18006 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18007 : ((64 == 64 || TARGET_AVX512VL
18008 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18009 : && ix86_pre_reload_split ()
18010 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18011 : STRIP_UNARY (operands[4]))
18012 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18013 : STRIP_UNARY (operands[4]))
18014 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18015 : STRIP_UNARY (operands[3]))
18016 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18017 : STRIP_UNARY (operands[3])))) &&
18018 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18019 : (TARGET_AVX512F)))
18020 : return -1;
18021 : return 6368; /* *avx512f_vpternlogv16si_2 */
18022 :
18023 : case 7:
18024 : if (!(
18025 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18026 : ((32 == 64 || TARGET_AVX512VL
18027 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18028 : && ix86_pre_reload_split ()
18029 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18030 : STRIP_UNARY (operands[4]))
18031 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18032 : STRIP_UNARY (operands[4]))
18033 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18034 : STRIP_UNARY (operands[3]))
18035 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18036 : STRIP_UNARY (operands[3])))) &&
18037 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18038 : (TARGET_AVX)))
18039 : return -1;
18040 : return 6395; /* *avx512vl_vpternlogv8si_2 */
18041 :
18042 : case 8:
18043 : if (!
18044 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18045 : ((16 == 64 || TARGET_AVX512VL
18046 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18047 : && ix86_pre_reload_split ()
18048 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18049 : STRIP_UNARY (operands[4]))
18050 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18051 : STRIP_UNARY (operands[4]))
18052 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18053 : STRIP_UNARY (operands[3]))
18054 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18055 : STRIP_UNARY (operands[3])))))
18056 : return -1;
18057 : return 6422; /* *avx512vl_vpternlogv4si_2 */
18058 :
18059 : case 9:
18060 : if (!(
18061 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18062 : ((64 == 64 || TARGET_AVX512VL
18063 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18064 : && ix86_pre_reload_split ()
18065 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18066 : STRIP_UNARY (operands[4]))
18067 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18068 : STRIP_UNARY (operands[4]))
18069 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18070 : STRIP_UNARY (operands[3]))
18071 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18072 : STRIP_UNARY (operands[3])))) &&
18073 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18074 : (TARGET_AVX512F)))
18075 : return -1;
18076 : return 6449; /* *avx512f_vpternlogv8di_2 */
18077 :
18078 : case 10:
18079 : if (!(
18080 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18081 : ((32 == 64 || TARGET_AVX512VL
18082 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18083 : && ix86_pre_reload_split ()
18084 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18085 : STRIP_UNARY (operands[4]))
18086 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18087 : STRIP_UNARY (operands[4]))
18088 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18089 : STRIP_UNARY (operands[3]))
18090 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18091 : STRIP_UNARY (operands[3])))) &&
18092 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18093 : (TARGET_AVX)))
18094 : return -1;
18095 : return 6476; /* *avx512vl_vpternlogv4di_2 */
18096 :
18097 : case 11:
18098 : if (!
18099 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18100 : ((16 == 64 || TARGET_AVX512VL
18101 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18102 : && ix86_pre_reload_split ()
18103 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18104 : STRIP_UNARY (operands[4]))
18105 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18106 : STRIP_UNARY (operands[4]))
18107 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18108 : STRIP_UNARY (operands[3]))
18109 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18110 : STRIP_UNARY (operands[3])))))
18111 : return -1;
18112 : return 6503; /* *avx512vl_vpternlogv2di_2 */
18113 :
18114 : default:
18115 : return -1;
18116 : }
18117 :
18118 : case XOR:
18119 : switch (pattern537 (x2))
18120 : {
18121 : case 0:
18122 : if (!(
18123 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18124 : ((64 == 64 || TARGET_AVX512VL
18125 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18126 : && ix86_pre_reload_split ()
18127 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18128 : STRIP_UNARY (operands[4]))
18129 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18130 : STRIP_UNARY (operands[4]))
18131 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18132 : STRIP_UNARY (operands[3]))
18133 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18134 : STRIP_UNARY (operands[3])))) &&
18135 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18136 : (TARGET_AVX512F)))
18137 : return -1;
18138 : return 6209; /* *avx512bw_vpternlogv64qi_2 */
18139 :
18140 : case 1:
18141 : if (!(
18142 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18143 : ((32 == 64 || TARGET_AVX512VL
18144 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18145 : && ix86_pre_reload_split ()
18146 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18147 : STRIP_UNARY (operands[4]))
18148 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18149 : STRIP_UNARY (operands[4]))
18150 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18151 : STRIP_UNARY (operands[3]))
18152 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18153 : STRIP_UNARY (operands[3])))) &&
18154 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18155 : (TARGET_AVX)))
18156 : return -1;
18157 : return 6236; /* *avx512vl_vpternlogv32qi_2 */
18158 :
18159 : case 2:
18160 : if (!
18161 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18162 : ((16 == 64 || TARGET_AVX512VL
18163 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18164 : && ix86_pre_reload_split ()
18165 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18166 : STRIP_UNARY (operands[4]))
18167 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18168 : STRIP_UNARY (operands[4]))
18169 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18170 : STRIP_UNARY (operands[3]))
18171 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18172 : STRIP_UNARY (operands[3])))))
18173 : return -1;
18174 : return 6263; /* *avx512vl_vpternlogv16qi_2 */
18175 :
18176 : case 3:
18177 : if (!(
18178 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18179 : ((64 == 64 || TARGET_AVX512VL
18180 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18181 : && ix86_pre_reload_split ()
18182 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18183 : STRIP_UNARY (operands[4]))
18184 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18185 : STRIP_UNARY (operands[4]))
18186 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18187 : STRIP_UNARY (operands[3]))
18188 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18189 : STRIP_UNARY (operands[3])))) &&
18190 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18191 : (TARGET_AVX512F)))
18192 : return -1;
18193 : return 6290; /* *avx512bw_vpternlogv32hi_2 */
18194 :
18195 : case 4:
18196 : if (!(
18197 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18198 : ((32 == 64 || TARGET_AVX512VL
18199 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18200 : && ix86_pre_reload_split ()
18201 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18202 : STRIP_UNARY (operands[4]))
18203 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18204 : STRIP_UNARY (operands[4]))
18205 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18206 : STRIP_UNARY (operands[3]))
18207 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18208 : STRIP_UNARY (operands[3])))) &&
18209 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18210 : (TARGET_AVX)))
18211 : return -1;
18212 : return 6317; /* *avx512vl_vpternlogv16hi_2 */
18213 :
18214 : case 5:
18215 : if (!
18216 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18217 : ((16 == 64 || TARGET_AVX512VL
18218 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18219 : && ix86_pre_reload_split ()
18220 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18221 : STRIP_UNARY (operands[4]))
18222 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18223 : STRIP_UNARY (operands[4]))
18224 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18225 : STRIP_UNARY (operands[3]))
18226 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18227 : STRIP_UNARY (operands[3])))))
18228 : return -1;
18229 : return 6344; /* *avx512vl_vpternlogv8hi_2 */
18230 :
18231 : case 6:
18232 : if (!(
18233 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18234 : ((64 == 64 || TARGET_AVX512VL
18235 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18236 : && ix86_pre_reload_split ()
18237 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18238 : STRIP_UNARY (operands[4]))
18239 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18240 : STRIP_UNARY (operands[4]))
18241 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18242 : STRIP_UNARY (operands[3]))
18243 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18244 : STRIP_UNARY (operands[3])))) &&
18245 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18246 : (TARGET_AVX512F)))
18247 : return -1;
18248 : return 6371; /* *avx512f_vpternlogv16si_2 */
18249 :
18250 : case 7:
18251 : if (!(
18252 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18253 : ((32 == 64 || TARGET_AVX512VL
18254 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18255 : && ix86_pre_reload_split ()
18256 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18257 : STRIP_UNARY (operands[4]))
18258 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18259 : STRIP_UNARY (operands[4]))
18260 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18261 : STRIP_UNARY (operands[3]))
18262 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18263 : STRIP_UNARY (operands[3])))) &&
18264 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18265 : (TARGET_AVX)))
18266 : return -1;
18267 : return 6398; /* *avx512vl_vpternlogv8si_2 */
18268 :
18269 : case 8:
18270 : if (!
18271 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18272 : ((16 == 64 || TARGET_AVX512VL
18273 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18274 : && ix86_pre_reload_split ()
18275 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18276 : STRIP_UNARY (operands[4]))
18277 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18278 : STRIP_UNARY (operands[4]))
18279 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18280 : STRIP_UNARY (operands[3]))
18281 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18282 : STRIP_UNARY (operands[3])))))
18283 : return -1;
18284 : return 6425; /* *avx512vl_vpternlogv4si_2 */
18285 :
18286 : case 9:
18287 : if (!(
18288 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18289 : ((64 == 64 || TARGET_AVX512VL
18290 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18291 : && ix86_pre_reload_split ()
18292 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18293 : STRIP_UNARY (operands[4]))
18294 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18295 : STRIP_UNARY (operands[4]))
18296 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18297 : STRIP_UNARY (operands[3]))
18298 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18299 : STRIP_UNARY (operands[3])))) &&
18300 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18301 : (TARGET_AVX512F)))
18302 : return -1;
18303 : return 6452; /* *avx512f_vpternlogv8di_2 */
18304 :
18305 : case 10:
18306 : if (!(
18307 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18308 : ((32 == 64 || TARGET_AVX512VL
18309 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18310 : && ix86_pre_reload_split ()
18311 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18312 : STRIP_UNARY (operands[4]))
18313 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18314 : STRIP_UNARY (operands[4]))
18315 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18316 : STRIP_UNARY (operands[3]))
18317 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18318 : STRIP_UNARY (operands[3])))) &&
18319 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18320 : (TARGET_AVX)))
18321 : return -1;
18322 : return 6479; /* *avx512vl_vpternlogv4di_2 */
18323 :
18324 : case 11:
18325 : if (!
18326 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18327 : ((16 == 64 || TARGET_AVX512VL
18328 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18329 : && ix86_pre_reload_split ()
18330 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18331 : STRIP_UNARY (operands[4]))
18332 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18333 : STRIP_UNARY (operands[4]))
18334 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18335 : STRIP_UNARY (operands[3]))
18336 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18337 : STRIP_UNARY (operands[3])))))
18338 : return -1;
18339 : return 6506; /* *avx512vl_vpternlogv2di_2 */
18340 :
18341 : default:
18342 : return -1;
18343 : }
18344 :
18345 : default:
18346 : return -1;
18347 : }
18348 : }
18349 :
18350 : int
18351 : recog_316 (rtx x1 ATTRIBUTE_UNUSED,
18352 : rtx_insn *insn ATTRIBUTE_UNUSED,
18353 : int *pnum_clobbers ATTRIBUTE_UNUSED)
18354 : {
18355 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
18356 : rtx x2, x3, x4;
18357 : int res ATTRIBUTE_UNUSED;
18358 : x2 = XEXP (x1, 1);
18359 : x3 = XEXP (x2, 0);
18360 : x4 = XEXP (x3, 0);
18361 : switch (GET_CODE (x4))
18362 : {
18363 : case REG:
18364 : case SUBREG:
18365 : case MEM:
18366 : case NOT:
18367 : switch (pattern541 (x2))
18368 : {
18369 : case 0:
18370 : if (!(
18371 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18372 : ((64 == 64 || TARGET_AVX512VL
18373 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18374 : && ix86_pre_reload_split ()
18375 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18376 : STRIP_UNARY (operands[4]))
18377 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18378 : STRIP_UNARY (operands[4]))
18379 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18380 : STRIP_UNARY (operands[3]))
18381 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18382 : STRIP_UNARY (operands[3])))) &&
18383 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18384 : (TARGET_AVX512F)))
18385 : return -1;
18386 : return 5881; /* *avx512bw_vpternlogv32hf_1 */
18387 :
18388 : case 1:
18389 : if (!(
18390 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18391 : ((32 == 64 || TARGET_AVX512VL
18392 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18393 : && ix86_pre_reload_split ()
18394 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18395 : STRIP_UNARY (operands[4]))
18396 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18397 : STRIP_UNARY (operands[4]))
18398 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18399 : STRIP_UNARY (operands[3]))
18400 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18401 : STRIP_UNARY (operands[3])))) &&
18402 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18403 : (TARGET_AVX)))
18404 : return -1;
18405 : return 5908; /* *avx512vl_vpternlogv16hf_1 */
18406 :
18407 : case 2:
18408 : if (!
18409 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18410 : ((16 == 64 || TARGET_AVX512VL
18411 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18412 : && ix86_pre_reload_split ()
18413 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18414 : STRIP_UNARY (operands[4]))
18415 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18416 : STRIP_UNARY (operands[4]))
18417 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18418 : STRIP_UNARY (operands[3]))
18419 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18420 : STRIP_UNARY (operands[3])))))
18421 : return -1;
18422 : return 5935; /* *avx512fp16_vpternlogv8hf_1 */
18423 :
18424 : case 3:
18425 : if (!(
18426 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18427 : ((64 == 64 || TARGET_AVX512VL
18428 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18429 : && ix86_pre_reload_split ()
18430 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18431 : STRIP_UNARY (operands[4]))
18432 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18433 : STRIP_UNARY (operands[4]))
18434 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18435 : STRIP_UNARY (operands[3]))
18436 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18437 : STRIP_UNARY (operands[3])))) &&
18438 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18439 : (TARGET_AVX512F)))
18440 : return -1;
18441 : return 5962; /* *avx512bw_vpternlogv32bf_1 */
18442 :
18443 : case 4:
18444 : if (!(
18445 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18446 : ((32 == 64 || TARGET_AVX512VL
18447 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18448 : && ix86_pre_reload_split ()
18449 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18450 : STRIP_UNARY (operands[4]))
18451 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18452 : STRIP_UNARY (operands[4]))
18453 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18454 : STRIP_UNARY (operands[3]))
18455 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18456 : STRIP_UNARY (operands[3])))) &&
18457 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18458 : (TARGET_AVX)))
18459 : return -1;
18460 : return 5989; /* *avx512vl_vpternlogv16bf_1 */
18461 :
18462 : case 5:
18463 : if (!
18464 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18465 : ((16 == 64 || TARGET_AVX512VL
18466 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18467 : && ix86_pre_reload_split ()
18468 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18469 : STRIP_UNARY (operands[4]))
18470 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18471 : STRIP_UNARY (operands[4]))
18472 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18473 : STRIP_UNARY (operands[3]))
18474 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18475 : STRIP_UNARY (operands[3])))))
18476 : return -1;
18477 : return 6016; /* *avx512vl_vpternlogv8bf_1 */
18478 :
18479 : case 6:
18480 : if (!(
18481 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18482 : ((64 == 64 || TARGET_AVX512VL
18483 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18484 : && ix86_pre_reload_split ()
18485 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18486 : STRIP_UNARY (operands[4]))
18487 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18488 : STRIP_UNARY (operands[4]))
18489 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18490 : STRIP_UNARY (operands[3]))
18491 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18492 : STRIP_UNARY (operands[3])))) &&
18493 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18494 : (TARGET_AVX512F)))
18495 : return -1;
18496 : return 6043; /* *avx512f_vpternlogv16sf_1 */
18497 :
18498 : case 7:
18499 : if (!(
18500 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18501 : ((32 == 64 || TARGET_AVX512VL
18502 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18503 : && ix86_pre_reload_split ()
18504 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18505 : STRIP_UNARY (operands[4]))
18506 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18507 : STRIP_UNARY (operands[4]))
18508 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18509 : STRIP_UNARY (operands[3]))
18510 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18511 : STRIP_UNARY (operands[3])))) &&
18512 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18513 : (TARGET_AVX)))
18514 : return -1;
18515 : return 6070; /* *avx512vl_vpternlogv8sf_1 */
18516 :
18517 : case 8:
18518 : if (!
18519 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18520 : ((16 == 64 || TARGET_AVX512VL
18521 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18522 : && ix86_pre_reload_split ()
18523 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18524 : STRIP_UNARY (operands[4]))
18525 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18526 : STRIP_UNARY (operands[4]))
18527 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18528 : STRIP_UNARY (operands[3]))
18529 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18530 : STRIP_UNARY (operands[3])))))
18531 : return -1;
18532 : return 6097; /* *avx512vl_vpternlogv4sf_1 */
18533 :
18534 : case 9:
18535 : if (!(
18536 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18537 : ((64 == 64 || TARGET_AVX512VL
18538 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18539 : && ix86_pre_reload_split ()
18540 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18541 : STRIP_UNARY (operands[4]))
18542 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18543 : STRIP_UNARY (operands[4]))
18544 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18545 : STRIP_UNARY (operands[3]))
18546 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18547 : STRIP_UNARY (operands[3])))) &&
18548 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18549 : (TARGET_AVX512F)))
18550 : return -1;
18551 : return 6124; /* *avx512f_vpternlogv8df_1 */
18552 :
18553 : case 10:
18554 : if (!(
18555 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18556 : ((32 == 64 || TARGET_AVX512VL
18557 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18558 : && ix86_pre_reload_split ()
18559 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18560 : STRIP_UNARY (operands[4]))
18561 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18562 : STRIP_UNARY (operands[4]))
18563 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18564 : STRIP_UNARY (operands[3]))
18565 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18566 : STRIP_UNARY (operands[3])))) &&
18567 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18568 : (TARGET_AVX)))
18569 : return -1;
18570 : return 6151; /* *avx512vl_vpternlogv4df_1 */
18571 :
18572 : case 11:
18573 : if (!(
18574 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18575 : ((16 == 64 || TARGET_AVX512VL
18576 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18577 : && ix86_pre_reload_split ()
18578 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18579 : STRIP_UNARY (operands[4]))
18580 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18581 : STRIP_UNARY (operands[4]))
18582 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18583 : STRIP_UNARY (operands[3]))
18584 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18585 : STRIP_UNARY (operands[3])))) &&
18586 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18587 : (TARGET_SSE2)))
18588 : return -1;
18589 : return 6178; /* *avx512vl_vpternlogv2df_1 */
18590 :
18591 : case 12:
18592 : if (!(
18593 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18594 : ((64 == 64 || TARGET_AVX512VL
18595 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18596 : && ix86_pre_reload_split ()
18597 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18598 : STRIP_UNARY (operands[4]))
18599 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18600 : STRIP_UNARY (operands[4]))
18601 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18602 : STRIP_UNARY (operands[3]))
18603 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18604 : STRIP_UNARY (operands[3])))) &&
18605 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18606 : (TARGET_AVX512F)))
18607 : return -1;
18608 : return 5884; /* *avx512bw_vpternlogv32hf_1 */
18609 :
18610 : case 13:
18611 : if (!(
18612 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18613 : ((32 == 64 || TARGET_AVX512VL
18614 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18615 : && ix86_pre_reload_split ()
18616 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18617 : STRIP_UNARY (operands[4]))
18618 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18619 : STRIP_UNARY (operands[4]))
18620 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18621 : STRIP_UNARY (operands[3]))
18622 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18623 : STRIP_UNARY (operands[3])))) &&
18624 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18625 : (TARGET_AVX)))
18626 : return -1;
18627 : return 5911; /* *avx512vl_vpternlogv16hf_1 */
18628 :
18629 : case 14:
18630 : if (!
18631 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18632 : ((16 == 64 || TARGET_AVX512VL
18633 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18634 : && ix86_pre_reload_split ()
18635 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18636 : STRIP_UNARY (operands[4]))
18637 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18638 : STRIP_UNARY (operands[4]))
18639 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18640 : STRIP_UNARY (operands[3]))
18641 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18642 : STRIP_UNARY (operands[3])))))
18643 : return -1;
18644 : return 5938; /* *avx512fp16_vpternlogv8hf_1 */
18645 :
18646 : case 15:
18647 : if (!(
18648 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18649 : ((64 == 64 || TARGET_AVX512VL
18650 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18651 : && ix86_pre_reload_split ()
18652 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18653 : STRIP_UNARY (operands[4]))
18654 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18655 : STRIP_UNARY (operands[4]))
18656 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18657 : STRIP_UNARY (operands[3]))
18658 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18659 : STRIP_UNARY (operands[3])))) &&
18660 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18661 : (TARGET_AVX512F)))
18662 : return -1;
18663 : return 5965; /* *avx512bw_vpternlogv32bf_1 */
18664 :
18665 : case 16:
18666 : if (!(
18667 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18668 : ((32 == 64 || TARGET_AVX512VL
18669 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18670 : && ix86_pre_reload_split ()
18671 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18672 : STRIP_UNARY (operands[4]))
18673 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18674 : STRIP_UNARY (operands[4]))
18675 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18676 : STRIP_UNARY (operands[3]))
18677 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18678 : STRIP_UNARY (operands[3])))) &&
18679 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18680 : (TARGET_AVX)))
18681 : return -1;
18682 : return 5992; /* *avx512vl_vpternlogv16bf_1 */
18683 :
18684 : case 17:
18685 : if (!
18686 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18687 : ((16 == 64 || TARGET_AVX512VL
18688 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18689 : && ix86_pre_reload_split ()
18690 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18691 : STRIP_UNARY (operands[4]))
18692 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18693 : STRIP_UNARY (operands[4]))
18694 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18695 : STRIP_UNARY (operands[3]))
18696 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18697 : STRIP_UNARY (operands[3])))))
18698 : return -1;
18699 : return 6019; /* *avx512vl_vpternlogv8bf_1 */
18700 :
18701 : case 18:
18702 : if (!(
18703 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18704 : ((64 == 64 || TARGET_AVX512VL
18705 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18706 : && ix86_pre_reload_split ()
18707 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18708 : STRIP_UNARY (operands[4]))
18709 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18710 : STRIP_UNARY (operands[4]))
18711 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18712 : STRIP_UNARY (operands[3]))
18713 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18714 : STRIP_UNARY (operands[3])))) &&
18715 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18716 : (TARGET_AVX512F)))
18717 : return -1;
18718 : return 6046; /* *avx512f_vpternlogv16sf_1 */
18719 :
18720 : case 19:
18721 : if (!(
18722 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18723 : ((32 == 64 || TARGET_AVX512VL
18724 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18725 : && ix86_pre_reload_split ()
18726 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18727 : STRIP_UNARY (operands[4]))
18728 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18729 : STRIP_UNARY (operands[4]))
18730 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18731 : STRIP_UNARY (operands[3]))
18732 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18733 : STRIP_UNARY (operands[3])))) &&
18734 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18735 : (TARGET_AVX)))
18736 : return -1;
18737 : return 6073; /* *avx512vl_vpternlogv8sf_1 */
18738 :
18739 : case 20:
18740 : if (!
18741 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18742 : ((16 == 64 || TARGET_AVX512VL
18743 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18744 : && ix86_pre_reload_split ()
18745 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18746 : STRIP_UNARY (operands[4]))
18747 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18748 : STRIP_UNARY (operands[4]))
18749 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18750 : STRIP_UNARY (operands[3]))
18751 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18752 : STRIP_UNARY (operands[3])))))
18753 : return -1;
18754 : return 6100; /* *avx512vl_vpternlogv4sf_1 */
18755 :
18756 : case 21:
18757 : if (!(
18758 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18759 : ((64 == 64 || TARGET_AVX512VL
18760 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18761 : && ix86_pre_reload_split ()
18762 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18763 : STRIP_UNARY (operands[4]))
18764 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18765 : STRIP_UNARY (operands[4]))
18766 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18767 : STRIP_UNARY (operands[3]))
18768 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18769 : STRIP_UNARY (operands[3])))) &&
18770 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18771 : (TARGET_AVX512F)))
18772 : return -1;
18773 : return 6127; /* *avx512f_vpternlogv8df_1 */
18774 :
18775 : case 22:
18776 : if (!(
18777 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18778 : ((32 == 64 || TARGET_AVX512VL
18779 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18780 : && ix86_pre_reload_split ()
18781 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18782 : STRIP_UNARY (operands[4]))
18783 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18784 : STRIP_UNARY (operands[4]))
18785 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18786 : STRIP_UNARY (operands[3]))
18787 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18788 : STRIP_UNARY (operands[3])))) &&
18789 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18790 : (TARGET_AVX)))
18791 : return -1;
18792 : return 6154; /* *avx512vl_vpternlogv4df_1 */
18793 :
18794 : case 23:
18795 : if (!(
18796 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18797 : ((16 == 64 || TARGET_AVX512VL
18798 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18799 : && ix86_pre_reload_split ()
18800 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18801 : STRIP_UNARY (operands[4]))
18802 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18803 : STRIP_UNARY (operands[4]))
18804 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18805 : STRIP_UNARY (operands[3]))
18806 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18807 : STRIP_UNARY (operands[3])))) &&
18808 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18809 : (TARGET_SSE2)))
18810 : return -1;
18811 : return 6181; /* *avx512vl_vpternlogv2df_1 */
18812 :
18813 : case 24:
18814 : if (!(
18815 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18816 : ((64 == 64 || TARGET_AVX512VL
18817 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18818 : && ix86_pre_reload_split ()
18819 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18820 : STRIP_UNARY (operands[4]))
18821 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18822 : STRIP_UNARY (operands[4]))
18823 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18824 : STRIP_UNARY (operands[3]))
18825 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18826 : STRIP_UNARY (operands[3])))) &&
18827 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18828 : (TARGET_AVX512F)))
18829 : return -1;
18830 : return 5887; /* *avx512bw_vpternlogv32hf_1 */
18831 :
18832 : case 25:
18833 : if (!(
18834 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18835 : ((32 == 64 || TARGET_AVX512VL
18836 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18837 : && ix86_pre_reload_split ()
18838 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18839 : STRIP_UNARY (operands[4]))
18840 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18841 : STRIP_UNARY (operands[4]))
18842 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18843 : STRIP_UNARY (operands[3]))
18844 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18845 : STRIP_UNARY (operands[3])))) &&
18846 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18847 : (TARGET_AVX)))
18848 : return -1;
18849 : return 5914; /* *avx512vl_vpternlogv16hf_1 */
18850 :
18851 : case 26:
18852 : if (!
18853 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18854 : ((16 == 64 || TARGET_AVX512VL
18855 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18856 : && ix86_pre_reload_split ()
18857 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18858 : STRIP_UNARY (operands[4]))
18859 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18860 : STRIP_UNARY (operands[4]))
18861 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18862 : STRIP_UNARY (operands[3]))
18863 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18864 : STRIP_UNARY (operands[3])))))
18865 : return -1;
18866 : return 5941; /* *avx512fp16_vpternlogv8hf_1 */
18867 :
18868 : case 27:
18869 : if (!(
18870 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18871 : ((64 == 64 || TARGET_AVX512VL
18872 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18873 : && ix86_pre_reload_split ()
18874 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18875 : STRIP_UNARY (operands[4]))
18876 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18877 : STRIP_UNARY (operands[4]))
18878 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18879 : STRIP_UNARY (operands[3]))
18880 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18881 : STRIP_UNARY (operands[3])))) &&
18882 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18883 : (TARGET_AVX512F)))
18884 : return -1;
18885 : return 5968; /* *avx512bw_vpternlogv32bf_1 */
18886 :
18887 : case 28:
18888 : if (!(
18889 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18890 : ((32 == 64 || TARGET_AVX512VL
18891 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18892 : && ix86_pre_reload_split ()
18893 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18894 : STRIP_UNARY (operands[4]))
18895 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18896 : STRIP_UNARY (operands[4]))
18897 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18898 : STRIP_UNARY (operands[3]))
18899 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18900 : STRIP_UNARY (operands[3])))) &&
18901 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18902 : (TARGET_AVX)))
18903 : return -1;
18904 : return 5995; /* *avx512vl_vpternlogv16bf_1 */
18905 :
18906 : case 29:
18907 : if (!
18908 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18909 : ((16 == 64 || TARGET_AVX512VL
18910 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18911 : && ix86_pre_reload_split ()
18912 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18913 : STRIP_UNARY (operands[4]))
18914 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18915 : STRIP_UNARY (operands[4]))
18916 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18917 : STRIP_UNARY (operands[3]))
18918 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18919 : STRIP_UNARY (operands[3])))))
18920 : return -1;
18921 : return 6022; /* *avx512vl_vpternlogv8bf_1 */
18922 :
18923 : case 30:
18924 : if (!(
18925 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18926 : ((64 == 64 || TARGET_AVX512VL
18927 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18928 : && ix86_pre_reload_split ()
18929 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18930 : STRIP_UNARY (operands[4]))
18931 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18932 : STRIP_UNARY (operands[4]))
18933 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18934 : STRIP_UNARY (operands[3]))
18935 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18936 : STRIP_UNARY (operands[3])))) &&
18937 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18938 : (TARGET_AVX512F)))
18939 : return -1;
18940 : return 6049; /* *avx512f_vpternlogv16sf_1 */
18941 :
18942 : case 31:
18943 : if (!(
18944 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18945 : ((32 == 64 || TARGET_AVX512VL
18946 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18947 : && ix86_pre_reload_split ()
18948 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18949 : STRIP_UNARY (operands[4]))
18950 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18951 : STRIP_UNARY (operands[4]))
18952 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18953 : STRIP_UNARY (operands[3]))
18954 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18955 : STRIP_UNARY (operands[3])))) &&
18956 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18957 : (TARGET_AVX)))
18958 : return -1;
18959 : return 6076; /* *avx512vl_vpternlogv8sf_1 */
18960 :
18961 : case 32:
18962 : if (!
18963 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18964 : ((16 == 64 || TARGET_AVX512VL
18965 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18966 : && ix86_pre_reload_split ()
18967 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18968 : STRIP_UNARY (operands[4]))
18969 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18970 : STRIP_UNARY (operands[4]))
18971 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18972 : STRIP_UNARY (operands[3]))
18973 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18974 : STRIP_UNARY (operands[3])))))
18975 : return -1;
18976 : return 6103; /* *avx512vl_vpternlogv4sf_1 */
18977 :
18978 : case 33:
18979 : if (!(
18980 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18981 : ((64 == 64 || TARGET_AVX512VL
18982 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18983 : && ix86_pre_reload_split ()
18984 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18985 : STRIP_UNARY (operands[4]))
18986 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18987 : STRIP_UNARY (operands[4]))
18988 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18989 : STRIP_UNARY (operands[3]))
18990 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18991 : STRIP_UNARY (operands[3])))) &&
18992 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18993 : (TARGET_AVX512F)))
18994 : return -1;
18995 : return 6130; /* *avx512f_vpternlogv8df_1 */
18996 :
18997 : case 34:
18998 : if (!(
18999 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19000 : ((32 == 64 || TARGET_AVX512VL
19001 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19002 : && ix86_pre_reload_split ()
19003 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19004 : STRIP_UNARY (operands[4]))
19005 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19006 : STRIP_UNARY (operands[4]))
19007 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19008 : STRIP_UNARY (operands[3]))
19009 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19010 : STRIP_UNARY (operands[3])))) &&
19011 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19012 : (TARGET_AVX)))
19013 : return -1;
19014 : return 6157; /* *avx512vl_vpternlogv4df_1 */
19015 :
19016 : case 35:
19017 : if (!(
19018 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19019 : ((16 == 64 || TARGET_AVX512VL
19020 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19021 : && ix86_pre_reload_split ()
19022 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19023 : STRIP_UNARY (operands[4]))
19024 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19025 : STRIP_UNARY (operands[4]))
19026 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19027 : STRIP_UNARY (operands[3]))
19028 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19029 : STRIP_UNARY (operands[3])))) &&
19030 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19031 : (TARGET_SSE2)))
19032 : return -1;
19033 : return 6184; /* *avx512vl_vpternlogv2df_1 */
19034 :
19035 : case 36:
19036 : if (!(
19037 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19038 : ((64 == 64 || TARGET_AVX512VL
19039 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19040 : && ix86_pre_reload_split ()) &&
19041 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19042 : (TARGET_AVX512F)))
19043 : return -1;
19044 : return 6949; /* *avx512bw_vpternlogv32hf_3 */
19045 :
19046 : case 37:
19047 : if (!(
19048 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19049 : ((32 == 64 || TARGET_AVX512VL
19050 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19051 : && ix86_pre_reload_split ()) &&
19052 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19053 : (TARGET_AVX)))
19054 : return -1;
19055 : return 6958; /* *avx512vl_vpternlogv16hf_3 */
19056 :
19057 : case 38:
19058 : if (!
19059 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19060 : ((16 == 64 || TARGET_AVX512VL
19061 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19062 : && ix86_pre_reload_split ()))
19063 : return -1;
19064 : return 6967; /* *avx512fp16_vpternlogv8hf_3 */
19065 :
19066 : case 39:
19067 : if (!(
19068 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19069 : ((64 == 64 || TARGET_AVX512VL
19070 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19071 : && ix86_pre_reload_split ()) &&
19072 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19073 : (TARGET_AVX512F)))
19074 : return -1;
19075 : return 6976; /* *avx512bw_vpternlogv32bf_3 */
19076 :
19077 : case 40:
19078 : if (!(
19079 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19080 : ((32 == 64 || TARGET_AVX512VL
19081 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19082 : && ix86_pre_reload_split ()) &&
19083 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19084 : (TARGET_AVX)))
19085 : return -1;
19086 : return 6985; /* *avx512vl_vpternlogv16bf_3 */
19087 :
19088 : case 41:
19089 : if (!
19090 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19091 : ((16 == 64 || TARGET_AVX512VL
19092 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19093 : && ix86_pre_reload_split ()))
19094 : return -1;
19095 : return 6994; /* *avx512vl_vpternlogv8bf_3 */
19096 :
19097 : case 42:
19098 : if (!(
19099 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19100 : ((64 == 64 || TARGET_AVX512VL
19101 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19102 : && ix86_pre_reload_split ()) &&
19103 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19104 : (TARGET_AVX512F)))
19105 : return -1;
19106 : return 7003; /* *avx512f_vpternlogv16sf_3 */
19107 :
19108 : case 43:
19109 : if (!(
19110 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19111 : ((32 == 64 || TARGET_AVX512VL
19112 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19113 : && ix86_pre_reload_split ()) &&
19114 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19115 : (TARGET_AVX)))
19116 : return -1;
19117 : return 7012; /* *avx512vl_vpternlogv8sf_3 */
19118 :
19119 : case 44:
19120 : if (!
19121 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19122 : ((16 == 64 || TARGET_AVX512VL
19123 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19124 : && ix86_pre_reload_split ()))
19125 : return -1;
19126 : return 7021; /* *avx512vl_vpternlogv4sf_3 */
19127 :
19128 : case 45:
19129 : if (!(
19130 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19131 : ((64 == 64 || TARGET_AVX512VL
19132 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19133 : && ix86_pre_reload_split ()) &&
19134 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19135 : (TARGET_AVX512F)))
19136 : return -1;
19137 : return 7030; /* *avx512f_vpternlogv8df_3 */
19138 :
19139 : case 46:
19140 : if (!(
19141 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19142 : ((32 == 64 || TARGET_AVX512VL
19143 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19144 : && ix86_pre_reload_split ()) &&
19145 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19146 : (TARGET_AVX)))
19147 : return -1;
19148 : return 7039; /* *avx512vl_vpternlogv4df_3 */
19149 :
19150 : case 47:
19151 : if (!(
19152 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19153 : ((16 == 64 || TARGET_AVX512VL
19154 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19155 : && ix86_pre_reload_split ()) &&
19156 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19157 : (TARGET_SSE2)))
19158 : return -1;
19159 : return 7048; /* *avx512vl_vpternlogv2df_3 */
19160 :
19161 : default:
19162 : return -1;
19163 : }
19164 :
19165 : case AND:
19166 : switch (pattern542 (x2))
19167 : {
19168 : case 0:
19169 : if (!(
19170 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19171 : ((64 == 64 || TARGET_AVX512VL
19172 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19173 : && ix86_pre_reload_split ()
19174 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19175 : STRIP_UNARY (operands[4]))
19176 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19177 : STRIP_UNARY (operands[4]))
19178 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19179 : STRIP_UNARY (operands[3]))
19180 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19181 : STRIP_UNARY (operands[3])))) &&
19182 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19183 : (TARGET_AVX512F)))
19184 : return -1;
19185 : return 6529; /* *avx512bw_vpternlogv32hf_2 */
19186 :
19187 : case 1:
19188 : if (!(
19189 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19190 : ((32 == 64 || TARGET_AVX512VL
19191 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19192 : && ix86_pre_reload_split ()
19193 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19194 : STRIP_UNARY (operands[4]))
19195 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19196 : STRIP_UNARY (operands[4]))
19197 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19198 : STRIP_UNARY (operands[3]))
19199 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19200 : STRIP_UNARY (operands[3])))) &&
19201 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19202 : (TARGET_AVX)))
19203 : return -1;
19204 : return 6556; /* *avx512vl_vpternlogv16hf_2 */
19205 :
19206 : case 2:
19207 : if (!
19208 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19209 : ((16 == 64 || TARGET_AVX512VL
19210 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19211 : && ix86_pre_reload_split ()
19212 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19213 : STRIP_UNARY (operands[4]))
19214 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19215 : STRIP_UNARY (operands[4]))
19216 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19217 : STRIP_UNARY (operands[3]))
19218 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19219 : STRIP_UNARY (operands[3])))))
19220 : return -1;
19221 : return 6583; /* *avx512fp16_vpternlogv8hf_2 */
19222 :
19223 : case 3:
19224 : if (!(
19225 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19226 : ((64 == 64 || TARGET_AVX512VL
19227 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19228 : && ix86_pre_reload_split ()
19229 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19230 : STRIP_UNARY (operands[4]))
19231 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19232 : STRIP_UNARY (operands[4]))
19233 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19234 : STRIP_UNARY (operands[3]))
19235 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19236 : STRIP_UNARY (operands[3])))) &&
19237 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19238 : (TARGET_AVX512F)))
19239 : return -1;
19240 : return 6610; /* *avx512bw_vpternlogv32bf_2 */
19241 :
19242 : case 4:
19243 : if (!(
19244 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19245 : ((32 == 64 || TARGET_AVX512VL
19246 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19247 : && ix86_pre_reload_split ()
19248 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19249 : STRIP_UNARY (operands[4]))
19250 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19251 : STRIP_UNARY (operands[4]))
19252 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19253 : STRIP_UNARY (operands[3]))
19254 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19255 : STRIP_UNARY (operands[3])))) &&
19256 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19257 : (TARGET_AVX)))
19258 : return -1;
19259 : return 6637; /* *avx512vl_vpternlogv16bf_2 */
19260 :
19261 : case 5:
19262 : if (!
19263 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19264 : ((16 == 64 || TARGET_AVX512VL
19265 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19266 : && ix86_pre_reload_split ()
19267 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19268 : STRIP_UNARY (operands[4]))
19269 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19270 : STRIP_UNARY (operands[4]))
19271 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19272 : STRIP_UNARY (operands[3]))
19273 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19274 : STRIP_UNARY (operands[3])))))
19275 : return -1;
19276 : return 6664; /* *avx512vl_vpternlogv8bf_2 */
19277 :
19278 : case 6:
19279 : if (!(
19280 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19281 : ((64 == 64 || TARGET_AVX512VL
19282 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19283 : && ix86_pre_reload_split ()
19284 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19285 : STRIP_UNARY (operands[4]))
19286 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19287 : STRIP_UNARY (operands[4]))
19288 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19289 : STRIP_UNARY (operands[3]))
19290 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19291 : STRIP_UNARY (operands[3])))) &&
19292 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19293 : (TARGET_AVX512F)))
19294 : return -1;
19295 : return 6691; /* *avx512f_vpternlogv16sf_2 */
19296 :
19297 : case 7:
19298 : if (!(
19299 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19300 : ((32 == 64 || TARGET_AVX512VL
19301 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19302 : && ix86_pre_reload_split ()
19303 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19304 : STRIP_UNARY (operands[4]))
19305 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19306 : STRIP_UNARY (operands[4]))
19307 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19308 : STRIP_UNARY (operands[3]))
19309 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19310 : STRIP_UNARY (operands[3])))) &&
19311 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19312 : (TARGET_AVX)))
19313 : return -1;
19314 : return 6718; /* *avx512vl_vpternlogv8sf_2 */
19315 :
19316 : case 8:
19317 : if (!
19318 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19319 : ((16 == 64 || TARGET_AVX512VL
19320 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19321 : && ix86_pre_reload_split ()
19322 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19323 : STRIP_UNARY (operands[4]))
19324 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19325 : STRIP_UNARY (operands[4]))
19326 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19327 : STRIP_UNARY (operands[3]))
19328 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19329 : STRIP_UNARY (operands[3])))))
19330 : return -1;
19331 : return 6745; /* *avx512vl_vpternlogv4sf_2 */
19332 :
19333 : case 9:
19334 : if (!(
19335 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19336 : ((64 == 64 || TARGET_AVX512VL
19337 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19338 : && ix86_pre_reload_split ()
19339 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19340 : STRIP_UNARY (operands[4]))
19341 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19342 : STRIP_UNARY (operands[4]))
19343 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19344 : STRIP_UNARY (operands[3]))
19345 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19346 : STRIP_UNARY (operands[3])))) &&
19347 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19348 : (TARGET_AVX512F)))
19349 : return -1;
19350 : return 6772; /* *avx512f_vpternlogv8df_2 */
19351 :
19352 : case 10:
19353 : if (!(
19354 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19355 : ((32 == 64 || TARGET_AVX512VL
19356 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19357 : && ix86_pre_reload_split ()
19358 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19359 : STRIP_UNARY (operands[4]))
19360 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19361 : STRIP_UNARY (operands[4]))
19362 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19363 : STRIP_UNARY (operands[3]))
19364 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19365 : STRIP_UNARY (operands[3])))) &&
19366 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19367 : (TARGET_AVX)))
19368 : return -1;
19369 : return 6799; /* *avx512vl_vpternlogv4df_2 */
19370 :
19371 : case 11:
19372 : if (!(
19373 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19374 : ((16 == 64 || TARGET_AVX512VL
19375 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19376 : && ix86_pre_reload_split ()
19377 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19378 : STRIP_UNARY (operands[4]))
19379 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19380 : STRIP_UNARY (operands[4]))
19381 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19382 : STRIP_UNARY (operands[3]))
19383 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19384 : STRIP_UNARY (operands[3])))) &&
19385 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19386 : (TARGET_SSE2)))
19387 : return -1;
19388 : return 6826; /* *avx512vl_vpternlogv2df_2 */
19389 :
19390 : default:
19391 : return -1;
19392 : }
19393 :
19394 : case IOR:
19395 : switch (pattern542 (x2))
19396 : {
19397 : case 0:
19398 : if (!(
19399 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19400 : ((64 == 64 || TARGET_AVX512VL
19401 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19402 : && ix86_pre_reload_split ()
19403 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19404 : STRIP_UNARY (operands[4]))
19405 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19406 : STRIP_UNARY (operands[4]))
19407 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19408 : STRIP_UNARY (operands[3]))
19409 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19410 : STRIP_UNARY (operands[3])))) &&
19411 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19412 : (TARGET_AVX512F)))
19413 : return -1;
19414 : return 6532; /* *avx512bw_vpternlogv32hf_2 */
19415 :
19416 : case 1:
19417 : if (!(
19418 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19419 : ((32 == 64 || TARGET_AVX512VL
19420 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19421 : && ix86_pre_reload_split ()
19422 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19423 : STRIP_UNARY (operands[4]))
19424 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19425 : STRIP_UNARY (operands[4]))
19426 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19427 : STRIP_UNARY (operands[3]))
19428 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19429 : STRIP_UNARY (operands[3])))) &&
19430 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19431 : (TARGET_AVX)))
19432 : return -1;
19433 : return 6559; /* *avx512vl_vpternlogv16hf_2 */
19434 :
19435 : case 2:
19436 : if (!
19437 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19438 : ((16 == 64 || TARGET_AVX512VL
19439 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19440 : && ix86_pre_reload_split ()
19441 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19442 : STRIP_UNARY (operands[4]))
19443 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19444 : STRIP_UNARY (operands[4]))
19445 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19446 : STRIP_UNARY (operands[3]))
19447 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19448 : STRIP_UNARY (operands[3])))))
19449 : return -1;
19450 : return 6586; /* *avx512fp16_vpternlogv8hf_2 */
19451 :
19452 : case 3:
19453 : if (!(
19454 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19455 : ((64 == 64 || TARGET_AVX512VL
19456 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19457 : && ix86_pre_reload_split ()
19458 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19459 : STRIP_UNARY (operands[4]))
19460 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19461 : STRIP_UNARY (operands[4]))
19462 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19463 : STRIP_UNARY (operands[3]))
19464 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19465 : STRIP_UNARY (operands[3])))) &&
19466 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19467 : (TARGET_AVX512F)))
19468 : return -1;
19469 : return 6613; /* *avx512bw_vpternlogv32bf_2 */
19470 :
19471 : case 4:
19472 : if (!(
19473 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19474 : ((32 == 64 || TARGET_AVX512VL
19475 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19476 : && ix86_pre_reload_split ()
19477 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19478 : STRIP_UNARY (operands[4]))
19479 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19480 : STRIP_UNARY (operands[4]))
19481 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19482 : STRIP_UNARY (operands[3]))
19483 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19484 : STRIP_UNARY (operands[3])))) &&
19485 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19486 : (TARGET_AVX)))
19487 : return -1;
19488 : return 6640; /* *avx512vl_vpternlogv16bf_2 */
19489 :
19490 : case 5:
19491 : if (!
19492 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19493 : ((16 == 64 || TARGET_AVX512VL
19494 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19495 : && ix86_pre_reload_split ()
19496 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19497 : STRIP_UNARY (operands[4]))
19498 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19499 : STRIP_UNARY (operands[4]))
19500 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19501 : STRIP_UNARY (operands[3]))
19502 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19503 : STRIP_UNARY (operands[3])))))
19504 : return -1;
19505 : return 6667; /* *avx512vl_vpternlogv8bf_2 */
19506 :
19507 : case 6:
19508 : if (!(
19509 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19510 : ((64 == 64 || TARGET_AVX512VL
19511 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19512 : && ix86_pre_reload_split ()
19513 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19514 : STRIP_UNARY (operands[4]))
19515 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19516 : STRIP_UNARY (operands[4]))
19517 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19518 : STRIP_UNARY (operands[3]))
19519 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19520 : STRIP_UNARY (operands[3])))) &&
19521 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19522 : (TARGET_AVX512F)))
19523 : return -1;
19524 : return 6694; /* *avx512f_vpternlogv16sf_2 */
19525 :
19526 : case 7:
19527 : if (!(
19528 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19529 : ((32 == 64 || TARGET_AVX512VL
19530 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19531 : && ix86_pre_reload_split ()
19532 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19533 : STRIP_UNARY (operands[4]))
19534 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19535 : STRIP_UNARY (operands[4]))
19536 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19537 : STRIP_UNARY (operands[3]))
19538 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19539 : STRIP_UNARY (operands[3])))) &&
19540 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19541 : (TARGET_AVX)))
19542 : return -1;
19543 : return 6721; /* *avx512vl_vpternlogv8sf_2 */
19544 :
19545 : case 8:
19546 : if (!
19547 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19548 : ((16 == 64 || TARGET_AVX512VL
19549 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19550 : && ix86_pre_reload_split ()
19551 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19552 : STRIP_UNARY (operands[4]))
19553 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19554 : STRIP_UNARY (operands[4]))
19555 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19556 : STRIP_UNARY (operands[3]))
19557 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19558 : STRIP_UNARY (operands[3])))))
19559 : return -1;
19560 : return 6748; /* *avx512vl_vpternlogv4sf_2 */
19561 :
19562 : case 9:
19563 : if (!(
19564 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19565 : ((64 == 64 || TARGET_AVX512VL
19566 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19567 : && ix86_pre_reload_split ()
19568 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19569 : STRIP_UNARY (operands[4]))
19570 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19571 : STRIP_UNARY (operands[4]))
19572 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19573 : STRIP_UNARY (operands[3]))
19574 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19575 : STRIP_UNARY (operands[3])))) &&
19576 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19577 : (TARGET_AVX512F)))
19578 : return -1;
19579 : return 6775; /* *avx512f_vpternlogv8df_2 */
19580 :
19581 : case 10:
19582 : if (!(
19583 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19584 : ((32 == 64 || TARGET_AVX512VL
19585 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19586 : && ix86_pre_reload_split ()
19587 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19588 : STRIP_UNARY (operands[4]))
19589 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19590 : STRIP_UNARY (operands[4]))
19591 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19592 : STRIP_UNARY (operands[3]))
19593 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19594 : STRIP_UNARY (operands[3])))) &&
19595 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19596 : (TARGET_AVX)))
19597 : return -1;
19598 : return 6802; /* *avx512vl_vpternlogv4df_2 */
19599 :
19600 : case 11:
19601 : if (!(
19602 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19603 : ((16 == 64 || TARGET_AVX512VL
19604 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19605 : && ix86_pre_reload_split ()
19606 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19607 : STRIP_UNARY (operands[4]))
19608 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19609 : STRIP_UNARY (operands[4]))
19610 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19611 : STRIP_UNARY (operands[3]))
19612 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19613 : STRIP_UNARY (operands[3])))) &&
19614 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19615 : (TARGET_SSE2)))
19616 : return -1;
19617 : return 6829; /* *avx512vl_vpternlogv2df_2 */
19618 :
19619 : default:
19620 : return -1;
19621 : }
19622 :
19623 : case XOR:
19624 : switch (pattern542 (x2))
19625 : {
19626 : case 0:
19627 : if (!(
19628 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19629 : ((64 == 64 || TARGET_AVX512VL
19630 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19631 : && ix86_pre_reload_split ()
19632 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19633 : STRIP_UNARY (operands[4]))
19634 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19635 : STRIP_UNARY (operands[4]))
19636 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19637 : STRIP_UNARY (operands[3]))
19638 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19639 : STRIP_UNARY (operands[3])))) &&
19640 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19641 : (TARGET_AVX512F)))
19642 : return -1;
19643 : return 6535; /* *avx512bw_vpternlogv32hf_2 */
19644 :
19645 : case 1:
19646 : if (!(
19647 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19648 : ((32 == 64 || TARGET_AVX512VL
19649 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19650 : && ix86_pre_reload_split ()
19651 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19652 : STRIP_UNARY (operands[4]))
19653 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19654 : STRIP_UNARY (operands[4]))
19655 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19656 : STRIP_UNARY (operands[3]))
19657 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19658 : STRIP_UNARY (operands[3])))) &&
19659 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19660 : (TARGET_AVX)))
19661 : return -1;
19662 : return 6562; /* *avx512vl_vpternlogv16hf_2 */
19663 :
19664 : case 2:
19665 : if (!
19666 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19667 : ((16 == 64 || TARGET_AVX512VL
19668 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19669 : && ix86_pre_reload_split ()
19670 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19671 : STRIP_UNARY (operands[4]))
19672 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19673 : STRIP_UNARY (operands[4]))
19674 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19675 : STRIP_UNARY (operands[3]))
19676 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19677 : STRIP_UNARY (operands[3])))))
19678 : return -1;
19679 : return 6589; /* *avx512fp16_vpternlogv8hf_2 */
19680 :
19681 : case 3:
19682 : if (!(
19683 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19684 : ((64 == 64 || TARGET_AVX512VL
19685 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19686 : && ix86_pre_reload_split ()
19687 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19688 : STRIP_UNARY (operands[4]))
19689 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19690 : STRIP_UNARY (operands[4]))
19691 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19692 : STRIP_UNARY (operands[3]))
19693 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19694 : STRIP_UNARY (operands[3])))) &&
19695 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19696 : (TARGET_AVX512F)))
19697 : return -1;
19698 : return 6616; /* *avx512bw_vpternlogv32bf_2 */
19699 :
19700 : case 4:
19701 : if (!(
19702 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19703 : ((32 == 64 || TARGET_AVX512VL
19704 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19705 : && ix86_pre_reload_split ()
19706 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19707 : STRIP_UNARY (operands[4]))
19708 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19709 : STRIP_UNARY (operands[4]))
19710 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19711 : STRIP_UNARY (operands[3]))
19712 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19713 : STRIP_UNARY (operands[3])))) &&
19714 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19715 : (TARGET_AVX)))
19716 : return -1;
19717 : return 6643; /* *avx512vl_vpternlogv16bf_2 */
19718 :
19719 : case 5:
19720 : if (!
19721 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19722 : ((16 == 64 || TARGET_AVX512VL
19723 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19724 : && ix86_pre_reload_split ()
19725 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19726 : STRIP_UNARY (operands[4]))
19727 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19728 : STRIP_UNARY (operands[4]))
19729 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19730 : STRIP_UNARY (operands[3]))
19731 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19732 : STRIP_UNARY (operands[3])))))
19733 : return -1;
19734 : return 6670; /* *avx512vl_vpternlogv8bf_2 */
19735 :
19736 : case 6:
19737 : if (!(
19738 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19739 : ((64 == 64 || TARGET_AVX512VL
19740 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19741 : && ix86_pre_reload_split ()
19742 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19743 : STRIP_UNARY (operands[4]))
19744 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19745 : STRIP_UNARY (operands[4]))
19746 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19747 : STRIP_UNARY (operands[3]))
19748 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19749 : STRIP_UNARY (operands[3])))) &&
19750 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19751 : (TARGET_AVX512F)))
19752 : return -1;
19753 : return 6697; /* *avx512f_vpternlogv16sf_2 */
19754 :
19755 : case 7:
19756 : if (!(
19757 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19758 : ((32 == 64 || TARGET_AVX512VL
19759 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19760 : && ix86_pre_reload_split ()
19761 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19762 : STRIP_UNARY (operands[4]))
19763 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19764 : STRIP_UNARY (operands[4]))
19765 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19766 : STRIP_UNARY (operands[3]))
19767 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19768 : STRIP_UNARY (operands[3])))) &&
19769 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19770 : (TARGET_AVX)))
19771 : return -1;
19772 : return 6724; /* *avx512vl_vpternlogv8sf_2 */
19773 :
19774 : case 8:
19775 : if (!
19776 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19777 : ((16 == 64 || TARGET_AVX512VL
19778 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19779 : && ix86_pre_reload_split ()
19780 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19781 : STRIP_UNARY (operands[4]))
19782 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19783 : STRIP_UNARY (operands[4]))
19784 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19785 : STRIP_UNARY (operands[3]))
19786 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19787 : STRIP_UNARY (operands[3])))))
19788 : return -1;
19789 : return 6751; /* *avx512vl_vpternlogv4sf_2 */
19790 :
19791 : case 9:
19792 : if (!(
19793 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19794 : ((64 == 64 || TARGET_AVX512VL
19795 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19796 : && ix86_pre_reload_split ()
19797 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19798 : STRIP_UNARY (operands[4]))
19799 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19800 : STRIP_UNARY (operands[4]))
19801 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19802 : STRIP_UNARY (operands[3]))
19803 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19804 : STRIP_UNARY (operands[3])))) &&
19805 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19806 : (TARGET_AVX512F)))
19807 : return -1;
19808 : return 6778; /* *avx512f_vpternlogv8df_2 */
19809 :
19810 : case 10:
19811 : if (!(
19812 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19813 : ((32 == 64 || TARGET_AVX512VL
19814 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19815 : && ix86_pre_reload_split ()
19816 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19817 : STRIP_UNARY (operands[4]))
19818 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19819 : STRIP_UNARY (operands[4]))
19820 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19821 : STRIP_UNARY (operands[3]))
19822 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19823 : STRIP_UNARY (operands[3])))) &&
19824 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19825 : (TARGET_AVX)))
19826 : return -1;
19827 : return 6805; /* *avx512vl_vpternlogv4df_2 */
19828 :
19829 : case 11:
19830 : if (!(
19831 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19832 : ((16 == 64 || TARGET_AVX512VL
19833 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19834 : && ix86_pre_reload_split ()
19835 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19836 : STRIP_UNARY (operands[4]))
19837 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19838 : STRIP_UNARY (operands[4]))
19839 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19840 : STRIP_UNARY (operands[3]))
19841 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19842 : STRIP_UNARY (operands[3])))) &&
19843 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19844 : (TARGET_SSE2)))
19845 : return -1;
19846 : return 6832; /* *avx512vl_vpternlogv2df_2 */
19847 :
19848 : default:
19849 : return -1;
19850 : }
19851 :
19852 : default:
19853 : return -1;
19854 : }
19855 : }
19856 :
19857 : int
19858 : recog_331 (rtx x1 ATTRIBUTE_UNUSED,
19859 : rtx_insn *insn ATTRIBUTE_UNUSED,
19860 : int *pnum_clobbers ATTRIBUTE_UNUSED)
19861 : {
19862 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
19863 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
19864 : rtx x10, x11, x12, x13, x14;
19865 : int res ATTRIBUTE_UNUSED;
19866 : x2 = XEXP (x1, 0);
19867 : operands[0] = x2;
19868 : x3 = XEXP (x1, 1);
19869 : x4 = XEXP (x3, 0);
19870 : switch (GET_CODE (x4))
19871 : {
19872 : case REG:
19873 : case SUBREG:
19874 : case MEM:
19875 : operands[1] = x4;
19876 : switch (GET_MODE (operands[0]))
19877 : {
19878 : case E_V8DFmode:
19879 : if (!register_operand (operands[0], E_V8DFmode)
19880 : || GET_MODE (x3) != E_V8DFmode)
19881 : return -1;
19882 : switch (GET_MODE (operands[1]))
19883 : {
19884 : case E_V8HFmode:
19885 : if (!vector_operand (operands[1], E_V8HFmode)
19886 : || !
19887 : #line 8365 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19888 : (TARGET_AVX512FP16))
19889 : return -1;
19890 : return 4755; /* avx512fp16_float_extend_phv8df2 */
19891 :
19892 : case E_V8SFmode:
19893 : if (!vector_operand (operands[1], E_V8SFmode)
19894 : || !(
19895 : #line 10550 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19896 : (TARGET_AVX && 1 && 1) &&
19897 : #line 466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19898 : (TARGET_AVX512F)))
19899 : return -1;
19900 : return 5200; /* avx512f_cvtps2pd512 */
19901 :
19902 : default:
19903 : return -1;
19904 : }
19905 :
19906 : case E_V16SFmode:
19907 : if (!register_operand (operands[0], E_V16SFmode)
19908 : || GET_MODE (x3) != E_V16SFmode
19909 : || !vector_operand (operands[1], E_V16HFmode)
19910 : || !
19911 : #line 8365 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19912 : (TARGET_AVX512FP16))
19913 : return -1;
19914 : return 4759; /* avx512fp16_float_extend_phv16sf2 */
19915 :
19916 : case E_V8SFmode:
19917 : if (!register_operand (operands[0], E_V8SFmode)
19918 : || GET_MODE (x3) != E_V8SFmode
19919 : || !vector_operand (operands[1], E_V8HFmode)
19920 : || !(
19921 : #line 8365 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19922 : (TARGET_AVX512FP16) &&
19923 : #line 986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19924 : (TARGET_AVX512VL)))
19925 : return -1;
19926 : return 4763; /* avx512fp16_float_extend_phv8sf2 */
19927 :
19928 : case E_V4DFmode:
19929 : if (!register_operand (operands[0], E_V4DFmode)
19930 : || GET_MODE (x3) != E_V4DFmode)
19931 : return -1;
19932 : switch (GET_MODE (operands[1]))
19933 : {
19934 : case E_V4HFmode:
19935 : if (!memory_operand (operands[1], E_V4HFmode)
19936 : || !
19937 : #line 8404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19938 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
19939 : return -1;
19940 : return 4771; /* *avx512fp16_float_extend_phv4df2_load */
19941 :
19942 : case E_V4SFmode:
19943 : if (!vector_operand (operands[1], E_V4SFmode)
19944 : || !
19945 : #line 10550 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19946 : (TARGET_AVX && 1 && 1))
19947 : return -1;
19948 : return 5204; /* avx_cvtps2pd256 */
19949 :
19950 : default:
19951 : return -1;
19952 : }
19953 :
19954 : case E_V4SFmode:
19955 : if (!register_operand (operands[0], E_V4SFmode)
19956 : || GET_MODE (x3) != E_V4SFmode
19957 : || !memory_operand (operands[1], E_V4HFmode)
19958 : || !
19959 : #line 8404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19960 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
19961 : return -1;
19962 : return 4773; /* *avx512fp16_float_extend_phv4sf2_load */
19963 :
19964 : case E_V2DFmode:
19965 : if (!register_operand (operands[0], E_V2DFmode)
19966 : || GET_MODE (x3) != E_V2DFmode)
19967 : return -1;
19968 : switch (GET_MODE (operands[1]))
19969 : {
19970 : case E_V2HFmode:
19971 : if (!memory_operand (operands[1], E_V2HFmode)
19972 : || !
19973 : #line 8443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19974 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
19975 : return -1;
19976 : return 4777; /* *avx512fp16_float_extend_phv2df2_load */
19977 :
19978 : case E_V2SFmode:
19979 : if (!memory_operand (operands[1], E_V2SFmode)
19980 : || !
19981 : #line 10732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19982 : (TARGET_SSE2 && 1))
19983 : return -1;
19984 : return 5252; /* sse2_cvtps2pd_1 */
19985 :
19986 : default:
19987 : return -1;
19988 : }
19989 :
19990 : default:
19991 : return -1;
19992 : }
19993 :
19994 : case VEC_SELECT:
19995 : x5 = XEXP (x4, 1);
19996 : if (GET_CODE (x5) != PARALLEL)
19997 : return -1;
19998 : x6 = XEXP (x4, 0);
19999 : operands[1] = x6;
20000 : switch (XVECLEN (x5, 0))
20001 : {
20002 : case 4:
20003 : x7 = XVECEXP (x5, 0, 0);
20004 : if (GET_CODE (x7) != CONST_INT)
20005 : return -1;
20006 : x8 = XVECEXP (x5, 0, 1);
20007 : if (GET_CODE (x8) != CONST_INT)
20008 : return -1;
20009 : x9 = XVECEXP (x5, 0, 2);
20010 : if (GET_CODE (x9) != CONST_INT)
20011 : return -1;
20012 : x10 = XVECEXP (x5, 0, 3);
20013 : if (GET_CODE (x10) != CONST_INT)
20014 : return -1;
20015 : switch (pattern1154 (x5))
20016 : {
20017 : case 0:
20018 : if (XWINT (x9, 0) != 2L
20019 : || XWINT (x10, 0) != 3L)
20020 : return -1;
20021 : switch (GET_MODE (operands[0]))
20022 : {
20023 : case E_V4DFmode:
20024 : if (!register_operand (operands[0], E_V4DFmode)
20025 : || GET_MODE (x3) != E_V4DFmode)
20026 : return -1;
20027 : switch (GET_MODE (x4))
20028 : {
20029 : case E_V4HFmode:
20030 : if (!register_operand (operands[1], E_V8HFmode)
20031 : || !
20032 : #line 8394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20033 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
20034 : return -1;
20035 : return 4767; /* avx512fp16_float_extend_phv4df2 */
20036 :
20037 : case E_V4SFmode:
20038 : if (!nonimmediate_operand (operands[1], E_V8SFmode)
20039 : || !
20040 : #line 10563 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20041 : (TARGET_AVX))
20042 : return -1;
20043 : return 5206; /* *avx_cvtps2pd256_2 */
20044 :
20045 : default:
20046 : return -1;
20047 : }
20048 :
20049 : case E_V4SFmode:
20050 : if (pattern618 (x3,
20051 : E_V8HFmode,
20052 : E_V4HFmode,
20053 : E_V4SFmode) != 0
20054 : || !
20055 : #line 8394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20056 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
20057 : return -1;
20058 : return 4769; /* avx512fp16_float_extend_phv4sf2 */
20059 :
20060 : default:
20061 : return -1;
20062 : }
20063 :
20064 : case 1:
20065 : if (XWINT (x9, 0) != 4L
20066 : || XWINT (x10, 0) != 6L)
20067 : return -1;
20068 : switch (pattern1492 (x3))
20069 : {
20070 : case 0:
20071 : if (!
20072 : #line 32368 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20073 : (TARGET_AVXNECONVERT))
20074 : return -1;
20075 : return 10502; /* vcvtneeph2ps_v8hf */
20076 :
20077 : case 1:
20078 : if (!
20079 : #line 32368 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20080 : (TARGET_AVXNECONVERT))
20081 : return -1;
20082 : return 10503; /* vcvtneebf162ps_v8bf */
20083 :
20084 : default:
20085 : return -1;
20086 : }
20087 :
20088 : case 2:
20089 : switch (pattern1492 (x3))
20090 : {
20091 : case 0:
20092 : if (!
20093 : #line 32396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20094 : (TARGET_AVXNECONVERT))
20095 : return -1;
20096 : return 10506; /* vcvtneoph2ps_v8hf */
20097 :
20098 : case 1:
20099 : if (!
20100 : #line 32396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20101 : (TARGET_AVXNECONVERT))
20102 : return -1;
20103 : return 10507; /* vcvtneobf162ps_v8bf */
20104 :
20105 : default:
20106 : return -1;
20107 : }
20108 :
20109 : default:
20110 : return -1;
20111 : }
20112 :
20113 : case 2:
20114 : x7 = XVECEXP (x5, 0, 0);
20115 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
20116 : return -1;
20117 : x8 = XVECEXP (x5, 0, 1);
20118 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
20119 : || !register_operand (operands[0], E_V2DFmode)
20120 : || GET_MODE (x3) != E_V2DFmode)
20121 : return -1;
20122 : switch (GET_MODE (x4))
20123 : {
20124 : case E_V2HFmode:
20125 : if (!register_operand (operands[1], E_V8HFmode)
20126 : || !
20127 : #line 8433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20128 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
20129 : return -1;
20130 : return 4775; /* avx512fp16_float_extend_phv2df2 */
20131 :
20132 : case E_V2SFmode:
20133 : if (!register_operand (operands[1], E_V4SFmode)
20134 : || !
20135 : #line 10718 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20136 : (TARGET_SSE2 && 1))
20137 : return -1;
20138 : return 5250; /* sse2_cvtps2pd */
20139 :
20140 : default:
20141 : return -1;
20142 : }
20143 :
20144 : case 8:
20145 : x7 = XVECEXP (x5, 0, 0);
20146 : if (GET_CODE (x7) != CONST_INT)
20147 : return -1;
20148 : x8 = XVECEXP (x5, 0, 1);
20149 : if (GET_CODE (x8) != CONST_INT
20150 : || pattern929 (x5) != 0)
20151 : return -1;
20152 : switch (pattern1154 (x5))
20153 : {
20154 : case 0:
20155 : if (pattern1567 (x5) != 0
20156 : || pattern928 (x3,
20157 : E_V16SFmode,
20158 : E_V8SFmode,
20159 : E_V8DFmode) != 0
20160 : || !
20161 : #line 10578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20162 : (TARGET_AVX512F))
20163 : return -1;
20164 : return 5207; /* vec_unpacks_lo_v16sf */
20165 :
20166 : case 1:
20167 : x9 = XVECEXP (x5, 0, 2);
20168 : if (XWINT (x9, 0) != 4L)
20169 : return -1;
20170 : x10 = XVECEXP (x5, 0, 3);
20171 : if (XWINT (x10, 0) != 6L)
20172 : return -1;
20173 : x11 = XVECEXP (x5, 0, 4);
20174 : if (XWINT (x11, 0) != 8L)
20175 : return -1;
20176 : x12 = XVECEXP (x5, 0, 5);
20177 : if (XWINT (x12, 0) != 10L)
20178 : return -1;
20179 : x13 = XVECEXP (x5, 0, 6);
20180 : if (XWINT (x13, 0) != 12L)
20181 : return -1;
20182 : x14 = XVECEXP (x5, 0, 7);
20183 : if (XWINT (x14, 0) != 14L)
20184 : return -1;
20185 : switch (pattern1780 (x3))
20186 : {
20187 : case 0:
20188 : if (!
20189 : #line 32383 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20190 : (TARGET_AVXNECONVERT))
20191 : return -1;
20192 : return 10504; /* vcvtneeph2ps_v16hf */
20193 :
20194 : case 1:
20195 : if (!
20196 : #line 32383 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20197 : (TARGET_AVXNECONVERT))
20198 : return -1;
20199 : return 10505; /* vcvtneebf162ps_v16bf */
20200 :
20201 : default:
20202 : return -1;
20203 : }
20204 :
20205 : case 2:
20206 : x11 = XVECEXP (x5, 0, 4);
20207 : if (XWINT (x11, 0) != 9L)
20208 : return -1;
20209 : x12 = XVECEXP (x5, 0, 5);
20210 : if (XWINT (x12, 0) != 11L)
20211 : return -1;
20212 : x13 = XVECEXP (x5, 0, 6);
20213 : if (XWINT (x13, 0) != 13L)
20214 : return -1;
20215 : x14 = XVECEXP (x5, 0, 7);
20216 : if (XWINT (x14, 0) != 15L)
20217 : return -1;
20218 : switch (pattern1780 (x3))
20219 : {
20220 : case 0:
20221 : if (!
20222 : #line 32411 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20223 : (TARGET_AVXNECONVERT))
20224 : return -1;
20225 : return 10508; /* vcvtneoph2ps_v16hf */
20226 :
20227 : case 1:
20228 : if (!
20229 : #line 32411 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20230 : (TARGET_AVXNECONVERT))
20231 : return -1;
20232 : return 10509; /* vcvtneobf162ps_v16bf */
20233 :
20234 : default:
20235 : return -1;
20236 : }
20237 :
20238 : default:
20239 : return -1;
20240 : }
20241 :
20242 : default:
20243 : return -1;
20244 : }
20245 :
20246 : default:
20247 : return -1;
20248 : }
20249 : }
20250 :
20251 : int
20252 : recog_333 (rtx x1 ATTRIBUTE_UNUSED,
20253 : rtx_insn *insn ATTRIBUTE_UNUSED,
20254 : int *pnum_clobbers ATTRIBUTE_UNUSED)
20255 : {
20256 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
20257 : int res ATTRIBUTE_UNUSED;
20258 : switch (pattern30 (x1))
20259 : {
20260 : case 0:
20261 : if (nonimmediate_operand (operands[1], E_V16HImode)
20262 : && nonmemory_operand (operands[2], E_DImode)
20263 : && (
20264 : #line 17615 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20265 : (TARGET_AVX512VL) &&
20266 : #line 790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20267 : (TARGET_AVX512BW)))
20268 : return 7681; /* *lshrv16hi3 */
20269 : if (!register_operand (operands[1], E_V16HImode))
20270 : return -1;
20271 : if (nonmemory_operand (operands[2], E_DImode)
20272 : && (
20273 : #line 17629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20274 : (TARGET_SSE2) &&
20275 : #line 767 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20276 : (TARGET_AVX2)))
20277 : return 7704; /* lshrv16hi3 */
20278 : if (!nonimmediate_operand (operands[2], E_V16HImode)
20279 : || !(
20280 : #line 29636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20281 : (TARGET_AVX512BW) &&
20282 : #line 679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20283 : (TARGET_AVX512VL)))
20284 : return -1;
20285 : return 9674; /* avx512vl_lshrvv16hi */
20286 :
20287 : case 1:
20288 : if (nonimmediate_operand (operands[1], E_V8HImode)
20289 : && nonmemory_operand (operands[2], E_DImode)
20290 : && (
20291 : #line 17615 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20292 : (TARGET_AVX512VL) &&
20293 : #line 790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20294 : (TARGET_AVX512BW)))
20295 : return 7685; /* *lshrv8hi3 */
20296 : if (!register_operand (operands[1], E_V8HImode))
20297 : return -1;
20298 : if (nonmemory_operand (operands[2], E_DImode)
20299 : &&
20300 : #line 17629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20301 : (TARGET_SSE2))
20302 : return 7706; /* lshrv8hi3 */
20303 : if (!nonimmediate_operand (operands[2], E_V8HImode)
20304 : || !(
20305 : #line 29636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20306 : (TARGET_AVX512BW) &&
20307 : #line 679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20308 : (TARGET_AVX512VL)))
20309 : return -1;
20310 : return 9670; /* avx512vl_lshrvv8hi */
20311 :
20312 : case 2:
20313 : if (nonimmediate_operand (operands[1], E_V8SImode)
20314 : && nonmemory_operand (operands[2], E_DImode)
20315 : &&
20316 : #line 17615 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20317 : (TARGET_AVX512VL))
20318 : return 7689; /* *lshrv8si3 */
20319 : if (!register_operand (operands[1], E_V8SImode))
20320 : return -1;
20321 : if (nonmemory_operand (operands[2], E_DImode)
20322 : && (
20323 : #line 17629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20324 : (TARGET_SSE2) &&
20325 : #line 768 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20326 : (TARGET_AVX2)))
20327 : return 7708; /* lshrv8si3 */
20328 : if (!nonimmediate_operand (operands[2], E_V8SImode)
20329 : || !
20330 : #line 29625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20331 : (TARGET_AVX2 && 1))
20332 : return -1;
20333 : return 9650; /* avx2_lshrvv8si */
20334 :
20335 : case 3:
20336 : if (nonimmediate_operand (operands[1], E_V4SImode)
20337 : && nonmemory_operand (operands[2], E_DImode)
20338 : &&
20339 : #line 17615 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20340 : (TARGET_AVX512VL))
20341 : return 7693; /* *lshrv4si3 */
20342 : if (!register_operand (operands[1], E_V4SImode))
20343 : return -1;
20344 : if (nonmemory_operand (operands[2], E_DImode)
20345 : &&
20346 : #line 17629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20347 : (TARGET_SSE2))
20348 : return 7710; /* lshrv4si3 */
20349 : if (!nonimmediate_operand (operands[2], E_V4SImode)
20350 : || !
20351 : #line 29625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20352 : (TARGET_AVX2 && 1))
20353 : return -1;
20354 : return 9654; /* avx2_lshrvv4si */
20355 :
20356 : case 4:
20357 : if (nonimmediate_operand (operands[1], E_V4DImode)
20358 : && nonmemory_operand (operands[2], E_DImode)
20359 : &&
20360 : #line 17615 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20361 : (TARGET_AVX512VL))
20362 : return 7697; /* *lshrv4di3 */
20363 : if (!register_operand (operands[1], E_V4DImode))
20364 : return -1;
20365 : if (nonmemory_operand (operands[2], E_DImode)
20366 : && (
20367 : #line 17629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20368 : (TARGET_SSE2) &&
20369 : #line 769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20370 : (TARGET_AVX2)))
20371 : return 7712; /* lshrv4di3 */
20372 : if (!nonimmediate_operand (operands[2], E_V4DImode)
20373 : || !
20374 : #line 29625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20375 : (TARGET_AVX2 && 1))
20376 : return -1;
20377 : return 9662; /* avx2_lshrvv4di */
20378 :
20379 : case 5:
20380 : if (nonimmediate_operand (operands[1], E_V2DImode)
20381 : && nonmemory_operand (operands[2], E_DImode)
20382 : &&
20383 : #line 17615 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20384 : (TARGET_AVX512VL))
20385 : return 7701; /* *lshrv2di3 */
20386 : if (!register_operand (operands[1], E_V2DImode))
20387 : return -1;
20388 : if (nonmemory_operand (operands[2], E_DImode)
20389 : &&
20390 : #line 17629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20391 : (TARGET_SSE2))
20392 : return 7714; /* lshrv2di3 */
20393 : if (!nonimmediate_operand (operands[2], E_V2DImode)
20394 : || !
20395 : #line 29625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20396 : (TARGET_AVX2 && 1))
20397 : return -1;
20398 : return 9666; /* avx2_lshrvv2di */
20399 :
20400 : case 6:
20401 : if (nonimmediate_operand (operands[1], E_V32HImode)
20402 : && nonmemory_operand (operands[2], E_DImode)
20403 : && (
20404 : #line 17703 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20405 : (TARGET_AVX512F) &&
20406 : #line 777 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20407 : (TARGET_AVX512BW)))
20408 : return 7721; /* lshrv32hi3 */
20409 : if (!register_operand (operands[1], E_V32HImode)
20410 : || !nonimmediate_operand (operands[2], E_V32HImode)
20411 : || !
20412 : #line 29636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20413 : (TARGET_AVX512BW))
20414 : return -1;
20415 : return 9678; /* avx512bw_lshrvv32hi */
20416 :
20417 : case 7:
20418 : if (nonimmediate_operand (operands[1], E_V16SImode)
20419 : && nonmemory_operand (operands[2], E_DImode)
20420 : &&
20421 : #line 17703 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20422 : (TARGET_AVX512F))
20423 : return 7725; /* lshrv16si3 */
20424 : if (!register_operand (operands[1], E_V16SImode)
20425 : || !nonimmediate_operand (operands[2], E_V16SImode)
20426 : || !(
20427 : #line 29625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20428 : (TARGET_AVX2 && 1) &&
20429 : #line 795 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20430 : (TARGET_AVX512F)))
20431 : return -1;
20432 : return 9646; /* avx512f_lshrvv16si */
20433 :
20434 : case 8:
20435 : if (nonimmediate_operand (operands[1], E_V8DImode)
20436 : && nonmemory_operand (operands[2], E_DImode)
20437 : &&
20438 : #line 17703 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20439 : (TARGET_AVX512F))
20440 : return 7729; /* lshrv8di3 */
20441 : if (!register_operand (operands[1], E_V8DImode)
20442 : || !nonimmediate_operand (operands[2], E_V8DImode)
20443 : || !(
20444 : #line 29625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20445 : (TARGET_AVX2 && 1) &&
20446 : #line 796 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20447 : (TARGET_AVX512F)))
20448 : return -1;
20449 : return 9658; /* avx512f_lshrvv8di */
20450 :
20451 : case 9:
20452 : if (register_operand (operands[1], E_V1TImode)
20453 : && const_0_to_255_not_mul_8_operand (operands[2], E_SImode)
20454 : &&
20455 : #line 17807 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20456 : (TARGET_SSE2 && TARGET_64BIT
20457 : && ix86_pre_reload_split ()))
20458 : return 7732; /* *lshrv1ti3_internal */
20459 : if (!const_0_to_255_mul_8_operand (operands[2], E_SImode))
20460 : return -1;
20461 : if (nonimmediate_operand (operands[1], E_V1TImode)
20462 : && (
20463 : #line 17922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20464 : (TARGET_AVX512BW) &&
20465 : #line 722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20466 : (TARGET_AVX512VL)))
20467 : return 7741; /* avx512bw_lshrv1ti3 */
20468 : if (!register_operand (operands[1], E_V1TImode)
20469 : || !
20470 : #line 17937 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20471 : (TARGET_SSE2))
20472 : return -1;
20473 : return 7745; /* sse2_lshrv1ti3 */
20474 :
20475 : case 10:
20476 : if (!
20477 : #line 17922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20478 : (TARGET_AVX512BW))
20479 : return -1;
20480 : return 7737; /* avx512bw_lshrv4ti3 */
20481 :
20482 : case 11:
20483 : if (nonimmediate_operand (operands[1], E_V2TImode)
20484 : && (
20485 : #line 17922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20486 : (TARGET_AVX512BW) &&
20487 : #line 722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20488 : (TARGET_AVX512VL)))
20489 : return 7739; /* avx512bw_lshrv2ti3 */
20490 : if (!register_operand (operands[1], E_V2TImode)
20491 : || !(
20492 : #line 17937 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20493 : (TARGET_SSE2) &&
20494 : #line 725 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20495 : (TARGET_AVX2)))
20496 : return -1;
20497 : return 7743; /* avx2_lshrv2ti3 */
20498 :
20499 : default:
20500 : return -1;
20501 : }
20502 : }
20503 :
20504 : int
20505 : recog_338 (rtx x1 ATTRIBUTE_UNUSED,
20506 : rtx_insn *insn ATTRIBUTE_UNUSED,
20507 : int *pnum_clobbers ATTRIBUTE_UNUSED)
20508 : {
20509 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
20510 : rtx x2, x3, x4, x5, x6, x7;
20511 : int res ATTRIBUTE_UNUSED;
20512 : switch (pattern35 (x1))
20513 : {
20514 : case 0:
20515 : if (!
20516 : #line 24466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20517 : (TARGET_AVX2 && 1 && 1))
20518 : return -1;
20519 : return 8799; /* avx2_zero_extendv16qiv16hi2 */
20520 :
20521 : case 1:
20522 : if (!
20523 : #line 24520 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20524 : (TARGET_AVX512BW))
20525 : return -1;
20526 : return 8807; /* avx512bw_zero_extendv32qiv32hi2 */
20527 :
20528 : case 2:
20529 : if (!
20530 : #line 24590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20531 : (TARGET_SSE4_1 && 1 && 1))
20532 : return -1;
20533 : return 8819; /* *sse4_1_zero_extendv8qiv8hi2_1 */
20534 :
20535 : case 3:
20536 : if (!
20537 : #line 24741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20538 : (TARGET_AVX512F))
20539 : return -1;
20540 : return 8831; /* *avx512f_zero_extendv16qiv16si2 */
20541 :
20542 : case 4:
20543 : if (!
20544 : #line 24940 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20545 : (TARGET_AVX512F))
20546 : return -1;
20547 : return 8861; /* avx512f_zero_extendv16hiv16si2 */
20548 :
20549 : case 5:
20550 : if (!
20551 : #line 24773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20552 : (TARGET_AVX2 && 1))
20553 : return -1;
20554 : return 8839; /* *avx2_zero_extendv8qiv8si2_1 */
20555 :
20556 : case 6:
20557 : if (!
20558 : #line 24993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20559 : (TARGET_AVX2 && 1))
20560 : return -1;
20561 : return 8869; /* avx2_zero_extendv8hiv8si2 */
20562 :
20563 : case 7:
20564 : if (!
20565 : #line 24861 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20566 : (TARGET_SSE4_1 && 1))
20567 : return -1;
20568 : return 8851; /* *sse4_1_zero_extendv4qiv4si2_1 */
20569 :
20570 : case 8:
20571 : if (!
20572 : #line 25063 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20573 : (TARGET_SSE4_1 && 1))
20574 : return -1;
20575 : return 8881; /* *sse4_1_zero_extendv4hiv4si2_1 */
20576 :
20577 : case 9:
20578 : if (!
20579 : #line 25219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20580 : (TARGET_AVX512F))
20581 : return -1;
20582 : return 8897; /* *avx512f_zero_extendv8qiv8di2_1 */
20583 :
20584 : case 10:
20585 : if (!
20586 : #line 25445 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20587 : (TARGET_AVX512F))
20588 : return -1;
20589 : return 8928; /* avx512f_zero_extendv8hiv8di2 */
20590 :
20591 : case 11:
20592 : if (!
20593 : #line 25635 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20594 : (TARGET_AVX512F))
20595 : return -1;
20596 : return 8956; /* avx512f_zero_extendv8siv8di2 */
20597 :
20598 : case 12:
20599 : if (!
20600 : #line 25303 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20601 : (TARGET_AVX2 && 1))
20602 : return -1;
20603 : return 8909; /* *avx2_zero_extendv4qiv4di2_1 */
20604 :
20605 : case 13:
20606 : if (!
20607 : #line 25475 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20608 : (TARGET_AVX2 && 1))
20609 : return -1;
20610 : return 8936; /* *avx2_zero_extendv4hiv4di2_1 */
20611 :
20612 : case 14:
20613 : if (!
20614 : #line 25686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20615 : (TARGET_AVX2 && 1))
20616 : return -1;
20617 : return 8962; /* avx2_zero_extendv4siv4di2 */
20618 :
20619 : case 15:
20620 : if (!
20621 : #line 25394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20622 : (TARGET_SSE4_1 && 1))
20623 : return -1;
20624 : return 8921; /* *sse4_1_zero_extendv2qiv2di2_1 */
20625 :
20626 : case 16:
20627 : if (!
20628 : #line 25558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20629 : (TARGET_SSE4_1 && 1))
20630 : return -1;
20631 : return 8948; /* *sse4_1_zero_extendv2hiv2di2_1 */
20632 :
20633 : case 17:
20634 : if (!
20635 : #line 25752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20636 : (TARGET_SSE4_1 && 1))
20637 : return -1;
20638 : return 8972; /* *sse4_1_zero_extendv2siv2di2_1 */
20639 :
20640 : case 18:
20641 : x2 = XEXP (x1, 1);
20642 : x3 = XEXP (x2, 0);
20643 : x4 = XEXP (x3, 0);
20644 : operands[1] = x4;
20645 : switch (pattern545 (x2))
20646 : {
20647 : case 0:
20648 : if (
20649 : #line 24578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20650 : (TARGET_SSE4_1 && 1 && 1))
20651 : return 8815; /* sse4_1_zero_extendv8qiv8hi2 */
20652 : break;
20653 :
20654 : case 1:
20655 : if (
20656 : #line 24762 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20657 : (TARGET_AVX2 && 1))
20658 : return 8835; /* avx2_zero_extendv8qiv8si2 */
20659 : break;
20660 :
20661 : case 2:
20662 : if (
20663 : #line 25209 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20664 : (TARGET_AVX512F))
20665 : return 8893; /* avx512f_zero_extendv8qiv8di2 */
20666 : break;
20667 :
20668 : case 3:
20669 : if (
20670 : #line 24849 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20671 : (TARGET_SSE4_1 && 1))
20672 : return 8847; /* sse4_1_zero_extendv4qiv4si2 */
20673 : break;
20674 :
20675 : case 4:
20676 : if (
20677 : #line 25051 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20678 : (TARGET_SSE4_1 && 1))
20679 : return 8877; /* sse4_1_zero_extendv4hiv4si2 */
20680 : break;
20681 :
20682 : case 5:
20683 : if (
20684 : #line 25292 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20685 : (TARGET_AVX2 && 1))
20686 : return 8905; /* avx2_zero_extendv4qiv4di2 */
20687 : break;
20688 :
20689 : case 6:
20690 : if (
20691 : #line 25464 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20692 : (TARGET_AVX2 && 1))
20693 : return 8932; /* avx2_zero_extendv4hiv4di2 */
20694 : break;
20695 :
20696 : case 7:
20697 : if (
20698 : #line 25382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20699 : (TARGET_SSE4_1 && 1))
20700 : return 8917; /* sse4_1_zero_extendv2qiv2di2 */
20701 : break;
20702 :
20703 : case 8:
20704 : if (
20705 : #line 25546 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20706 : (TARGET_SSE4_1 && 1))
20707 : return 8944; /* sse4_1_zero_extendv2hiv2di2 */
20708 : break;
20709 :
20710 : case 9:
20711 : if (
20712 : #line 25740 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20713 : (TARGET_SSE4_1 && 1))
20714 : return 8968; /* sse4_1_zero_extendv2siv2di2 */
20715 : break;
20716 :
20717 : default:
20718 : break;
20719 : }
20720 : if (GET_CODE (x4) != SUBREG
20721 : || maybe_ne (SUBREG_BYTE (x4), 0))
20722 : return -1;
20723 : x5 = XEXP (x4, 0);
20724 : switch (GET_CODE (x5))
20725 : {
20726 : case VEC_CONCAT:
20727 : switch (pattern689 (x2))
20728 : {
20729 : case 0:
20730 : if (!
20731 : #line 24614 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20732 : (TARGET_SSE4_1
20733 : && ix86_pre_reload_split ()))
20734 : return -1;
20735 : return 8822; /* *sse4_1_zero_extendv8qiv8hi2_2 */
20736 :
20737 : case 1:
20738 : if (!
20739 : #line 24792 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20740 : (TARGET_AVX2
20741 : && ix86_pre_reload_split ()))
20742 : return -1;
20743 : return 8842; /* *avx2_zero_extendv8qiv8si2_2 */
20744 :
20745 : case 2:
20746 : if (!
20747 : #line 25237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20748 : (TARGET_AVX512F && ix86_pre_reload_split ()))
20749 : return -1;
20750 : return 8900; /* *avx512f_zero_extendv8qiv8di2_2 */
20751 :
20752 : case 3:
20753 : if (!
20754 : #line 25082 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20755 : (TARGET_SSE4_1
20756 : && ix86_pre_reload_split ()))
20757 : return -1;
20758 : return 8884; /* *sse4_1_zero_extendv4hiv4si2_2 */
20759 :
20760 : case 4:
20761 : if (!
20762 : #line 25492 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20763 : (TARGET_AVX2
20764 : && ix86_pre_reload_split ()))
20765 : return -1;
20766 : return 8939; /* *avx2_zero_extendv4hiv4di2_2 */
20767 :
20768 : case 5:
20769 : if (!
20770 : #line 25770 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20771 : (TARGET_SSE4_1
20772 : && ix86_pre_reload_split ()))
20773 : return -1;
20774 : return 8975; /* *sse4_1_zero_extendv2siv2di2_2 */
20775 :
20776 : default:
20777 : return -1;
20778 : }
20779 :
20780 : case VEC_MERGE:
20781 : x6 = XEXP (x5, 0);
20782 : if (GET_CODE (x6) != VEC_DUPLICATE)
20783 : return -1;
20784 : if (GET_MODE (x6) == E_V4SImode)
20785 : {
20786 : switch (pattern1042 (x2))
20787 : {
20788 : case 0:
20789 : if (
20790 : #line 24884 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20791 : (TARGET_SSE4_1 && 1
20792 : && ix86_pre_reload_split ()))
20793 : return 8855; /* *sse4_1_zero_extendv4qiv4si2_2 */
20794 : break;
20795 :
20796 : case 1:
20797 : if (
20798 : #line 25324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20799 : (TARGET_AVX2
20800 : && ix86_pre_reload_split ()))
20801 : return 8912; /* *avx2_zero_extendv4qiv4di2_2 */
20802 : break;
20803 :
20804 : case 2:
20805 : if (
20806 : #line 25580 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20807 : (TARGET_SSE4_1
20808 : && ix86_pre_reload_split ()))
20809 : return 8951; /* *sse4_1_zero_extendv2hiv2di2_2 */
20810 : break;
20811 :
20812 : default:
20813 : break;
20814 : }
20815 : }
20816 : x7 = XEXP (x5, 2);
20817 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
20818 : return -1;
20819 : switch (pattern1043 (x2))
20820 : {
20821 : case 0:
20822 : if (!
20823 : #line 25429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20824 : (TARGET_SSE4_1 && ix86_pre_reload_split ()))
20825 : return -1;
20826 : return 8923; /* *sse4_1_zero_extendv2qiv2di2_2 */
20827 :
20828 : case 1:
20829 : if (!
20830 : #line 25429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20831 : (TARGET_SSE4_1 && ix86_pre_reload_split ()))
20832 : return -1;
20833 : return 8924; /* *sse4_1_zero_extendv2qiv2di2_2 */
20834 :
20835 : case 2:
20836 : if (!
20837 : #line 25429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20838 : (TARGET_SSE4_1 && ix86_pre_reload_split ()))
20839 : return -1;
20840 : return 8925; /* *sse4_1_zero_extendv2qiv2di2_2 */
20841 :
20842 : default:
20843 : return -1;
20844 : }
20845 :
20846 : default:
20847 : return -1;
20848 : }
20849 :
20850 : default:
20851 : return -1;
20852 : }
20853 : }
20854 :
20855 : int
20856 : recog_349 (rtx x1 ATTRIBUTE_UNUSED,
20857 : rtx_insn *insn ATTRIBUTE_UNUSED,
20858 : int *pnum_clobbers ATTRIBUTE_UNUSED)
20859 : {
20860 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
20861 : rtx x2, x3, x4;
20862 : int res ATTRIBUTE_UNUSED;
20863 : x2 = XEXP (x1, 0);
20864 : operands[0] = x2;
20865 : x3 = XEXP (x1, 1);
20866 : x4 = XEXP (x3, 0);
20867 : switch (GET_CODE (x4))
20868 : {
20869 : case REG:
20870 : case SUBREG:
20871 : case MEM:
20872 : case VEC_DUPLICATE:
20873 : switch (pattern190 (x3))
20874 : {
20875 : case 0:
20876 : if (!(
20877 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20878 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V32HFmode, operands)
20879 : && 1 && 1) &&
20880 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20881 : (TARGET_AVX512FP16)))
20882 : return -1;
20883 : return 2749; /* *subv32hf3 */
20884 :
20885 : case 1:
20886 : if (!(
20887 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20888 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V16HFmode, operands)
20889 : && 1 && 1) &&
20890 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20891 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
20892 : return -1;
20893 : return 2757; /* *subv16hf3 */
20894 :
20895 : case 2:
20896 : if (!(
20897 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20898 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V8HFmode, operands)
20899 : && 1 && 1) &&
20900 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20901 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
20902 : return -1;
20903 : return 2765; /* *subv8hf3 */
20904 :
20905 : case 3:
20906 : if (!(
20907 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20908 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V16SFmode, operands)
20909 : && 1 && 1) &&
20910 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20911 : (TARGET_AVX512F)))
20912 : return -1;
20913 : return 2773; /* *subv16sf3 */
20914 :
20915 : case 4:
20916 : if (!(
20917 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20918 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V8SFmode, operands)
20919 : && 1 && 1) &&
20920 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20921 : (TARGET_AVX)))
20922 : return -1;
20923 : return 2781; /* *subv8sf3 */
20924 :
20925 : case 5:
20926 : if (!
20927 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20928 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V4SFmode, operands)
20929 : && 1 && 1))
20930 : return -1;
20931 : return 2789; /* *subv4sf3 */
20932 :
20933 : case 6:
20934 : if (!(
20935 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20936 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V8DFmode, operands)
20937 : && 1 && 1) &&
20938 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20939 : (TARGET_AVX512F)))
20940 : return -1;
20941 : return 2797; /* *subv8df3 */
20942 :
20943 : case 7:
20944 : if (!(
20945 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20946 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V4DFmode, operands)
20947 : && 1 && 1) &&
20948 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20949 : (TARGET_AVX)))
20950 : return -1;
20951 : return 2805; /* *subv4df3 */
20952 :
20953 : case 8:
20954 : if (!(
20955 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20956 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V2DFmode, operands)
20957 : && 1 && 1) &&
20958 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20959 : (TARGET_SSE2)))
20960 : return -1;
20961 : return 2813; /* *subv2df3 */
20962 :
20963 : case 9:
20964 : if (!(
20965 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20966 : (TARGET_SSE2 && ix86_binary_operator_ok (MINUS, V64QImode, operands)) &&
20967 : #line 572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20968 : (TARGET_AVX512BW)))
20969 : return -1;
20970 : return 7499; /* *subv64qi3 */
20971 :
20972 : case 10:
20973 : if (!(
20974 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20975 : (TARGET_SSE2 && ix86_binary_operator_ok (MINUS, V32QImode, operands)) &&
20976 : #line 572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20977 : (TARGET_AVX2)))
20978 : return -1;
20979 : return 7501; /* *subv32qi3 */
20980 :
20981 : case 11:
20982 : if (!
20983 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20984 : (TARGET_SSE2 && ix86_binary_operator_ok (MINUS, V16QImode, operands)))
20985 : return -1;
20986 : return 7503; /* *subv16qi3 */
20987 :
20988 : case 12:
20989 : if (!(
20990 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20991 : (TARGET_SSE2 && ix86_binary_operator_ok (MINUS, V32HImode, operands)) &&
20992 : #line 573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20993 : (TARGET_AVX512BW)))
20994 : return -1;
20995 : return 7505; /* *subv32hi3 */
20996 :
20997 : case 13:
20998 : if (!(
20999 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21000 : (TARGET_SSE2 && ix86_binary_operator_ok (MINUS, V16HImode, operands)) &&
21001 : #line 573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21002 : (TARGET_AVX2)))
21003 : return -1;
21004 : return 7507; /* *subv16hi3 */
21005 :
21006 : case 14:
21007 : if (!
21008 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21009 : (TARGET_SSE2 && ix86_binary_operator_ok (MINUS, V8HImode, operands)))
21010 : return -1;
21011 : return 7509; /* *subv8hi3 */
21012 :
21013 : case 15:
21014 : if (!(
21015 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21016 : (TARGET_SSE2 && ix86_binary_operator_ok (MINUS, V16SImode, operands)) &&
21017 : #line 574 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21018 : (TARGET_AVX512F)))
21019 : return -1;
21020 : return 7511; /* *subv16si3 */
21021 :
21022 : case 16:
21023 : if (!(
21024 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21025 : (TARGET_SSE2 && ix86_binary_operator_ok (MINUS, V8SImode, operands)) &&
21026 : #line 574 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21027 : (TARGET_AVX2)))
21028 : return -1;
21029 : return 7513; /* *subv8si3 */
21030 :
21031 : case 17:
21032 : if (!
21033 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21034 : (TARGET_SSE2 && ix86_binary_operator_ok (MINUS, V4SImode, operands)))
21035 : return -1;
21036 : return 7515; /* *subv4si3 */
21037 :
21038 : case 18:
21039 : if (!(
21040 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21041 : (TARGET_SSE2 && ix86_binary_operator_ok (MINUS, V8DImode, operands)) &&
21042 : #line 575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21043 : (TARGET_AVX512F)))
21044 : return -1;
21045 : return 7517; /* *subv8di3 */
21046 :
21047 : case 19:
21048 : if (!(
21049 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21050 : (TARGET_SSE2 && ix86_binary_operator_ok (MINUS, V4DImode, operands)) &&
21051 : #line 575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21052 : (TARGET_AVX2)))
21053 : return -1;
21054 : return 7519; /* *subv4di3 */
21055 :
21056 : case 20:
21057 : if (!
21058 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21059 : (TARGET_SSE2 && ix86_binary_operator_ok (MINUS, V2DImode, operands)))
21060 : return -1;
21061 : return 7521; /* *subv2di3 */
21062 :
21063 : case 21:
21064 : if (!
21065 : #line 32831 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21066 : (TARGET_AVX10_2))
21067 : return -1;
21068 : return 10679; /* avx10_2_subbf16_v32bf */
21069 :
21070 : case 22:
21071 : if (!
21072 : #line 32831 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21073 : (TARGET_AVX10_2))
21074 : return -1;
21075 : return 10687; /* avx10_2_subbf16_v16bf */
21076 :
21077 : case 23:
21078 : if (!
21079 : #line 32831 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21080 : (TARGET_AVX10_2))
21081 : return -1;
21082 : return 10695; /* avx10_2_subbf16_v8bf */
21083 :
21084 : default:
21085 : return -1;
21086 : }
21087 :
21088 : case VEC_SELECT:
21089 : switch (pattern197 (x3))
21090 : {
21091 : case 0:
21092 : if (!
21093 : #line 22922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21094 : (TARGET_AVX2))
21095 : return -1;
21096 : return 8633; /* avx2_phsubwv16hi3 */
21097 :
21098 : case 1:
21099 : if (!
21100 : #line 22945 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21101 : (TARGET_SSSE3))
21102 : return -1;
21103 : return 8637; /* ssse3_phsubwv8hi3 */
21104 :
21105 : case 2:
21106 : if (!
21107 : #line 23012 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21108 : (TARGET_AVX2))
21109 : return -1;
21110 : return 8644; /* avx2_phsubdv8si3 */
21111 :
21112 : case 3:
21113 : if (!
21114 : #line 23033 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21115 : (TARGET_SSSE3))
21116 : return -1;
21117 : return 8646; /* ssse3_phsubdv4si3 */
21118 :
21119 : default:
21120 : return -1;
21121 : }
21122 :
21123 : case SIGN_EXTEND:
21124 : switch (pattern199 (x3,
21125 : SIGN_EXTEND))
21126 : {
21127 : case 0:
21128 : if (!
21129 : #line 27047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21130 : (TARGET_XOP))
21131 : return -1;
21132 : return 9079; /* xop_phsubbw */
21133 :
21134 : case 1:
21135 : if (!
21136 : #line 27067 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21137 : (TARGET_XOP))
21138 : return -1;
21139 : return 9080; /* xop_phsubwd */
21140 :
21141 : case 2:
21142 : if (!
21143 : #line 27085 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21144 : (TARGET_XOP))
21145 : return -1;
21146 : return 9081; /* xop_phsubdq */
21147 :
21148 : default:
21149 : return -1;
21150 : }
21151 :
21152 : default:
21153 : return -1;
21154 : }
21155 : }
21156 :
21157 : int
21158 : recog_356 (rtx x1 ATTRIBUTE_UNUSED,
21159 : rtx_insn *insn ATTRIBUTE_UNUSED,
21160 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21161 : {
21162 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21163 : rtx x2, x3, x4, x5;
21164 : int res ATTRIBUTE_UNUSED;
21165 : x2 = XEXP (x1, 0);
21166 : operands[0] = x2;
21167 : x3 = XEXP (x1, 1);
21168 : x4 = XEXP (x3, 0);
21169 : operands[1] = x4;
21170 : x5 = XEXP (x3, 1);
21171 : operands[2] = x5;
21172 : switch (GET_MODE (operands[0]))
21173 : {
21174 : case E_V32HFmode:
21175 : if (pattern516 (x3,
21176 : E_V32HFmode) != 0
21177 : || !(
21178 : #line 2922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21179 : (TARGET_SSE && 1 && 1) &&
21180 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21181 : (TARGET_AVX512FP16)))
21182 : return -1;
21183 : return 2913; /* avx512fp16_divv32hf3 */
21184 :
21185 : case E_V16HFmode:
21186 : if (pattern516 (x3,
21187 : E_V16HFmode) != 0
21188 : || !(
21189 : #line 2922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21190 : (TARGET_SSE && 1 && 1) &&
21191 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21192 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
21193 : return -1;
21194 : return 2917; /* avx512fp16_divv16hf3 */
21195 :
21196 : case E_V8HFmode:
21197 : if (pattern516 (x3,
21198 : E_V8HFmode) != 0
21199 : || !(
21200 : #line 2922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21201 : (TARGET_SSE && 1 && 1) &&
21202 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21203 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
21204 : return -1;
21205 : return 2919; /* avx512fp16_divv8hf3 */
21206 :
21207 : case E_V16SFmode:
21208 : if (pattern516 (x3,
21209 : E_V16SFmode) != 0
21210 : || !(
21211 : #line 2922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21212 : (TARGET_SSE && 1 && 1) &&
21213 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21214 : (TARGET_AVX512F)))
21215 : return -1;
21216 : return 2921; /* avx512f_divv16sf3 */
21217 :
21218 : case E_V8SFmode:
21219 : if (pattern516 (x3,
21220 : E_V8SFmode) != 0
21221 : || !(
21222 : #line 2922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21223 : (TARGET_SSE && 1 && 1) &&
21224 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21225 : (TARGET_AVX)))
21226 : return -1;
21227 : return 2925; /* avx_divv8sf3 */
21228 :
21229 : case E_V4SFmode:
21230 : if (pattern516 (x3,
21231 : E_V4SFmode) != 0
21232 : || !
21233 : #line 2922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21234 : (TARGET_SSE && 1 && 1))
21235 : return -1;
21236 : return 2927; /* sse_divv4sf3 */
21237 :
21238 : case E_V8DFmode:
21239 : if (pattern516 (x3,
21240 : E_V8DFmode) != 0
21241 : || !(
21242 : #line 2922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21243 : (TARGET_SSE && 1 && 1) &&
21244 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21245 : (TARGET_AVX512F)))
21246 : return -1;
21247 : return 2929; /* avx512f_divv8df3 */
21248 :
21249 : case E_V4DFmode:
21250 : if (pattern516 (x3,
21251 : E_V4DFmode) != 0
21252 : || !(
21253 : #line 2922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21254 : (TARGET_SSE && 1 && 1) &&
21255 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21256 : (TARGET_AVX)))
21257 : return -1;
21258 : return 2933; /* avx_divv4df3 */
21259 :
21260 : case E_V2DFmode:
21261 : if (pattern516 (x3,
21262 : E_V2DFmode) != 0
21263 : || !(
21264 : #line 2922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21265 : (TARGET_SSE && 1 && 1) &&
21266 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21267 : (TARGET_SSE2)))
21268 : return -1;
21269 : return 2935; /* sse2_divv2df3 */
21270 :
21271 : case E_V32BFmode:
21272 : if (pattern12 (x3,
21273 : E_V32BFmode) != 0
21274 : || !
21275 : #line 32831 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21276 : (TARGET_AVX10_2))
21277 : return -1;
21278 : return 10683; /* avx10_2_divbf16_v32bf */
21279 :
21280 : case E_V16BFmode:
21281 : if (pattern12 (x3,
21282 : E_V16BFmode) != 0
21283 : || !
21284 : #line 32831 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21285 : (TARGET_AVX10_2))
21286 : return -1;
21287 : return 10691; /* avx10_2_divbf16_v16bf */
21288 :
21289 : case E_V8BFmode:
21290 : if (pattern12 (x3,
21291 : E_V8BFmode) != 0
21292 : || !
21293 : #line 32831 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21294 : (TARGET_AVX10_2))
21295 : return -1;
21296 : return 10699; /* avx10_2_divbf16_v8bf */
21297 :
21298 : default:
21299 : return -1;
21300 : }
21301 : }
21302 :
21303 : int
21304 : recog_365 (rtx x1 ATTRIBUTE_UNUSED,
21305 : rtx_insn *insn ATTRIBUTE_UNUSED,
21306 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21307 : {
21308 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21309 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
21310 : rtx x10, x11;
21311 : int res ATTRIBUTE_UNUSED;
21312 : x2 = XVECEXP (x1, 0, 0);
21313 : x3 = XEXP (x2, 0);
21314 : switch (GET_CODE (x3))
21315 : {
21316 : case REG:
21317 : case SUBREG:
21318 : case MEM:
21319 : res = recog_363 (x1, insn, pnum_clobbers);
21320 : if (res >= 0)
21321 : return res;
21322 : break;
21323 :
21324 : case STRICT_LOW_PART:
21325 : x4 = XVECEXP (x1, 0, 1);
21326 : if (pattern236 (x4,
21327 : E_CCmode,
21328 : 17) == 0)
21329 : {
21330 : x5 = XEXP (x3, 0);
21331 : operands[0] = x5;
21332 : x6 = XEXP (x2, 1);
21333 : operands[1] = x6;
21334 : switch (GET_MODE (operands[0]))
21335 : {
21336 : case E_QImode:
21337 : if (register_operand (operands[0], E_QImode)
21338 : && const0_operand (operands[1], E_QImode)
21339 : &&
21340 : #line 3467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21341 : (reload_completed))
21342 : return 117; /* *movstrictqi_xor */
21343 : break;
21344 :
21345 : case E_HImode:
21346 : if (register_operand (operands[0], E_HImode)
21347 : && const0_operand (operands[1], E_HImode)
21348 : &&
21349 : #line 3467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21350 : (reload_completed))
21351 : return 118; /* *movstricthi_xor */
21352 : break;
21353 :
21354 : default:
21355 : break;
21356 : }
21357 : }
21358 : break;
21359 :
21360 : case PC:
21361 : res = recog_364 (x1, insn, pnum_clobbers);
21362 : if (res >= 0)
21363 : return res;
21364 : break;
21365 :
21366 : default:
21367 : break;
21368 : }
21369 : x4 = XVECEXP (x1, 0, 1);
21370 : if (GET_CODE (x4) != CLOBBER)
21371 : return -1;
21372 : x7 = XEXP (x4, 0);
21373 : if (GET_CODE (x7) != REG
21374 : || REGNO (x7) != 17
21375 : || GET_MODE (x7) != E_CCmode)
21376 : return -1;
21377 : x6 = XEXP (x2, 1);
21378 : switch (GET_CODE (x6))
21379 : {
21380 : case SUBREG:
21381 : if (maybe_ne (SUBREG_BYTE (x6), 0))
21382 : return -1;
21383 : switch (pattern1047 (x2))
21384 : {
21385 : case 0:
21386 : x8 = XEXP (x6, 0);
21387 : x9 = XEXP (x8, 1);
21388 : operands[2] = x9;
21389 : if (general_operand (operands[2], E_QImode))
21390 : {
21391 : switch (pattern1045 (x2))
21392 : {
21393 : case 0:
21394 : return 337; /* *addqi_exthi_1 */
21395 :
21396 : case 1:
21397 : return 338; /* *addqi_extsi_1 */
21398 :
21399 : case 2:
21400 : if (
21401 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21402 : (TARGET_64BIT))
21403 : return 339; /* *addqi_extdi_1 */
21404 : break;
21405 :
21406 : default:
21407 : break;
21408 : }
21409 : }
21410 : if (GET_CODE (x9) != SUBREG)
21411 : return -1;
21412 : switch (pattern1814 (x2))
21413 : {
21414 : case 0:
21415 : return 340; /* *addqi_exthi_2 */
21416 :
21417 : case 1:
21418 : return 342; /* *addqi_extsi_2 */
21419 :
21420 : case 2:
21421 : if (!
21422 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21423 : (TARGET_64BIT))
21424 : return -1;
21425 : return 344; /* *addqi_extdi_2 */
21426 :
21427 : default:
21428 : return -1;
21429 : }
21430 :
21431 : case 1:
21432 : x8 = XEXP (x6, 0);
21433 : x9 = XEXP (x8, 1);
21434 : if (GET_CODE (x9) == SUBREG)
21435 : {
21436 : switch (pattern1814 (x2))
21437 : {
21438 : case 0:
21439 : return 341; /* *subqi_exthi_2 */
21440 :
21441 : case 1:
21442 : return 343; /* *subqi_extsi_2 */
21443 :
21444 : case 2:
21445 : if (
21446 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21447 : (TARGET_64BIT))
21448 : return 345; /* *subqi_extdi_2 */
21449 : break;
21450 :
21451 : default:
21452 : break;
21453 : }
21454 : }
21455 : operands[2] = x9;
21456 : if (!general_operand (operands[2], E_QImode))
21457 : return -1;
21458 : switch (pattern1045 (x2))
21459 : {
21460 : case 0:
21461 : return 426; /* *subqi_exthi_1 */
21462 :
21463 : case 1:
21464 : return 427; /* *subqi_extsi_1 */
21465 :
21466 : case 2:
21467 : if (!
21468 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21469 : (TARGET_64BIT))
21470 : return -1;
21471 : return 428; /* *subqi_extdi_1 */
21472 :
21473 : default:
21474 : return -1;
21475 : }
21476 :
21477 : case 2:
21478 : x8 = XEXP (x6, 0);
21479 : x9 = XEXP (x8, 1);
21480 : operands[2] = x9;
21481 : if (general_operand (operands[2], E_QImode))
21482 : {
21483 : switch (pattern1045 (x2))
21484 : {
21485 : case 0:
21486 : return 801; /* *andqi_exthi_1 */
21487 :
21488 : case 1:
21489 : return 804; /* *andqi_extsi_1 */
21490 :
21491 : case 2:
21492 : if (
21493 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21494 : (TARGET_64BIT))
21495 : return 807; /* *andqi_extdi_1 */
21496 : break;
21497 :
21498 : default:
21499 : break;
21500 : }
21501 : }
21502 : if (GET_CODE (x9) != SUBREG)
21503 : return -1;
21504 : switch (pattern1814 (x2))
21505 : {
21506 : case 0:
21507 : return 819; /* *andqi_exthi_2 */
21508 :
21509 : case 1:
21510 : return 822; /* *andqi_extsi_2 */
21511 :
21512 : case 2:
21513 : if (!
21514 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21515 : (TARGET_64BIT))
21516 : return -1;
21517 : return 825; /* *andqi_extdi_2 */
21518 :
21519 : default:
21520 : return -1;
21521 : }
21522 :
21523 : case 3:
21524 : x8 = XEXP (x6, 0);
21525 : x9 = XEXP (x8, 1);
21526 : operands[2] = x9;
21527 : if (general_operand (operands[2], E_QImode))
21528 : {
21529 : switch (pattern1045 (x2))
21530 : {
21531 : case 0:
21532 : return 802; /* *iorqi_exthi_1 */
21533 :
21534 : case 1:
21535 : return 805; /* *iorqi_extsi_1 */
21536 :
21537 : case 2:
21538 : if (
21539 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21540 : (TARGET_64BIT))
21541 : return 808; /* *iorqi_extdi_1 */
21542 : break;
21543 :
21544 : default:
21545 : break;
21546 : }
21547 : }
21548 : if (GET_CODE (x9) != SUBREG)
21549 : return -1;
21550 : switch (pattern1814 (x2))
21551 : {
21552 : case 0:
21553 : return 820; /* *iorqi_exthi_2 */
21554 :
21555 : case 1:
21556 : return 823; /* *iorqi_extsi_2 */
21557 :
21558 : case 2:
21559 : if (!
21560 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21561 : (TARGET_64BIT))
21562 : return -1;
21563 : return 826; /* *iorqi_extdi_2 */
21564 :
21565 : default:
21566 : return -1;
21567 : }
21568 :
21569 : case 4:
21570 : x8 = XEXP (x6, 0);
21571 : x9 = XEXP (x8, 1);
21572 : operands[2] = x9;
21573 : if (general_operand (operands[2], E_QImode))
21574 : {
21575 : switch (pattern1045 (x2))
21576 : {
21577 : case 0:
21578 : return 803; /* *xorqi_exthi_1 */
21579 :
21580 : case 1:
21581 : return 806; /* *xorqi_extsi_1 */
21582 :
21583 : case 2:
21584 : if (
21585 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21586 : (TARGET_64BIT))
21587 : return 809; /* *xorqi_extdi_1 */
21588 : break;
21589 :
21590 : default:
21591 : break;
21592 : }
21593 : }
21594 : if (GET_CODE (x9) != SUBREG)
21595 : return -1;
21596 : switch (pattern1814 (x2))
21597 : {
21598 : case 0:
21599 : return 821; /* *xorqi_exthi_2 */
21600 :
21601 : case 1:
21602 : return 824; /* *xorqi_extsi_2 */
21603 :
21604 : case 2:
21605 : if (!
21606 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21607 : (TARGET_64BIT))
21608 : return -1;
21609 : return 827; /* *xorqi_extdi_2 */
21610 :
21611 : default:
21612 : return -1;
21613 : }
21614 :
21615 : case 5:
21616 : return 1020; /* *negqi_exthi_1 */
21617 :
21618 : case 6:
21619 : return 1021; /* *negqi_extsi_1 */
21620 :
21621 : case 7:
21622 : if (!
21623 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21624 : (TARGET_64BIT))
21625 : return -1;
21626 : return 1022; /* *negqi_extdi_1 */
21627 :
21628 : case 8:
21629 : return 1151; /* *ashlqi_exthi_1 */
21630 :
21631 : case 9:
21632 : return 1152; /* *ashlqi_extsi_1 */
21633 :
21634 : case 10:
21635 : if (!
21636 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21637 : (TARGET_64BIT))
21638 : return -1;
21639 : return 1153; /* *ashlqi_extdi_1 */
21640 :
21641 : case 11:
21642 : operands[0] = x3;
21643 : switch (pattern1240 (x6))
21644 : {
21645 : case 0:
21646 : if ((
21647 : #line 17093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21648 : (UINTVAL (operands[2]) < 4 * BITS_PER_UNIT) &&
21649 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21650 : (!TARGET_64BIT)))
21651 : return 1170; /* lshrdi3_doubleword_lowpart */
21652 : break;
21653 :
21654 : case 1:
21655 : if ((
21656 : #line 17093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21657 : (UINTVAL (operands[2]) < 8 * BITS_PER_UNIT) &&
21658 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21659 : (TARGET_64BIT)))
21660 : return 1172; /* lshrti3_doubleword_lowpart */
21661 : break;
21662 :
21663 : default:
21664 : break;
21665 : }
21666 : x8 = XEXP (x6, 0);
21667 : if (GET_MODE (x8) != E_QImode)
21668 : return -1;
21669 : switch (pattern1046 (x2))
21670 : {
21671 : case 0:
21672 : return 1270; /* *lshrqi_exthi_1 */
21673 :
21674 : case 1:
21675 : return 1272; /* *lshrqi_extsi_1 */
21676 :
21677 : case 2:
21678 : if (!
21679 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21680 : (TARGET_64BIT))
21681 : return -1;
21682 : return 1274; /* *lshrqi_extdi_1 */
21683 :
21684 : default:
21685 : return -1;
21686 : }
21687 :
21688 : case 12:
21689 : operands[0] = x3;
21690 : switch (pattern1240 (x6))
21691 : {
21692 : case 0:
21693 : if ((
21694 : #line 17093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21695 : (UINTVAL (operands[2]) < 4 * BITS_PER_UNIT) &&
21696 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21697 : (!TARGET_64BIT)))
21698 : return 1171; /* ashrdi3_doubleword_lowpart */
21699 : break;
21700 :
21701 : case 1:
21702 : if ((
21703 : #line 17093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21704 : (UINTVAL (operands[2]) < 8 * BITS_PER_UNIT) &&
21705 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21706 : (TARGET_64BIT)))
21707 : return 1173; /* ashrti3_doubleword_lowpart */
21708 : break;
21709 :
21710 : default:
21711 : break;
21712 : }
21713 : x8 = XEXP (x6, 0);
21714 : if (GET_MODE (x8) != E_QImode)
21715 : return -1;
21716 : switch (pattern1046 (x2))
21717 : {
21718 : case 0:
21719 : return 1271; /* *ashrqi_exthi_1 */
21720 :
21721 : case 1:
21722 : return 1273; /* *ashrqi_extsi_1 */
21723 :
21724 : case 2:
21725 : if (!
21726 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21727 : (TARGET_64BIT))
21728 : return -1;
21729 : return 1275; /* *ashrqi_extdi_1 */
21730 :
21731 : default:
21732 : return -1;
21733 : }
21734 :
21735 : default:
21736 : return -1;
21737 : }
21738 :
21739 : case CONST_INT:
21740 : if (GET_CODE (x3) != ZERO_EXTRACT)
21741 : return -1;
21742 : x10 = XEXP (x3, 1);
21743 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
21744 : return -1;
21745 : x5 = XEXP (x3, 0);
21746 : operands[0] = x5;
21747 : x11 = XEXP (x3, 2);
21748 : operands[1] = x11;
21749 : switch (XWINT (x6, 0))
21750 : {
21751 : case 0L:
21752 : switch (GET_CODE (operands[1]))
21753 : {
21754 : case REG:
21755 : case SUBREG:
21756 : if (!register_operand (operands[1], E_QImode)
21757 : || GET_MODE (x3) != E_HImode)
21758 : return -1;
21759 : switch (GET_MODE (operands[0]))
21760 : {
21761 : case E_QImode:
21762 : if (!nonimmediate_operand (operands[0], E_QImode)
21763 : || !
21764 : #line 19323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21765 : (TARGET_USE_BT && ix86_pre_reload_split ()))
21766 : return -1;
21767 : return 1443; /* *btrqi_2 */
21768 :
21769 : case E_HImode:
21770 : if (!nonimmediate_operand (operands[0], E_HImode)
21771 : || !
21772 : #line 19323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21773 : (TARGET_USE_BT && ix86_pre_reload_split ()))
21774 : return -1;
21775 : return 1444; /* *btrhi_2 */
21776 :
21777 : default:
21778 : return -1;
21779 : }
21780 :
21781 : case CONST_INT:
21782 : if (!const_0_to_63_operand (operands[1], E_QImode)
21783 : || GET_MODE (x3) != E_DImode
21784 : || !nonimmediate_operand (operands[0], E_DImode)
21785 : || !
21786 : #line 19387 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21787 : (TARGET_64BIT && (TARGET_USE_BT || reload_completed)))
21788 : return -1;
21789 : return 1446; /* *btrq_imm */
21790 :
21791 : default:
21792 : return -1;
21793 : }
21794 :
21795 : case 1L:
21796 : if (GET_MODE (x3) != E_DImode
21797 : || !nonimmediate_operand (operands[0], E_DImode)
21798 : || !const_0_to_63_operand (operands[1], E_QImode)
21799 : || !
21800 : #line 19374 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21801 : (TARGET_64BIT && (TARGET_USE_BT || reload_completed)))
21802 : return -1;
21803 : return 1445; /* *btsq_imm */
21804 :
21805 : default:
21806 : return -1;
21807 : }
21808 :
21809 : default:
21810 : return -1;
21811 : }
21812 : }
21813 :
21814 : int
21815 : recog_379 (rtx x1 ATTRIBUTE_UNUSED,
21816 : rtx_insn *insn ATTRIBUTE_UNUSED,
21817 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21818 : {
21819 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21820 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
21821 : rtx x10;
21822 : int res ATTRIBUTE_UNUSED;
21823 : if (pattern344 (x1) != 0)
21824 : return -1;
21825 : x2 = XVECEXP (x1, 0, 0);
21826 : x3 = XEXP (x2, 1);
21827 : x4 = XEXP (x3, 0);
21828 : x5 = XEXP (x4, 0);
21829 : switch (GET_CODE (x5))
21830 : {
21831 : case REG:
21832 : case SUBREG:
21833 : case MEM:
21834 : operands[1] = x5;
21835 : x6 = XEXP (x4, 1);
21836 : operands[2] = x6;
21837 : switch (GET_MODE (operands[0]))
21838 : {
21839 : case E_HImode:
21840 : if (!register_operand (operands[0], E_HImode)
21841 : || GET_MODE (x3) != E_HImode
21842 : || GET_MODE (x4) != E_QImode
21843 : || !nonimmediate_operand (operands[1], E_QImode)
21844 : || !general_operand (operands[2], E_QImode)
21845 : || !
21846 : #line 6728 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21847 : (TARGET_APX_NDD && true
21848 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21849 : return -1;
21850 : return 291; /* *addqi_1_zexthi */
21851 :
21852 : case E_SImode:
21853 : if (!register_operand (operands[0], E_SImode)
21854 : || GET_MODE (x3) != E_SImode)
21855 : return -1;
21856 : switch (GET_MODE (x4))
21857 : {
21858 : case E_QImode:
21859 : if (!nonimmediate_operand (operands[1], E_QImode)
21860 : || !general_operand (operands[2], E_QImode)
21861 : || !
21862 : #line 6728 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21863 : (TARGET_APX_NDD && true
21864 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21865 : return -1;
21866 : return 293; /* *addqi_1_zextsi */
21867 :
21868 : case E_HImode:
21869 : if (!nonimmediate_operand (operands[1], E_HImode)
21870 : || !general_operand (operands[2], E_HImode)
21871 : || !
21872 : #line 6766 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21873 : (TARGET_APX_NDD && true
21874 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21875 : return -1;
21876 : return 297; /* *addhi_1_zextsi */
21877 :
21878 : default:
21879 : return -1;
21880 : }
21881 :
21882 : case E_DImode:
21883 : if (!register_operand (operands[0], E_DImode)
21884 : || GET_MODE (x3) != E_DImode)
21885 : return -1;
21886 : switch (GET_MODE (x4))
21887 : {
21888 : case E_QImode:
21889 : if (!nonimmediate_operand (operands[1], E_QImode)
21890 : || !general_operand (operands[2], E_QImode)
21891 : || !
21892 : #line 6728 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21893 : (TARGET_APX_NDD && true
21894 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21895 : return -1;
21896 : return 295; /* *addqi_1_zextdi */
21897 :
21898 : case E_HImode:
21899 : if (!nonimmediate_operand (operands[1], E_HImode)
21900 : || !general_operand (operands[2], E_HImode)
21901 : || !
21902 : #line 6766 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21903 : (TARGET_APX_NDD && true
21904 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21905 : return -1;
21906 : return 299; /* *addhi_1_zextdi */
21907 :
21908 : case E_SImode:
21909 : if (!nonimmediate_operand (operands[1], E_SImode)
21910 : || !x86_64_general_operand (operands[2], E_SImode)
21911 : || !
21912 : #line 6811 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21913 : (TARGET_64BIT
21914 : && ix86_binary_operator_ok (PLUS, SImode, operands, TARGET_APX_NDD)))
21915 : return -1;
21916 : return 300; /* addsi_1_zext */
21917 :
21918 : default:
21919 : return -1;
21920 : }
21921 :
21922 : default:
21923 : return -1;
21924 : }
21925 :
21926 : case PLUS:
21927 : x7 = XEXP (x5, 0);
21928 : switch (GET_CODE (x7))
21929 : {
21930 : case LTU:
21931 : case UNLT:
21932 : operands[3] = x7;
21933 : x8 = XEXP (x7, 0);
21934 : if (GET_CODE (x8) != REG
21935 : || REGNO (x8) != 17)
21936 : return -1;
21937 : x9 = XEXP (x7, 1);
21938 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
21939 : return -1;
21940 : x10 = XEXP (x5, 1);
21941 : operands[1] = x10;
21942 : x6 = XEXP (x4, 1);
21943 : operands[2] = x6;
21944 : switch (pattern1163 (x3))
21945 : {
21946 : case 0:
21947 : if (pattern1772 (x5,
21948 : E_QImode) != 0
21949 : || !
21950 : #line 9011 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21951 : (TARGET_APX_NDD
21952 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21953 : return -1;
21954 : return 481; /* *addqi3_carry_zexthi */
21955 :
21956 : case 1:
21957 : if (pattern1772 (x5,
21958 : E_QImode) != 0
21959 : || !
21960 : #line 9011 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21961 : (TARGET_APX_NDD
21962 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21963 : return -1;
21964 : return 482; /* *addqi3_carry_zextsi */
21965 :
21966 : case 2:
21967 : if (pattern1772 (x5,
21968 : E_HImode) != 0
21969 : || !
21970 : #line 9030 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21971 : (TARGET_APX_NDD
21972 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21973 : return -1;
21974 : return 484; /* *addhi3_carry_zextsi */
21975 :
21976 : case 3:
21977 : if (pattern1772 (x5,
21978 : E_QImode) != 0
21979 : || !
21980 : #line 9011 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21981 : (TARGET_APX_NDD
21982 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21983 : return -1;
21984 : return 483; /* *addqi3_carry_zextdi */
21985 :
21986 : case 4:
21987 : if (pattern1772 (x5,
21988 : E_HImode) != 0
21989 : || !
21990 : #line 9030 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21991 : (TARGET_APX_NDD
21992 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21993 : return -1;
21994 : return 485; /* *addhi3_carry_zextdi */
21995 :
21996 : case 5:
21997 : if (pattern1772 (x5,
21998 : E_SImode) != 0
21999 : || !
22000 : #line 9049 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22001 : (TARGET_64BIT
22002 : && ix86_binary_operator_ok (PLUS, SImode, operands, TARGET_APX_NDD)))
22003 : return -1;
22004 : return 486; /* *addsi3_carry_zext */
22005 :
22006 : default:
22007 : return -1;
22008 : }
22009 :
22010 : default:
22011 : return -1;
22012 : }
22013 :
22014 : case LTU:
22015 : case UNLT:
22016 : switch (pattern1164 (x3))
22017 : {
22018 : case 0:
22019 : if (!ix86_carry_flag_operator (operands[2], E_QImode)
22020 : || !nonimmediate_operand (operands[1], E_QImode)
22021 : || !
22022 : #line 9068 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22023 : (TARGET_APX_NDD))
22024 : return -1;
22025 : return 487; /* *addqi3_carry_zexthi_0 */
22026 :
22027 : case 1:
22028 : if (!ix86_carry_flag_operator (operands[2], E_QImode)
22029 : || !nonimmediate_operand (operands[1], E_QImode)
22030 : || !
22031 : #line 9068 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22032 : (TARGET_APX_NDD))
22033 : return -1;
22034 : return 488; /* *addqi3_carry_zextsi_0 */
22035 :
22036 : case 2:
22037 : if (!ix86_carry_flag_operator (operands[2], E_HImode)
22038 : || !nonimmediate_operand (operands[1], E_HImode)
22039 : || !
22040 : #line 9082 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22041 : (TARGET_APX_NDD))
22042 : return -1;
22043 : return 490; /* *addhi3_carry_zextsi_0 */
22044 :
22045 : case 3:
22046 : if (!ix86_carry_flag_operator (operands[2], E_QImode)
22047 : || !nonimmediate_operand (operands[1], E_QImode)
22048 : || !
22049 : #line 9068 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22050 : (TARGET_APX_NDD))
22051 : return -1;
22052 : return 489; /* *addqi3_carry_zextdi_0 */
22053 :
22054 : case 4:
22055 : if (!ix86_carry_flag_operator (operands[2], E_HImode)
22056 : || !nonimmediate_operand (operands[1], E_HImode)
22057 : || !
22058 : #line 9082 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22059 : (TARGET_APX_NDD))
22060 : return -1;
22061 : return 491; /* *addhi3_carry_zextdi_0 */
22062 :
22063 : case 5:
22064 : if (!ix86_carry_flag_operator (operands[2], E_SImode)
22065 : || !nonimmediate_operand (operands[1], E_SImode)
22066 : || !
22067 : #line 9096 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22068 : (TARGET_64BIT))
22069 : return -1;
22070 : return 492; /* *addsi3_carry_zext_0 */
22071 :
22072 : default:
22073 : return -1;
22074 : }
22075 :
22076 : case GE:
22077 : case GEU:
22078 : switch (pattern1164 (x3))
22079 : {
22080 : case 0:
22081 : if (!ix86_carry_flag_unset_operator (operands[2], E_QImode)
22082 : || !nonimmediate_operand (operands[1], E_QImode)
22083 : || !
22084 : #line 9113 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22085 : (TARGET_APX_NDD))
22086 : return -1;
22087 : return 493; /* *addqi3_carry_zexthi_0r */
22088 :
22089 : case 1:
22090 : if (!ix86_carry_flag_unset_operator (operands[2], E_QImode)
22091 : || !nonimmediate_operand (operands[1], E_QImode)
22092 : || !
22093 : #line 9113 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22094 : (TARGET_APX_NDD))
22095 : return -1;
22096 : return 494; /* *addqi3_carry_zextsi_0r */
22097 :
22098 : case 2:
22099 : if (!ix86_carry_flag_unset_operator (operands[2], E_HImode)
22100 : || !nonimmediate_operand (operands[1], E_HImode)
22101 : || !
22102 : #line 9127 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22103 : (TARGET_APX_NDD))
22104 : return -1;
22105 : return 496; /* *addhi3_carry_zextsi_0r */
22106 :
22107 : case 3:
22108 : if (!ix86_carry_flag_unset_operator (operands[2], E_QImode)
22109 : || !nonimmediate_operand (operands[1], E_QImode)
22110 : || !
22111 : #line 9113 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22112 : (TARGET_APX_NDD))
22113 : return -1;
22114 : return 495; /* *addqi3_carry_zextdi_0r */
22115 :
22116 : case 4:
22117 : if (!ix86_carry_flag_unset_operator (operands[2], E_HImode)
22118 : || !nonimmediate_operand (operands[1], E_HImode)
22119 : || !
22120 : #line 9127 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22121 : (TARGET_APX_NDD))
22122 : return -1;
22123 : return 497; /* *addhi3_carry_zextdi_0r */
22124 :
22125 : case 5:
22126 : if (!ix86_carry_flag_unset_operator (operands[2], E_SImode)
22127 : || !nonimmediate_operand (operands[1], E_SImode)
22128 : || !
22129 : #line 9141 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22130 : (TARGET_64BIT))
22131 : return -1;
22132 : return 498; /* *addsi3_carry_zext_0r */
22133 :
22134 : default:
22135 : return -1;
22136 : }
22137 :
22138 : case UNSPEC:
22139 : if (pattern1165 (x5) != 0
22140 : || !register_operand (operands[0], E_DImode)
22141 : || GET_MODE (x3) != E_DImode
22142 : || GET_MODE (x4) != E_SImode)
22143 : return -1;
22144 : x6 = XEXP (x4, 1);
22145 : operands[1] = x6;
22146 : if (!register_operand (operands[1], E_SImode)
22147 : || !
22148 : #line 23616 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22149 : (TARGET_X32))
22150 : return -1;
22151 : return 1697; /* *add_tp_x32_zext */
22152 :
22153 : default:
22154 : return -1;
22155 : }
22156 : }
22157 :
22158 : int
22159 : recog_388 (rtx x1 ATTRIBUTE_UNUSED,
22160 : rtx_insn *insn ATTRIBUTE_UNUSED,
22161 : int *pnum_clobbers ATTRIBUTE_UNUSED)
22162 : {
22163 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
22164 : rtx x2, x3, x4, x5, x6, x7, x8;
22165 : int res ATTRIBUTE_UNUSED;
22166 : x2 = XVECEXP (x1, 0, 0);
22167 : x3 = XEXP (x2, 1);
22168 : x4 = XEXP (x3, 1);
22169 : if (XWINT (x4, 0) != 0L)
22170 : return -1;
22171 : x5 = XVECEXP (x1, 0, 1);
22172 : switch (GET_CODE (x5))
22173 : {
22174 : case SET:
22175 : x6 = XEXP (x5, 0);
22176 : operands[0] = x6;
22177 : x7 = XEXP (x5, 1);
22178 : switch (GET_CODE (x7))
22179 : {
22180 : case PLUS:
22181 : switch (pattern1498 (x1))
22182 : {
22183 : case 0:
22184 : if (!
22185 : #line 7173 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22186 : (ix86_match_ccmode (insn, CCGOCmode)
22187 : && ix86_binary_operator_ok (PLUS, QImode, operands, TARGET_APX_NDD)))
22188 : return -1;
22189 : return 313; /* *addqi_2 */
22190 :
22191 : case 1:
22192 : if (!
22193 : #line 7173 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22194 : (ix86_match_ccmode (insn, CCGOCmode)
22195 : && ix86_binary_operator_ok (PLUS, HImode, operands, TARGET_APX_NDD)))
22196 : return -1;
22197 : return 314; /* *addhi_2 */
22198 :
22199 : case 2:
22200 : if (!
22201 : #line 7173 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22202 : (ix86_match_ccmode (insn, CCGOCmode)
22203 : && ix86_binary_operator_ok (PLUS, SImode, operands, TARGET_APX_NDD)))
22204 : return -1;
22205 : return 315; /* *addsi_2 */
22206 :
22207 : case 3:
22208 : if (!(
22209 : #line 7173 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22210 : (ix86_match_ccmode (insn, CCGOCmode)
22211 : && ix86_binary_operator_ok (PLUS, DImode, operands, TARGET_APX_NDD)) &&
22212 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22213 : (TARGET_64BIT)))
22214 : return -1;
22215 : return 316; /* *adddi_2 */
22216 :
22217 : default:
22218 : return -1;
22219 : }
22220 :
22221 : case ZERO_EXTEND:
22222 : if (pattern1436 (x1,
22223 : PLUS) != 0
22224 : || !
22225 : #line 7223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22226 : (TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)
22227 : && ix86_binary_operator_ok (PLUS, SImode, operands, TARGET_APX_NDD)))
22228 : return -1;
22229 : return 317; /* *addsi_2_zext */
22230 :
22231 : default:
22232 : return -1;
22233 : }
22234 :
22235 : case CLOBBER:
22236 : x6 = XEXP (x5, 0);
22237 : operands[0] = x6;
22238 : x8 = XEXP (x3, 0);
22239 : switch (pattern1329 (x8))
22240 : {
22241 : case 0:
22242 : if (!
22243 : #line 7455 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22244 : (ix86_match_ccmode (insn, CCGOCmode)
22245 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22246 : return -1;
22247 : return 327; /* *addqi_5 */
22248 :
22249 : case 1:
22250 : if (!
22251 : #line 7455 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22252 : (ix86_match_ccmode (insn, CCGOCmode)
22253 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22254 : return -1;
22255 : return 328; /* *addhi_5 */
22256 :
22257 : case 2:
22258 : if (!
22259 : #line 7455 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22260 : (ix86_match_ccmode (insn, CCGOCmode)
22261 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22262 : return -1;
22263 : return 329; /* *addsi_5 */
22264 :
22265 : case 3:
22266 : if (!(
22267 : #line 7455 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22268 : (ix86_match_ccmode (insn, CCGOCmode)
22269 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
22270 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22271 : (TARGET_64BIT)))
22272 : return -1;
22273 : return 330; /* *adddi_5 */
22274 :
22275 : default:
22276 : return -1;
22277 : }
22278 :
22279 : default:
22280 : return -1;
22281 : }
22282 : }
22283 :
22284 : int
22285 : recog_392 (rtx x1 ATTRIBUTE_UNUSED,
22286 : rtx_insn *insn ATTRIBUTE_UNUSED,
22287 : int *pnum_clobbers ATTRIBUTE_UNUSED)
22288 : {
22289 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
22290 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
22291 : rtx x10, x11;
22292 : int res ATTRIBUTE_UNUSED;
22293 : x2 = XVECEXP (x1, 0, 0);
22294 : x3 = XEXP (x2, 0);
22295 : if (GET_CODE (x3) != REG
22296 : || REGNO (x3) != 17)
22297 : return -1;
22298 : x4 = XVECEXP (x1, 0, 1);
22299 : if (GET_CODE (x4) != SET)
22300 : return -1;
22301 : x5 = XEXP (x2, 1);
22302 : x6 = XEXP (x5, 0);
22303 : x7 = XEXP (x6, 1);
22304 : operands[2] = x7;
22305 : x8 = XEXP (x4, 0);
22306 : operands[0] = x8;
22307 : x9 = XEXP (x4, 1);
22308 : switch (GET_CODE (x9))
22309 : {
22310 : case AND:
22311 : x10 = XEXP (x9, 0);
22312 : if (!rtx_equal_p (x10, operands[1]))
22313 : return -1;
22314 : x11 = XEXP (x9, 1);
22315 : if (!rtx_equal_p (x11, operands[2]))
22316 : return -1;
22317 : switch (GET_MODE (x6))
22318 : {
22319 : case E_DImode:
22320 : if (!nonimmediate_operand (operands[1], E_DImode)
22321 : || !x86_64_szext_general_operand (operands[2], E_DImode)
22322 : || !nonimmediate_operand (operands[0], E_DImode)
22323 : || GET_MODE (x9) != E_DImode
22324 : || !
22325 : #line 13244 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22326 : (TARGET_64BIT
22327 : && ix86_match_ccmode
22328 : (insn,
22329 : /* If we are going to emit andl instead of andq, and the operands[2]
22330 : constant might have the SImode sign bit set, make sure the sign
22331 : flag isn't tested, because the instruction will set the sign flag
22332 : based on bit 31 rather than bit 63. If it isn't CONST_INT,
22333 : conservatively assume it might have bit 31 set. */
22334 : (satisfies_constraint_Z (operands[2])
22335 : && (!CONST_INT_P (operands[2])
22336 : || val_signbit_known_set_p (SImode, INTVAL (operands[2]))))
22337 : ? CCZmode : CCNOmode)
22338 : && ix86_binary_operator_ok (AND, DImode, operands, TARGET_APX_NDD)))
22339 : return -1;
22340 : return 777; /* *anddi_2 */
22341 :
22342 : case E_QImode:
22343 : if (pattern1438 (x9,
22344 : E_QImode) != 0)
22345 : return -1;
22346 : if (
22347 : #line 13295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22348 : (ix86_binary_operator_ok (AND, QImode, operands, TARGET_APX_NDD)
22349 : && ix86_match_ccmode (insn,
22350 : CONST_INT_P (operands[2])
22351 : && INTVAL (operands[2]) >= 0 ? CCNOmode : CCZmode)))
22352 : return 779; /* *andqi_2_maybe_si */
22353 : if (!
22354 : #line 13337 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22355 : (ix86_match_ccmode (insn, CCNOmode)
22356 : && ix86_binary_operator_ok (AND, QImode, operands, TARGET_APX_NDD)))
22357 : return -1;
22358 : return 780; /* *andqi_2 */
22359 :
22360 : case E_HImode:
22361 : if (pattern1438 (x9,
22362 : E_HImode) != 0
22363 : || !
22364 : #line 13337 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22365 : (ix86_match_ccmode (insn, CCNOmode)
22366 : && ix86_binary_operator_ok (AND, HImode, operands, TARGET_APX_NDD)))
22367 : return -1;
22368 : return 781; /* *andhi_2 */
22369 :
22370 : case E_SImode:
22371 : if (pattern1439 (x9,
22372 : E_SImode) != 0
22373 : || !
22374 : #line 13337 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22375 : (ix86_match_ccmode (insn, CCNOmode)
22376 : && ix86_binary_operator_ok (AND, SImode, operands, TARGET_APX_NDD)))
22377 : return -1;
22378 : return 782; /* *andsi_2 */
22379 :
22380 : default:
22381 : return -1;
22382 : }
22383 :
22384 : case ZERO_EXTEND:
22385 : if (pattern1436 (x1,
22386 : AND) != 0
22387 : || !
22388 : #line 13277 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22389 : (TARGET_64BIT && ix86_match_ccmode (insn, CCNOmode)
22390 : && ix86_binary_operator_ok (AND, SImode, operands, TARGET_APX_NDD)))
22391 : return -1;
22392 : return 778; /* *andsi_2_zext */
22393 :
22394 : default:
22395 : return -1;
22396 : }
22397 : }
22398 :
22399 : int
22400 : recog_395 (rtx x1 ATTRIBUTE_UNUSED,
22401 : rtx_insn *insn ATTRIBUTE_UNUSED,
22402 : int *pnum_clobbers ATTRIBUTE_UNUSED)
22403 : {
22404 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
22405 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
22406 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
22407 : rtx x18;
22408 : int res ATTRIBUTE_UNUSED;
22409 : if (pattern231 (x1) != 0)
22410 : return -1;
22411 : x2 = XVECEXP (x1, 0, 0);
22412 : x3 = XEXP (x2, 1);
22413 : x4 = XEXP (x3, 0);
22414 : x5 = XEXP (x4, 0);
22415 : switch (GET_CODE (x5))
22416 : {
22417 : case REG:
22418 : case SUBREG:
22419 : case MEM:
22420 : operands[1] = x5;
22421 : x6 = XEXP (x4, 1);
22422 : operands[2] = x6;
22423 : x7 = XVECEXP (x1, 0, 1);
22424 : x8 = XEXP (x7, 0);
22425 : operands[0] = x8;
22426 : switch (GET_CODE (operands[2]))
22427 : {
22428 : case CONST_INT:
22429 : case CONST_WIDE_INT:
22430 : case CONST_POLY_INT:
22431 : case CONST_FIXED:
22432 : case CONST_DOUBLE:
22433 : case CONST_VECTOR:
22434 : case CONST:
22435 : case REG:
22436 : case SUBREG:
22437 : case MEM:
22438 : case LABEL_REF:
22439 : case SYMBOL_REF:
22440 : case HIGH:
22441 : x9 = XEXP (x7, 1);
22442 : switch (GET_CODE (x9))
22443 : {
22444 : case MINUS:
22445 : switch (pattern1498 (x1))
22446 : {
22447 : case 0:
22448 : if (!
22449 : #line 8303 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22450 : (ix86_match_ccmode (insn, CCGOCmode)
22451 : && ix86_binary_operator_ok (MINUS, QImode, operands, TARGET_APX_NDD)))
22452 : return -1;
22453 : return 415; /* *subqi_2 */
22454 :
22455 : case 1:
22456 : if (!
22457 : #line 8303 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22458 : (ix86_match_ccmode (insn, CCGOCmode)
22459 : && ix86_binary_operator_ok (MINUS, HImode, operands, TARGET_APX_NDD)))
22460 : return -1;
22461 : return 416; /* *subhi_2 */
22462 :
22463 : case 2:
22464 : if (!
22465 : #line 8303 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22466 : (ix86_match_ccmode (insn, CCGOCmode)
22467 : && ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)))
22468 : return -1;
22469 : return 417; /* *subsi_2 */
22470 :
22471 : case 3:
22472 : if (!(
22473 : #line 8303 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22474 : (ix86_match_ccmode (insn, CCGOCmode)
22475 : && ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)) &&
22476 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22477 : (TARGET_64BIT)))
22478 : return -1;
22479 : return 418; /* *subdi_2 */
22480 :
22481 : default:
22482 : return -1;
22483 : }
22484 :
22485 : case ZERO_EXTEND:
22486 : if (pattern1436 (x1,
22487 : MINUS) != 0
22488 : || !
22489 : #line 8324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22490 : (TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)
22491 : && ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)))
22492 : return -1;
22493 : return 419; /* *subsi_2_zext */
22494 :
22495 : default:
22496 : return -1;
22497 : }
22498 :
22499 : case LTU:
22500 : case UNLT:
22501 : x10 = XEXP (x6, 1);
22502 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
22503 : return -1;
22504 : x9 = XEXP (x7, 1);
22505 : if (GET_CODE (x9) != MINUS)
22506 : return -1;
22507 : x11 = XEXP (x9, 1);
22508 : switch (GET_CODE (x11))
22509 : {
22510 : case LTU:
22511 : case UNLT:
22512 : switch (pattern1571 (x1))
22513 : {
22514 : case 0:
22515 : if (pattern1774 (x9,
22516 : E_QImode) != 0
22517 : || !
22518 : #line 9625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22519 : (ix86_match_ccmode (insn, CCGOCmode)
22520 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1]))))
22521 : return -1;
22522 : return 515; /* *subqi3_carry_0_cc */
22523 :
22524 : case 1:
22525 : if (pattern1774 (x9,
22526 : E_HImode) != 0
22527 : || !
22528 : #line 9625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22529 : (ix86_match_ccmode (insn, CCGOCmode)
22530 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1]))))
22531 : return -1;
22532 : return 516; /* *subhi3_carry_0_cc */
22533 :
22534 : case 2:
22535 : if (pattern1774 (x9,
22536 : E_SImode) != 0
22537 : || !
22538 : #line 9625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22539 : (ix86_match_ccmode (insn, CCGOCmode)
22540 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1]))))
22541 : return -1;
22542 : return 517; /* *subsi3_carry_0_cc */
22543 :
22544 : case 3:
22545 : if (pattern1774 (x9,
22546 : E_DImode) != 0
22547 : || !(
22548 : #line 9625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22549 : (ix86_match_ccmode (insn, CCGOCmode)
22550 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1]))) &&
22551 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22552 : (TARGET_64BIT)))
22553 : return -1;
22554 : return 518; /* *subdi3_carry_0_cc */
22555 :
22556 : default:
22557 : return -1;
22558 : }
22559 :
22560 : default:
22561 : return -1;
22562 : }
22563 :
22564 : case GE:
22565 : case GEU:
22566 : x10 = XEXP (x6, 1);
22567 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
22568 : return -1;
22569 : x9 = XEXP (x7, 1);
22570 : if (GET_CODE (x9) != MINUS)
22571 : return -1;
22572 : x11 = XEXP (x9, 1);
22573 : switch (GET_CODE (x11))
22574 : {
22575 : case GE:
22576 : case GEU:
22577 : switch (pattern1571 (x1))
22578 : {
22579 : case 0:
22580 : if (pattern1775 (x9,
22581 : E_QImode) != 0
22582 : || !
22583 : #line 9659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22584 : (ix86_match_ccmode (insn, CCGOCmode)
22585 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1]))))
22586 : return -1;
22587 : return 523; /* *subqi3_carry_0r_cc */
22588 :
22589 : case 1:
22590 : if (pattern1775 (x9,
22591 : E_HImode) != 0
22592 : || !
22593 : #line 9659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22594 : (ix86_match_ccmode (insn, CCGOCmode)
22595 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1]))))
22596 : return -1;
22597 : return 524; /* *subhi3_carry_0r_cc */
22598 :
22599 : case 2:
22600 : if (pattern1775 (x9,
22601 : E_SImode) != 0
22602 : || !
22603 : #line 9659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22604 : (ix86_match_ccmode (insn, CCGOCmode)
22605 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1]))))
22606 : return -1;
22607 : return 525; /* *subsi3_carry_0r_cc */
22608 :
22609 : case 3:
22610 : if (pattern1775 (x9,
22611 : E_DImode) != 0
22612 : || !(
22613 : #line 9659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22614 : (ix86_match_ccmode (insn, CCGOCmode)
22615 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1]))) &&
22616 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22617 : (TARGET_64BIT)))
22618 : return -1;
22619 : return 526; /* *subdi3_carry_0r_cc */
22620 :
22621 : default:
22622 : return -1;
22623 : }
22624 :
22625 : default:
22626 : return -1;
22627 : }
22628 :
22629 : default:
22630 : return -1;
22631 : }
22632 :
22633 : case MINUS:
22634 : x12 = XEXP (x5, 1);
22635 : switch (GET_CODE (x12))
22636 : {
22637 : case LTU:
22638 : case UNLT:
22639 : operands[4] = x12;
22640 : x13 = XEXP (x12, 1);
22641 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
22642 : return -1;
22643 : x7 = XVECEXP (x1, 0, 1);
22644 : x9 = XEXP (x7, 1);
22645 : if (GET_CODE (x9) != MINUS)
22646 : return -1;
22647 : x14 = XEXP (x9, 0);
22648 : if (GET_CODE (x14) != MINUS)
22649 : return -1;
22650 : x15 = XEXP (x14, 1);
22651 : switch (GET_CODE (x15))
22652 : {
22653 : case LTU:
22654 : case UNLT:
22655 : if (!rtx_equal_p (x15, operands[4]))
22656 : return -1;
22657 : x16 = XEXP (x5, 0);
22658 : operands[1] = x16;
22659 : x17 = XEXP (x12, 0);
22660 : operands[3] = x17;
22661 : if (!flags_reg_operand (operands[3], E_VOIDmode))
22662 : return -1;
22663 : x6 = XEXP (x4, 1);
22664 : operands[2] = x6;
22665 : x8 = XEXP (x7, 0);
22666 : operands[0] = x8;
22667 : x18 = XEXP (x14, 0);
22668 : if (!rtx_equal_p (x18, operands[1]))
22669 : return -1;
22670 : x11 = XEXP (x9, 1);
22671 : if (!rtx_equal_p (x11, operands[2]))
22672 : return -1;
22673 : switch (GET_MODE (x4))
22674 : {
22675 : case E_QImode:
22676 : if (pattern1824 (x1,
22677 : E_QImode) != 0
22678 : || !
22679 : #line 9586 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22680 : (ix86_match_ccmode (insn, CCGOCmode)
22681 : && ix86_binary_operator_ok (MINUS, QImode, operands, TARGET_APX_NDD)))
22682 : return -1;
22683 : return 507; /* *subqi3_carry_2 */
22684 :
22685 : case E_HImode:
22686 : if (pattern1824 (x1,
22687 : E_HImode) != 0
22688 : || !
22689 : #line 9586 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22690 : (ix86_match_ccmode (insn, CCGOCmode)
22691 : && ix86_binary_operator_ok (MINUS, HImode, operands, TARGET_APX_NDD)))
22692 : return -1;
22693 : return 508; /* *subhi3_carry_2 */
22694 :
22695 : case E_SImode:
22696 : if (pattern1825 (x1,
22697 : E_SImode) != 0
22698 : || !
22699 : #line 9586 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22700 : (ix86_match_ccmode (insn, CCGOCmode)
22701 : && ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)))
22702 : return -1;
22703 : return 509; /* *subsi3_carry_2 */
22704 :
22705 : case E_DImode:
22706 : if (pattern1825 (x1,
22707 : E_DImode) != 0
22708 : || !(
22709 : #line 9586 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22710 : (ix86_match_ccmode (insn, CCGOCmode)
22711 : && ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)) &&
22712 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22713 : (TARGET_64BIT)))
22714 : return -1;
22715 : return 510; /* *subdi3_carry_2 */
22716 :
22717 : default:
22718 : return -1;
22719 : }
22720 :
22721 : default:
22722 : return -1;
22723 : }
22724 :
22725 : default:
22726 : return -1;
22727 : }
22728 :
22729 : case UNSPEC_VOLATILE:
22730 : if (XVECLEN (x5, 0) != 2
22731 : || XINT (x5, 1) != 110)
22732 : return -1;
22733 : switch (pattern1246 (x1,
22734 : MINUS))
22735 : {
22736 : case 0:
22737 : return 11132; /* atomic_sub_fetch_cmp_0qi_1 */
22738 :
22739 : case 1:
22740 : return 11133; /* atomic_sub_fetch_cmp_0hi_1 */
22741 :
22742 : case 2:
22743 : return 11134; /* atomic_sub_fetch_cmp_0si_1 */
22744 :
22745 : case 3:
22746 : if (!
22747 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22748 : (TARGET_64BIT))
22749 : return -1;
22750 : return 11135; /* atomic_sub_fetch_cmp_0di_1 */
22751 :
22752 : default:
22753 : return -1;
22754 : }
22755 :
22756 : default:
22757 : return -1;
22758 : }
22759 : }
22760 :
22761 : int
22762 : recog_400 (rtx x1 ATTRIBUTE_UNUSED,
22763 : rtx_insn *insn ATTRIBUTE_UNUSED,
22764 : int *pnum_clobbers ATTRIBUTE_UNUSED)
22765 : {
22766 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
22767 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
22768 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
22769 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
22770 : rtx x26, x27, x28, x29, x30;
22771 : int res ATTRIBUTE_UNUSED;
22772 : x2 = XVECEXP (x1, 0, 0);
22773 : x3 = XEXP (x2, 1);
22774 : x4 = XEXP (x3, 0);
22775 : switch (GET_CODE (x4))
22776 : {
22777 : case PLUS:
22778 : if (pattern696 (x1,
22779 : PLUS) != 0)
22780 : return -1;
22781 : x5 = XEXP (x4, 0);
22782 : switch (GET_CODE (x5))
22783 : {
22784 : case SIGN_EXTEND:
22785 : switch (pattern1574 (x1))
22786 : {
22787 : case 0:
22788 : if (!
22789 : #line 7693 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22790 : (ix86_binary_operator_ok (PLUS, QImode, operands, TARGET_APX_NDD)))
22791 : return -1;
22792 : return 346; /* *addvqi4 */
22793 :
22794 : case 1:
22795 : if (!
22796 : #line 7693 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22797 : (ix86_binary_operator_ok (PLUS, HImode, operands, TARGET_APX_NDD)))
22798 : return -1;
22799 : return 347; /* *addvhi4 */
22800 :
22801 : case 2:
22802 : if (!
22803 : #line 7693 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22804 : (ix86_binary_operator_ok (PLUS, SImode, operands, TARGET_APX_NDD)))
22805 : return -1;
22806 : return 348; /* *addvsi4 */
22807 :
22808 : case 3:
22809 : if (x86_64_sext_operand (operands[2], E_DImode)
22810 : && (
22811 : #line 7693 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22812 : (ix86_binary_operator_ok (PLUS, DImode, operands, TARGET_APX_NDD)) &&
22813 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22814 : (TARGET_64BIT)))
22815 : return 349; /* *addvdi4 */
22816 : if (!nonimmediate_operand (operands[2], E_DImode)
22817 : || !(
22818 : #line 7746 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22819 : (ix86_binary_operator_ok (PLUS, DImode, operands, TARGET_APX_NDD)) &&
22820 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22821 : (!TARGET_64BIT)))
22822 : return -1;
22823 : return 354; /* *addvdi4_doubleword */
22824 :
22825 : case 4:
22826 : if (!(
22827 : #line 7746 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22828 : (ix86_binary_operator_ok (PLUS, TImode, operands, TARGET_APX_NDD)) &&
22829 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22830 : (TARGET_64BIT)))
22831 : return -1;
22832 : return 355; /* *addvti4_doubleword */
22833 :
22834 : case 5:
22835 : if (!
22836 : #line 7715 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22837 : (ix86_binary_operator_ok (PLUS, QImode, operands, TARGET_APX_NDD)
22838 : && CONST_INT_P (operands[2])
22839 : && INTVAL (operands[2]) == INTVAL (operands[3])))
22840 : return -1;
22841 : return 350; /* addvqi4_1 */
22842 :
22843 : case 6:
22844 : if (!
22845 : #line 7715 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22846 : (ix86_binary_operator_ok (PLUS, HImode, operands, TARGET_APX_NDD)
22847 : && CONST_INT_P (operands[2])
22848 : && INTVAL (operands[2]) == INTVAL (operands[3])))
22849 : return -1;
22850 : return 351; /* addvhi4_1 */
22851 :
22852 : case 7:
22853 : if (!
22854 : #line 7715 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22855 : (ix86_binary_operator_ok (PLUS, SImode, operands, TARGET_APX_NDD)
22856 : && CONST_INT_P (operands[2])
22857 : && INTVAL (operands[2]) == INTVAL (operands[3])))
22858 : return -1;
22859 : return 352; /* addvsi4_1 */
22860 :
22861 : case 8:
22862 : if (const_int_operand (operands[3], E_TImode)
22863 : && x86_64_immediate_operand (operands[2], E_DImode)
22864 : && (
22865 : #line 7715 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22866 : (ix86_binary_operator_ok (PLUS, DImode, operands, TARGET_APX_NDD)
22867 : && CONST_INT_P (operands[2])
22868 : && INTVAL (operands[2]) == INTVAL (operands[3])) &&
22869 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22870 : (TARGET_64BIT)))
22871 : return 353; /* addvdi4_1 */
22872 : if (!const_scalar_int_operand (operands[3], E_TImode)
22873 : || !x86_64_hilo_general_operand (operands[2], E_DImode)
22874 : || !(
22875 : #line 7792 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22876 : (ix86_binary_operator_ok (PLUS, DImode, operands, TARGET_APX_NDD)
22877 : && CONST_SCALAR_INT_P (operands[2])
22878 : && rtx_equal_p (operands[2], operands[3])) &&
22879 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22880 : (!TARGET_64BIT)))
22881 : return -1;
22882 : return 356; /* *addvdi4_doubleword_1 */
22883 :
22884 : case 9:
22885 : if (!(
22886 : #line 7792 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22887 : (ix86_binary_operator_ok (PLUS, TImode, operands, TARGET_APX_NDD)
22888 : && CONST_SCALAR_INT_P (operands[2])
22889 : && rtx_equal_p (operands[2], operands[3])) &&
22890 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22891 : (TARGET_64BIT)))
22892 : return -1;
22893 : return 357; /* *addvti4_doubleword_1 */
22894 :
22895 : default:
22896 : return -1;
22897 : }
22898 :
22899 : case PLUS:
22900 : x6 = XEXP (x5, 0);
22901 : switch (GET_CODE (x6))
22902 : {
22903 : case LTU:
22904 : case UNLT:
22905 : operands[4] = x6;
22906 : x7 = XEXP (x6, 1);
22907 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
22908 : return -1;
22909 : x8 = XEXP (x5, 1);
22910 : if (GET_CODE (x8) != SIGN_EXTEND)
22911 : return -1;
22912 : x9 = XEXP (x3, 1);
22913 : x10 = XEXP (x9, 0);
22914 : x11 = XEXP (x10, 0);
22915 : if (GET_CODE (x11) != PLUS)
22916 : return -1;
22917 : x12 = XEXP (x11, 0);
22918 : switch (GET_CODE (x12))
22919 : {
22920 : case LTU:
22921 : case UNLT:
22922 : operands[5] = x12;
22923 : x13 = XEXP (x12, 1);
22924 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
22925 : return -1;
22926 : x14 = XVECEXP (x1, 0, 1);
22927 : x15 = XEXP (x14, 1);
22928 : x16 = XEXP (x15, 0);
22929 : if (GET_CODE (x16) != PLUS)
22930 : return -1;
22931 : x17 = XEXP (x16, 0);
22932 : switch (GET_CODE (x17))
22933 : {
22934 : case LTU:
22935 : case UNLT:
22936 : if (!rtx_equal_p (x17, operands[5]))
22937 : return -1;
22938 : x18 = XEXP (x6, 0);
22939 : operands[3] = x18;
22940 : if (!flags_reg_operand (operands[3], E_VOIDmode))
22941 : return -1;
22942 : x19 = XEXP (x8, 0);
22943 : operands[1] = x19;
22944 : x20 = XEXP (x12, 0);
22945 : if (!rtx_equal_p (x20, operands[3]))
22946 : return -1;
22947 : x21 = XEXP (x11, 1);
22948 : if (!rtx_equal_p (x21, operands[1]))
22949 : return -1;
22950 : x22 = XEXP (x16, 1);
22951 : if (!rtx_equal_p (x22, operands[1]))
22952 : return -1;
22953 : switch (pattern1886 (x1))
22954 : {
22955 : case 0:
22956 : if (pattern1902 (x1,
22957 : E_QImode,
22958 : E_HImode) != 0
22959 : || !
22960 : #line 7859 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22961 : (ix86_binary_operator_ok (PLUS, QImode, operands, TARGET_APX_NDD)))
22962 : return -1;
22963 : return 358; /* *addvqi4_overflow_1 */
22964 :
22965 : case 1:
22966 : if (pattern1902 (x1,
22967 : E_HImode,
22968 : E_SImode) != 0
22969 : || !
22970 : #line 7859 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22971 : (ix86_binary_operator_ok (PLUS, HImode, operands, TARGET_APX_NDD)))
22972 : return -1;
22973 : return 359; /* *addvhi4_overflow_1 */
22974 :
22975 : case 2:
22976 : if (pattern1903 (x1,
22977 : E_SImode,
22978 : E_DImode) != 0
22979 : || !
22980 : #line 7859 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22981 : (ix86_binary_operator_ok (PLUS, SImode, operands, TARGET_APX_NDD)))
22982 : return -1;
22983 : return 360; /* *addvsi4_overflow_1 */
22984 :
22985 : case 3:
22986 : if (pattern1903 (x1,
22987 : E_DImode,
22988 : E_TImode) != 0
22989 : || !(
22990 : #line 7859 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22991 : (ix86_binary_operator_ok (PLUS, DImode, operands, TARGET_APX_NDD)) &&
22992 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22993 : (TARGET_64BIT)))
22994 : return -1;
22995 : return 361; /* *addvdi4_overflow_1 */
22996 :
22997 : case 4:
22998 : if (pattern1905 (x1,
22999 : E_QImode,
23000 : E_HImode) != 0
23001 : || !
23002 : #line 7892 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23003 : (ix86_binary_operator_ok (PLUS, QImode, operands, TARGET_APX_NDD)
23004 : && CONST_INT_P (operands[2])
23005 : && INTVAL (operands[2]) == INTVAL (operands[6])))
23006 : return -1;
23007 : return 362; /* *addvqi4_overflow_2 */
23008 :
23009 : case 5:
23010 : if (pattern1905 (x1,
23011 : E_HImode,
23012 : E_SImode) != 0
23013 : || !
23014 : #line 7892 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23015 : (ix86_binary_operator_ok (PLUS, HImode, operands, TARGET_APX_NDD)
23016 : && CONST_INT_P (operands[2])
23017 : && INTVAL (operands[2]) == INTVAL (operands[6])))
23018 : return -1;
23019 : return 363; /* *addvhi4_overflow_2 */
23020 :
23021 : case 6:
23022 : if (pattern1905 (x1,
23023 : E_SImode,
23024 : E_DImode) != 0
23025 : || !
23026 : #line 7892 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23027 : (ix86_binary_operator_ok (PLUS, SImode, operands, TARGET_APX_NDD)
23028 : && CONST_INT_P (operands[2])
23029 : && INTVAL (operands[2]) == INTVAL (operands[6])))
23030 : return -1;
23031 : return 364; /* *addvsi4_overflow_2 */
23032 :
23033 : case 7:
23034 : if (pattern1905 (x1,
23035 : E_DImode,
23036 : E_TImode) != 0
23037 : || !(
23038 : #line 7892 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23039 : (ix86_binary_operator_ok (PLUS, DImode, operands, TARGET_APX_NDD)
23040 : && CONST_INT_P (operands[2])
23041 : && INTVAL (operands[2]) == INTVAL (operands[6])) &&
23042 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23043 : (TARGET_64BIT)))
23044 : return -1;
23045 : return 365; /* *addvdi4_overflow_2 */
23046 :
23047 : default:
23048 : return -1;
23049 : }
23050 :
23051 : default:
23052 : return -1;
23053 : }
23054 :
23055 : default:
23056 : return -1;
23057 : }
23058 :
23059 : default:
23060 : return -1;
23061 : }
23062 :
23063 : default:
23064 : return -1;
23065 : }
23066 :
23067 : case MINUS:
23068 : if (pattern696 (x1,
23069 : MINUS) != 0)
23070 : return -1;
23071 : x5 = XEXP (x4, 0);
23072 : switch (GET_CODE (x5))
23073 : {
23074 : case SIGN_EXTEND:
23075 : switch (pattern1574 (x1))
23076 : {
23077 : case 0:
23078 : if (!
23079 : #line 8454 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23080 : (ix86_binary_operator_ok (MINUS, QImode, operands, TARGET_APX_NDD)))
23081 : return -1;
23082 : return 429; /* *subvqi4 */
23083 :
23084 : case 1:
23085 : if (!
23086 : #line 8454 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23087 : (ix86_binary_operator_ok (MINUS, HImode, operands, TARGET_APX_NDD)))
23088 : return -1;
23089 : return 430; /* *subvhi4 */
23090 :
23091 : case 2:
23092 : if (!
23093 : #line 8454 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23094 : (ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)))
23095 : return -1;
23096 : return 431; /* *subvsi4 */
23097 :
23098 : case 3:
23099 : if (x86_64_sext_operand (operands[2], E_DImode)
23100 : && (
23101 : #line 8454 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23102 : (ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)) &&
23103 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23104 : (TARGET_64BIT)))
23105 : return 432; /* *subvdi4 */
23106 : if (!nonimmediate_operand (operands[2], E_DImode)
23107 : || !(
23108 : #line 8504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23109 : (ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)) &&
23110 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23111 : (!TARGET_64BIT)))
23112 : return -1;
23113 : return 437; /* *subvdi4_doubleword */
23114 :
23115 : case 4:
23116 : if (!(
23117 : #line 8504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23118 : (ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)) &&
23119 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23120 : (TARGET_64BIT)))
23121 : return -1;
23122 : return 438; /* *subvti4_doubleword */
23123 :
23124 : case 5:
23125 : if (!
23126 : #line 8476 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23127 : (ix86_binary_operator_ok (MINUS, QImode, operands, TARGET_APX_NDD)
23128 : && CONST_INT_P (operands[2])
23129 : && INTVAL (operands[2]) == INTVAL (operands[3])))
23130 : return -1;
23131 : return 433; /* subvqi4_1 */
23132 :
23133 : case 6:
23134 : if (!
23135 : #line 8476 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23136 : (ix86_binary_operator_ok (MINUS, HImode, operands, TARGET_APX_NDD)
23137 : && CONST_INT_P (operands[2])
23138 : && INTVAL (operands[2]) == INTVAL (operands[3])))
23139 : return -1;
23140 : return 434; /* subvhi4_1 */
23141 :
23142 : case 7:
23143 : if (!
23144 : #line 8476 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23145 : (ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)
23146 : && CONST_INT_P (operands[2])
23147 : && INTVAL (operands[2]) == INTVAL (operands[3])))
23148 : return -1;
23149 : return 435; /* subvsi4_1 */
23150 :
23151 : case 8:
23152 : if (const_int_operand (operands[3], E_TImode)
23153 : && x86_64_immediate_operand (operands[2], E_DImode)
23154 : && (
23155 : #line 8476 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23156 : (ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)
23157 : && CONST_INT_P (operands[2])
23158 : && INTVAL (operands[2]) == INTVAL (operands[3])) &&
23159 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23160 : (TARGET_64BIT)))
23161 : return 436; /* subvdi4_1 */
23162 : if (!const_scalar_int_operand (operands[3], E_TImode)
23163 : || !x86_64_hilo_general_operand (operands[2], E_DImode)
23164 : || !(
23165 : #line 8548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23166 : (ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)
23167 : && CONST_SCALAR_INT_P (operands[2])
23168 : && rtx_equal_p (operands[2], operands[3])) &&
23169 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23170 : (!TARGET_64BIT)))
23171 : return -1;
23172 : return 439; /* *subvdi4_doubleword_1 */
23173 :
23174 : case 9:
23175 : if (!(
23176 : #line 8548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23177 : (ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)
23178 : && CONST_SCALAR_INT_P (operands[2])
23179 : && rtx_equal_p (operands[2], operands[3])) &&
23180 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23181 : (TARGET_64BIT)))
23182 : return -1;
23183 : return 440; /* *subvti4_doubleword_1 */
23184 :
23185 : default:
23186 : return -1;
23187 : }
23188 :
23189 : case MINUS:
23190 : x6 = XEXP (x5, 0);
23191 : if (GET_CODE (x6) != SIGN_EXTEND)
23192 : return -1;
23193 : x8 = XEXP (x5, 1);
23194 : switch (GET_CODE (x8))
23195 : {
23196 : case LTU:
23197 : case UNLT:
23198 : operands[4] = x8;
23199 : x23 = XEXP (x8, 1);
23200 : if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
23201 : return -1;
23202 : x9 = XEXP (x3, 1);
23203 : x10 = XEXP (x9, 0);
23204 : x11 = XEXP (x10, 0);
23205 : if (GET_CODE (x11) != MINUS)
23206 : return -1;
23207 : x21 = XEXP (x11, 1);
23208 : switch (GET_CODE (x21))
23209 : {
23210 : case LTU:
23211 : case UNLT:
23212 : operands[5] = x21;
23213 : x24 = XEXP (x21, 1);
23214 : if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
23215 : return -1;
23216 : x14 = XVECEXP (x1, 0, 1);
23217 : x15 = XEXP (x14, 1);
23218 : x16 = XEXP (x15, 0);
23219 : if (GET_CODE (x16) != MINUS)
23220 : return -1;
23221 : x22 = XEXP (x16, 1);
23222 : switch (GET_CODE (x22))
23223 : {
23224 : case LTU:
23225 : case UNLT:
23226 : if (!rtx_equal_p (x22, operands[5]))
23227 : return -1;
23228 : x18 = XEXP (x6, 0);
23229 : operands[1] = x18;
23230 : x19 = XEXP (x8, 0);
23231 : operands[3] = x19;
23232 : if (!flags_reg_operand (operands[3], E_VOIDmode))
23233 : return -1;
23234 : x12 = XEXP (x11, 0);
23235 : if (!rtx_equal_p (x12, operands[1]))
23236 : return -1;
23237 : x25 = XEXP (x21, 0);
23238 : if (!rtx_equal_p (x25, operands[3]))
23239 : return -1;
23240 : x17 = XEXP (x16, 0);
23241 : if (!rtx_equal_p (x17, operands[1]))
23242 : return -1;
23243 : switch (pattern1886 (x1))
23244 : {
23245 : case 0:
23246 : if (pattern1907 (x1,
23247 : E_QImode,
23248 : E_HImode) != 0
23249 : || !
23250 : #line 8613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23251 : (ix86_binary_operator_ok (MINUS, QImode, operands, TARGET_APX_NDD)))
23252 : return -1;
23253 : return 441; /* *subvqi4_overflow_1 */
23254 :
23255 : case 1:
23256 : if (pattern1907 (x1,
23257 : E_HImode,
23258 : E_SImode) != 0
23259 : || !
23260 : #line 8613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23261 : (ix86_binary_operator_ok (MINUS, HImode, operands, TARGET_APX_NDD)))
23262 : return -1;
23263 : return 442; /* *subvhi4_overflow_1 */
23264 :
23265 : case 2:
23266 : if (pattern1908 (x1,
23267 : E_SImode,
23268 : E_DImode) != 0
23269 : || !
23270 : #line 8613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23271 : (ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)))
23272 : return -1;
23273 : return 443; /* *subvsi4_overflow_1 */
23274 :
23275 : case 3:
23276 : if (pattern1908 (x1,
23277 : E_DImode,
23278 : E_TImode) != 0
23279 : || !(
23280 : #line 8613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23281 : (ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)) &&
23282 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23283 : (TARGET_64BIT)))
23284 : return -1;
23285 : return 444; /* *subvdi4_overflow_1 */
23286 :
23287 : case 4:
23288 : if (pattern1909 (x1,
23289 : E_QImode,
23290 : E_HImode) != 0
23291 : || !
23292 : #line 8646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23293 : (ix86_binary_operator_ok (MINUS, QImode, operands, TARGET_APX_NDD)
23294 : && CONST_INT_P (operands[2])
23295 : && INTVAL (operands[2]) == INTVAL (operands[6])))
23296 : return -1;
23297 : return 445; /* *subvqi4_overflow_2 */
23298 :
23299 : case 5:
23300 : if (pattern1909 (x1,
23301 : E_HImode,
23302 : E_SImode) != 0
23303 : || !
23304 : #line 8646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23305 : (ix86_binary_operator_ok (MINUS, HImode, operands, TARGET_APX_NDD)
23306 : && CONST_INT_P (operands[2])
23307 : && INTVAL (operands[2]) == INTVAL (operands[6])))
23308 : return -1;
23309 : return 446; /* *subvhi4_overflow_2 */
23310 :
23311 : case 6:
23312 : if (pattern1909 (x1,
23313 : E_SImode,
23314 : E_DImode) != 0
23315 : || !
23316 : #line 8646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23317 : (ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)
23318 : && CONST_INT_P (operands[2])
23319 : && INTVAL (operands[2]) == INTVAL (operands[6])))
23320 : return -1;
23321 : return 447; /* *subvsi4_overflow_2 */
23322 :
23323 : case 7:
23324 : if (pattern1909 (x1,
23325 : E_DImode,
23326 : E_TImode) != 0
23327 : || !(
23328 : #line 8646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23329 : (ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)
23330 : && CONST_INT_P (operands[2])
23331 : && INTVAL (operands[2]) == INTVAL (operands[6])) &&
23332 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23333 : (TARGET_64BIT)))
23334 : return -1;
23335 : return 448; /* *subvdi4_overflow_2 */
23336 :
23337 : default:
23338 : return -1;
23339 : }
23340 :
23341 : default:
23342 : return -1;
23343 : }
23344 :
23345 : default:
23346 : return -1;
23347 : }
23348 :
23349 : default:
23350 : return -1;
23351 : }
23352 :
23353 : default:
23354 : return -1;
23355 : }
23356 :
23357 : case MULT:
23358 : if (pattern695 (x1,
23359 : MULT) != 0)
23360 : return -1;
23361 : x5 = XEXP (x4, 0);
23362 : switch (GET_CODE (x5))
23363 : {
23364 : case SIGN_EXTEND:
23365 : x9 = XEXP (x3, 1);
23366 : if (GET_CODE (x9) != SIGN_EXTEND)
23367 : return -1;
23368 : x10 = XEXP (x9, 0);
23369 : if (GET_CODE (x10) != MULT)
23370 : return -1;
23371 : x6 = XEXP (x5, 0);
23372 : operands[1] = x6;
23373 : x11 = XEXP (x10, 0);
23374 : if (!rtx_equal_p (x11, operands[1]))
23375 : return -1;
23376 : x14 = XVECEXP (x1, 0, 1);
23377 : x15 = XEXP (x14, 1);
23378 : x16 = XEXP (x15, 0);
23379 : if (!rtx_equal_p (x16, operands[1]))
23380 : return -1;
23381 : x26 = XEXP (x4, 1);
23382 : switch (GET_CODE (x26))
23383 : {
23384 : case SIGN_EXTEND:
23385 : x27 = XEXP (x26, 0);
23386 : operands[2] = x27;
23387 : x28 = XEXP (x10, 1);
23388 : if (!rtx_equal_p (x28, operands[2]))
23389 : return -1;
23390 : x29 = XEXP (x15, 1);
23391 : if (!rtx_equal_p (x29, operands[2]))
23392 : return -1;
23393 : switch (GET_MODE (x4))
23394 : {
23395 : case E_DImode:
23396 : if (pattern1827 (x1,
23397 : E_SImode,
23398 : E_DImode) != 0
23399 : || !
23400 : #line 11085 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23401 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))))
23402 : return -1;
23403 : return 632; /* *mulvsi4 */
23404 :
23405 : case E_TImode:
23406 : if (pattern1827 (x1,
23407 : E_DImode,
23408 : E_TImode) != 0
23409 : || !(
23410 : #line 11085 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23411 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
23412 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23413 : (TARGET_64BIT)))
23414 : return -1;
23415 : return 633; /* *mulvdi4 */
23416 :
23417 : case E_SImode:
23418 : if (pattern1828 (x1,
23419 : E_HImode,
23420 : E_SImode) != 0
23421 : || !
23422 : #line 11121 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23423 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))))
23424 : return -1;
23425 : return 634; /* *mulvhi4 */
23426 :
23427 : case E_HImode:
23428 : if (pattern1828 (x1,
23429 : E_QImode,
23430 : E_HImode) != 0
23431 : || !
23432 : #line 11259 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23433 : (TARGET_QIMODE_MATH
23434 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
23435 : return -1;
23436 : return 641; /* *mulvqi4 */
23437 :
23438 : default:
23439 : return -1;
23440 : }
23441 :
23442 : case CONST_INT:
23443 : operands[3] = x26;
23444 : x28 = XEXP (x10, 1);
23445 : operands[2] = x28;
23446 : x29 = XEXP (x15, 1);
23447 : if (!rtx_equal_p (x29, operands[2]))
23448 : return -1;
23449 : switch (GET_MODE (x4))
23450 : {
23451 : case E_SImode:
23452 : if (GET_MODE (x5) != E_SImode
23453 : || !nonimmediate_operand (operands[1], E_HImode)
23454 : || !const_int_operand (operands[3], E_SImode)
23455 : || GET_MODE (x9) != E_SImode
23456 : || GET_MODE (x10) != E_HImode
23457 : || !immediate_operand (operands[2], E_HImode)
23458 : || !register_operand (operands[0], E_HImode)
23459 : || GET_MODE (x15) != E_HImode
23460 : || !
23461 : #line 11145 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23462 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))
23463 : && CONST_INT_P (operands[2])
23464 : && INTVAL (operands[2]) == INTVAL (operands[3])))
23465 : return -1;
23466 : return 635; /* *mulvhi4_1 */
23467 :
23468 : case E_DImode:
23469 : if (pattern1829 (x1,
23470 : E_SImode,
23471 : E_DImode) != 0
23472 : || !
23473 : #line 11145 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23474 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))
23475 : && CONST_INT_P (operands[2])
23476 : && INTVAL (operands[2]) == INTVAL (operands[3])))
23477 : return -1;
23478 : return 636; /* *mulvsi4_1 */
23479 :
23480 : case E_TImode:
23481 : if (pattern1829 (x1,
23482 : E_DImode,
23483 : E_TImode) != 0
23484 : || !(
23485 : #line 11145 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23486 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))
23487 : && CONST_INT_P (operands[2])
23488 : && INTVAL (operands[2]) == INTVAL (operands[3])) &&
23489 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23490 : (TARGET_64BIT)))
23491 : return -1;
23492 : return 637; /* *mulvdi4_1 */
23493 :
23494 : default:
23495 : return -1;
23496 : }
23497 :
23498 : default:
23499 : return -1;
23500 : }
23501 :
23502 : case ZERO_EXTEND:
23503 : x26 = XEXP (x4, 1);
23504 : if (GET_CODE (x26) != ZERO_EXTEND)
23505 : return -1;
23506 : x9 = XEXP (x3, 1);
23507 : if (GET_CODE (x9) != ZERO_EXTEND)
23508 : return -1;
23509 : x10 = XEXP (x9, 0);
23510 : if (GET_CODE (x10) != MULT)
23511 : return -1;
23512 : x6 = XEXP (x5, 0);
23513 : operands[1] = x6;
23514 : x27 = XEXP (x26, 0);
23515 : operands[2] = x27;
23516 : x11 = XEXP (x10, 0);
23517 : if (!rtx_equal_p (x11, operands[1]))
23518 : return -1;
23519 : x28 = XEXP (x10, 1);
23520 : if (!rtx_equal_p (x28, operands[2]))
23521 : return -1;
23522 : x14 = XVECEXP (x1, 0, 1);
23523 : x15 = XEXP (x14, 1);
23524 : x16 = XEXP (x15, 0);
23525 : if (!rtx_equal_p (x16, operands[1]))
23526 : return -1;
23527 : x29 = XEXP (x15, 1);
23528 : if (!rtx_equal_p (x29, operands[2]))
23529 : return -1;
23530 : switch (GET_MODE (x4))
23531 : {
23532 : case E_SImode:
23533 : if (pnum_clobbers == NULL
23534 : || pattern1828 (x1,
23535 : E_HImode,
23536 : E_SImode) != 0
23537 : || !
23538 : #line 11215 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23539 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))))
23540 : return -1;
23541 : *pnum_clobbers = 1;
23542 : return 638; /* *umulvhi4 */
23543 :
23544 : case E_DImode:
23545 : if (pnum_clobbers == NULL
23546 : || pattern1828 (x1,
23547 : E_SImode,
23548 : E_DImode) != 0
23549 : || !
23550 : #line 11215 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23551 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))))
23552 : return -1;
23553 : *pnum_clobbers = 1;
23554 : return 639; /* *umulvsi4 */
23555 :
23556 : case E_TImode:
23557 : if (pnum_clobbers == NULL
23558 : || pattern1828 (x1,
23559 : E_DImode,
23560 : E_TImode) != 0
23561 : || !(
23562 : #line 11215 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23563 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
23564 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23565 : (TARGET_64BIT)))
23566 : return -1;
23567 : *pnum_clobbers = 1;
23568 : return 640; /* *umulvdi4 */
23569 :
23570 : case E_HImode:
23571 : if (pattern1828 (x1,
23572 : E_QImode,
23573 : E_HImode) != 0
23574 : || !
23575 : #line 11259 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23576 : (TARGET_QIMODE_MATH
23577 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
23578 : return -1;
23579 : return 642; /* *umulvqi4 */
23580 :
23581 : default:
23582 : return -1;
23583 : }
23584 :
23585 : default:
23586 : return -1;
23587 : }
23588 :
23589 : case ZERO_EXTRACT:
23590 : switch (pattern697 (x1))
23591 : {
23592 : case 0:
23593 : if (!
23594 : #line 19744 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23595 : (TARGET_USE_BT && ix86_pre_reload_split ()))
23596 : return -1;
23597 : return 1472; /* *btsi_setncqi_2 */
23598 :
23599 : case 1:
23600 : if (!(
23601 : #line 19744 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23602 : (TARGET_USE_BT && ix86_pre_reload_split ()) &&
23603 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23604 : (TARGET_64BIT)))
23605 : return -1;
23606 : return 1473; /* *btdi_setncqi_2 */
23607 :
23608 : default:
23609 : return -1;
23610 : }
23611 :
23612 : case REG:
23613 : case SUBREG:
23614 : case MEM:
23615 : operands[1] = x4;
23616 : if (!nonimmediate_operand (operands[1], E_V2SFmode))
23617 : return -1;
23618 : x14 = XVECEXP (x1, 0, 1);
23619 : if (pattern384 (x14,
23620 : 111,
23621 : 0) != 0)
23622 : return -1;
23623 : x30 = XEXP (x2, 0);
23624 : operands[0] = x30;
23625 : if (!register_operand (operands[0], E_V2SImode)
23626 : || GET_MODE (x3) != E_V2SImode)
23627 : return -1;
23628 : x9 = XEXP (x3, 1);
23629 : operands[2] = x9;
23630 : if (!nonimmediate_operand (operands[2], E_V2SFmode)
23631 : || !
23632 : #line 1226 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23633 : (TARGET_3DNOW && ix86_binary_operator_ok (EQ, V2SFmode, operands)))
23634 : return -1;
23635 : return 2125; /* *mmx_eqv2sf3 */
23636 :
23637 : default:
23638 : return -1;
23639 : }
23640 : }
23641 :
23642 : int
23643 : recog_432 (rtx x1 ATTRIBUTE_UNUSED,
23644 : rtx_insn *insn ATTRIBUTE_UNUSED,
23645 : int *pnum_clobbers ATTRIBUTE_UNUSED)
23646 : {
23647 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
23648 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
23649 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
23650 : rtx x18, x19;
23651 : int res ATTRIBUTE_UNUSED;
23652 : x2 = XVECEXP (x1, 0, 0);
23653 : x3 = XEXP (x2, 1);
23654 : if (GET_MODE (x3) != E_DImode)
23655 : return -1;
23656 : x4 = XEXP (x2, 0);
23657 : if (!register_operand (x4, E_DImode))
23658 : return -1;
23659 : x5 = XEXP (x3, 0);
23660 : if (GET_MODE (x5) != E_SImode)
23661 : return -1;
23662 : switch (GET_CODE (x5))
23663 : {
23664 : case SMUL_HIGHPART:
23665 : if (pattern836 (x1) != 0
23666 : || !
23667 : #line 11493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23668 : (TARGET_64BIT))
23669 : return -1;
23670 : return 659; /* *smulsi3_highpart_zext */
23671 :
23672 : case UMUL_HIGHPART:
23673 : if (pattern836 (x1) != 0
23674 : || !
23675 : #line 11493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23676 : (TARGET_64BIT))
23677 : return -1;
23678 : return 660; /* *umulsi3_highpart_zext */
23679 :
23680 : case TRUNCATE:
23681 : x6 = XEXP (x5, 0);
23682 : if (GET_CODE (x6) != LSHIFTRT
23683 : || GET_MODE (x6) != E_DImode)
23684 : return -1;
23685 : x7 = XEXP (x6, 0);
23686 : if (GET_CODE (x7) != MULT
23687 : || GET_MODE (x7) != E_DImode)
23688 : return -1;
23689 : x8 = XEXP (x6, 1);
23690 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 32])
23691 : return -1;
23692 : x9 = XVECEXP (x1, 0, 1);
23693 : if (GET_CODE (x9) != CLOBBER
23694 : || pattern838 (x1) != 0)
23695 : return -1;
23696 : x10 = XEXP (x7, 0);
23697 : if (GET_MODE (x10) != E_DImode)
23698 : return -1;
23699 : x11 = XEXP (x7, 1);
23700 : if (GET_MODE (x11) != E_DImode)
23701 : return -1;
23702 : x12 = XEXP (x9, 0);
23703 : operands[3] = x12;
23704 : if (!scratch_operand (operands[3], E_SImode))
23705 : return -1;
23706 : switch (GET_CODE (x10))
23707 : {
23708 : case SIGN_EXTEND:
23709 : if (GET_CODE (x11) != SIGN_EXTEND)
23710 : return -1;
23711 : x13 = XEXP (x10, 0);
23712 : operands[1] = x13;
23713 : if (!nonimmediate_operand (operands[1], E_SImode))
23714 : return -1;
23715 : x14 = XEXP (x11, 0);
23716 : operands[2] = x14;
23717 : if (!nonimmediate_operand (operands[2], E_SImode)
23718 : || !
23719 : #line 11541 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23720 : (TARGET_64BIT
23721 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
23722 : return -1;
23723 : return 663; /* *smulsi3_highpart_zext */
23724 :
23725 : case ZERO_EXTEND:
23726 : if (GET_CODE (x11) != ZERO_EXTEND)
23727 : return -1;
23728 : x13 = XEXP (x10, 0);
23729 : operands[1] = x13;
23730 : if (!nonimmediate_operand (operands[1], E_SImode))
23731 : return -1;
23732 : x14 = XEXP (x11, 0);
23733 : operands[2] = x14;
23734 : if (!nonimmediate_operand (operands[2], E_SImode)
23735 : || !
23736 : #line 11541 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23737 : (TARGET_64BIT
23738 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
23739 : return -1;
23740 : return 664; /* *umulsi3_highpart_zext */
23741 :
23742 : default:
23743 : return -1;
23744 : }
23745 :
23746 : case DIV:
23747 : x9 = XVECEXP (x1, 0, 1);
23748 : if (GET_CODE (x9) != SET)
23749 : return -1;
23750 : x15 = XEXP (x9, 1);
23751 : if (GET_CODE (x15) != MOD
23752 : || GET_MODE (x15) != E_SImode)
23753 : return -1;
23754 : operands[0] = x4;
23755 : x6 = XEXP (x5, 0);
23756 : operands[2] = x6;
23757 : if (!register_operand (operands[2], E_SImode))
23758 : return -1;
23759 : x16 = XEXP (x5, 1);
23760 : operands[3] = x16;
23761 : if (!nonimmediate_operand (operands[3], E_SImode))
23762 : return -1;
23763 : x12 = XEXP (x9, 0);
23764 : operands[1] = x12;
23765 : if (!register_operand (operands[1], E_SImode))
23766 : return -1;
23767 : switch (pattern1642 (x1, pnum_clobbers))
23768 : {
23769 : case 0:
23770 : if (!
23771 : #line 11828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23772 : (TARGET_64BIT))
23773 : return -1;
23774 : *pnum_clobbers = 1;
23775 : return 671; /* divmodsi4_zext_1 */
23776 :
23777 : case 1:
23778 : if (!
23779 : #line 12027 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23780 : (TARGET_64BIT))
23781 : return -1;
23782 : return 683; /* *divmodsi4_zext_1 */
23783 :
23784 : case 2:
23785 : if (!
23786 : #line 12223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23787 : (TARGET_64BIT))
23788 : return -1;
23789 : *pnum_clobbers = 1;
23790 : return 701; /* *divmodsi4_noext_zext_1 */
23791 :
23792 : default:
23793 : return -1;
23794 : }
23795 :
23796 : case UDIV:
23797 : x9 = XVECEXP (x1, 0, 1);
23798 : if (GET_CODE (x9) != SET)
23799 : return -1;
23800 : x15 = XEXP (x9, 1);
23801 : if (GET_CODE (x15) != UMOD
23802 : || GET_MODE (x15) != E_SImode)
23803 : return -1;
23804 : operands[0] = x4;
23805 : x6 = XEXP (x5, 0);
23806 : operands[2] = x6;
23807 : if (!register_operand (operands[2], E_SImode))
23808 : return -1;
23809 : x16 = XEXP (x5, 1);
23810 : operands[3] = x16;
23811 : x12 = XEXP (x9, 0);
23812 : operands[1] = x12;
23813 : if (!register_operand (operands[1], E_SImode))
23814 : return -1;
23815 : switch (pattern1583 (x1, pnum_clobbers))
23816 : {
23817 : case 0:
23818 : if (!
23819 : #line 11864 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23820 : (TARGET_64BIT))
23821 : return -1;
23822 : *pnum_clobbers = 1;
23823 : return 672; /* udivmodsi4_zext_1 */
23824 :
23825 : case 1:
23826 : if (!
23827 : #line 12062 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23828 : (TARGET_64BIT))
23829 : return -1;
23830 : return 684; /* *udivmodsi4_zext_1 */
23831 :
23832 : case 2:
23833 : if (!
23834 : #line 12223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23835 : (TARGET_64BIT))
23836 : return -1;
23837 : *pnum_clobbers = 1;
23838 : return 702; /* *udivmodsi4_noext_zext_1 */
23839 :
23840 : case 3:
23841 : if (!
23842 : #line 12084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23843 : (TARGET_64BIT
23844 : && IN_RANGE (exact_log2 (UINTVAL (operands[3])), 1, 31)))
23845 : return -1;
23846 : return 685; /* *udivmodsi4_pow2_zext_1 */
23847 :
23848 : default:
23849 : return -1;
23850 : }
23851 :
23852 : case MOD:
23853 : x9 = XVECEXP (x1, 0, 1);
23854 : if (GET_CODE (x9) != SET)
23855 : return -1;
23856 : x15 = XEXP (x9, 1);
23857 : if (GET_CODE (x15) != DIV
23858 : || GET_MODE (x15) != E_SImode)
23859 : return -1;
23860 : operands[1] = x4;
23861 : x6 = XEXP (x5, 0);
23862 : operands[2] = x6;
23863 : if (!register_operand (operands[2], E_SImode))
23864 : return -1;
23865 : x16 = XEXP (x5, 1);
23866 : operands[3] = x16;
23867 : if (!nonimmediate_operand (operands[3], E_SImode))
23868 : return -1;
23869 : x12 = XEXP (x9, 0);
23870 : operands[0] = x12;
23871 : if (!register_operand (operands[0], E_SImode))
23872 : return -1;
23873 : switch (pattern1642 (x1, pnum_clobbers))
23874 : {
23875 : case 0:
23876 : if (!
23877 : #line 11887 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23878 : (TARGET_64BIT))
23879 : return -1;
23880 : *pnum_clobbers = 1;
23881 : return 673; /* divmodsi4_zext_2 */
23882 :
23883 : case 1:
23884 : if (!
23885 : #line 12110 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23886 : (TARGET_64BIT))
23887 : return -1;
23888 : return 686; /* *divmodsi4_zext_2 */
23889 :
23890 : case 2:
23891 : if (!
23892 : #line 12237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23893 : (TARGET_64BIT))
23894 : return -1;
23895 : *pnum_clobbers = 1;
23896 : return 703; /* *divmodsi4_noext_zext_2 */
23897 :
23898 : default:
23899 : return -1;
23900 : }
23901 :
23902 : case UMOD:
23903 : x9 = XVECEXP (x1, 0, 1);
23904 : if (GET_CODE (x9) != SET)
23905 : return -1;
23906 : x15 = XEXP (x9, 1);
23907 : if (GET_CODE (x15) != UDIV
23908 : || GET_MODE (x15) != E_SImode)
23909 : return -1;
23910 : operands[1] = x4;
23911 : x6 = XEXP (x5, 0);
23912 : operands[2] = x6;
23913 : if (!register_operand (operands[2], E_SImode))
23914 : return -1;
23915 : x16 = XEXP (x5, 1);
23916 : operands[3] = x16;
23917 : x12 = XEXP (x9, 0);
23918 : operands[0] = x12;
23919 : if (!register_operand (operands[0], E_SImode))
23920 : return -1;
23921 : switch (pattern1583 (x1, pnum_clobbers))
23922 : {
23923 : case 0:
23924 : if (!
23925 : #line 11924 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23926 : (TARGET_64BIT))
23927 : return -1;
23928 : *pnum_clobbers = 1;
23929 : return 674; /* udivmodsi4_zext_2 */
23930 :
23931 : case 1:
23932 : if (!
23933 : #line 12146 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23934 : (TARGET_64BIT))
23935 : return -1;
23936 : return 687; /* *udivmodsi4_zext_2 */
23937 :
23938 : case 2:
23939 : if (!
23940 : #line 12237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23941 : (TARGET_64BIT))
23942 : return -1;
23943 : *pnum_clobbers = 1;
23944 : return 704; /* *udivmodsi4_noext_zext_2 */
23945 :
23946 : case 3:
23947 : if (!
23948 : #line 12168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23949 : (TARGET_64BIT
23950 : && IN_RANGE (exact_log2 (UINTVAL (operands[3])), 1, 31)))
23951 : return -1;
23952 : return 688; /* *udivmodsi4_pow2_zext_2 */
23953 :
23954 : default:
23955 : return -1;
23956 : }
23957 :
23958 : case CTZ:
23959 : if (pattern837 (x1) != 0
23960 : || !
23961 : #line 21572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23962 : (TARGET_64BIT))
23963 : return -1;
23964 : return 1555; /* *ctzsidi2_uext_falsedep */
23965 :
23966 : case CLZ:
23967 : x9 = XVECEXP (x1, 0, 1);
23968 : if (GET_CODE (x9) != UNSPEC
23969 : || XVECLEN (x9, 0) != 1
23970 : || XINT (x9, 1) != 39)
23971 : return -1;
23972 : x17 = XVECEXP (x1, 0, 2);
23973 : if (GET_CODE (x17) != CLOBBER)
23974 : return -1;
23975 : x18 = XEXP (x17, 0);
23976 : if (GET_CODE (x18) != REG
23977 : || REGNO (x18) != 17
23978 : || GET_MODE (x18) != E_CCmode)
23979 : return -1;
23980 : operands[0] = x4;
23981 : x6 = XEXP (x5, 0);
23982 : operands[1] = x6;
23983 : x19 = XVECEXP (x9, 0, 0);
23984 : switch (pattern1433 (x19))
23985 : {
23986 : case 0:
23987 : if (!
23988 : #line 21994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23989 : (TARGET_LZCNT))
23990 : return -1;
23991 : return 1578; /* *clzsi2_lzcnt_zext_2_falsedep */
23992 :
23993 : case 1:
23994 : if (!(
23995 : #line 21994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23996 : (TARGET_LZCNT) &&
23997 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23998 : (TARGET_64BIT)))
23999 : return -1;
24000 : return 1579; /* *clzsi2_lzcnt_zext_2_falsedep */
24001 :
24002 : default:
24003 : return -1;
24004 : }
24005 :
24006 : case POPCOUNT:
24007 : if (pattern837 (x1) != 0
24008 : || !
24009 : #line 22839 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24010 : (TARGET_POPCNT && TARGET_64BIT))
24011 : return -1;
24012 : return 1669; /* *popcountsi2_zext_2_falsedep */
24013 :
24014 : default:
24015 : return -1;
24016 : }
24017 : }
24018 :
24019 : int
24020 : recog_442 (rtx x1 ATTRIBUTE_UNUSED,
24021 : rtx_insn *insn ATTRIBUTE_UNUSED,
24022 : int *pnum_clobbers ATTRIBUTE_UNUSED)
24023 : {
24024 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
24025 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
24026 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
24027 : rtx x18, x19;
24028 : int res ATTRIBUTE_UNUSED;
24029 : x2 = XVECEXP (x1, 0, 0);
24030 : if (GET_CODE (x2) != UNSPEC_VOLATILE
24031 : || XVECLEN (x2, 0) != 1)
24032 : return -1;
24033 : x3 = XVECEXP (x2, 0, 0);
24034 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
24035 : || pattern37 (x1) != 0)
24036 : return -1;
24037 : x4 = XVECEXP (x1, 0, 9);
24038 : if (GET_CODE (x4) != CLOBBER)
24039 : return -1;
24040 : x5 = XEXP (x4, 0);
24041 : if (GET_CODE (x5) != REG
24042 : || REGNO (x5) != 28
24043 : || GET_MODE (x5) != E_DImode)
24044 : return -1;
24045 : x6 = XVECEXP (x1, 0, 10);
24046 : if (GET_CODE (x6) != CLOBBER)
24047 : return -1;
24048 : x7 = XEXP (x6, 0);
24049 : if (GET_CODE (x7) != REG
24050 : || REGNO (x7) != 29
24051 : || GET_MODE (x7) != E_DImode)
24052 : return -1;
24053 : x8 = XVECEXP (x1, 0, 11);
24054 : if (GET_CODE (x8) != CLOBBER)
24055 : return -1;
24056 : x9 = XEXP (x8, 0);
24057 : if (GET_CODE (x9) != REG
24058 : || REGNO (x9) != 30
24059 : || GET_MODE (x9) != E_DImode)
24060 : return -1;
24061 : x10 = XVECEXP (x1, 0, 12);
24062 : if (GET_CODE (x10) != CLOBBER)
24063 : return -1;
24064 : x11 = XEXP (x10, 0);
24065 : if (GET_CODE (x11) != REG
24066 : || REGNO (x11) != 31
24067 : || GET_MODE (x11) != E_DImode)
24068 : return -1;
24069 : x12 = XVECEXP (x1, 0, 13);
24070 : if (GET_CODE (x12) != CLOBBER)
24071 : return -1;
24072 : x13 = XEXP (x12, 0);
24073 : if (GET_CODE (x13) != REG
24074 : || REGNO (x13) != 32
24075 : || GET_MODE (x13) != E_DImode)
24076 : return -1;
24077 : x14 = XVECEXP (x1, 0, 14);
24078 : if (GET_CODE (x14) != CLOBBER)
24079 : return -1;
24080 : x15 = XEXP (x14, 0);
24081 : if (GET_CODE (x15) != REG
24082 : || REGNO (x15) != 33
24083 : || GET_MODE (x15) != E_DImode)
24084 : return -1;
24085 : x16 = XVECEXP (x1, 0, 15);
24086 : if (GET_CODE (x16) != CLOBBER)
24087 : return -1;
24088 : x17 = XEXP (x16, 0);
24089 : if (GET_CODE (x17) != REG
24090 : || REGNO (x17) != 34
24091 : || GET_MODE (x17) != E_DImode)
24092 : return -1;
24093 : x18 = XVECEXP (x1, 0, 16);
24094 : if (GET_CODE (x18) != CLOBBER)
24095 : return -1;
24096 : x19 = XEXP (x18, 0);
24097 : if (GET_CODE (x19) != REG
24098 : || REGNO (x19) != 35
24099 : || GET_MODE (x19) != E_DImode)
24100 : return -1;
24101 : switch (XINT (x2, 1))
24102 : {
24103 : case 90:
24104 : if (!
24105 : #line 6896 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24106 : (TARGET_MMX))
24107 : return -1;
24108 : return 2443; /* *mmx_emms */
24109 :
24110 : case 91:
24111 : if (!
24112 : #line 6897 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24113 : (TARGET_3DNOW))
24114 : return -1;
24115 : return 2444; /* *mmx_femms */
24116 :
24117 : default:
24118 : return -1;
24119 : }
24120 : }
24121 :
24122 : int
24123 : recog_446 (rtx x1 ATTRIBUTE_UNUSED,
24124 : rtx_insn *insn ATTRIBUTE_UNUSED,
24125 : int *pnum_clobbers ATTRIBUTE_UNUSED)
24126 : {
24127 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
24128 : rtx x2, x3, x4, x5;
24129 : int res ATTRIBUTE_UNUSED;
24130 : switch (XVECLEN (x1, 0))
24131 : {
24132 : case 1:
24133 : switch (XINT (x1, 1))
24134 : {
24135 : case 1:
24136 : x2 = XVECEXP (x1, 0, 0);
24137 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
24138 : return -1;
24139 : return 1518; /* blockage */
24140 :
24141 : case 5:
24142 : x2 = XVECEXP (x1, 0, 0);
24143 : operands[0] = x2;
24144 : return 1520; /* prologue_use */
24145 :
24146 : case 8:
24147 : x2 = XVECEXP (x1, 0, 0);
24148 : operands[0] = x2;
24149 : if (!const_int_operand (operands[0], E_VOIDmode)
24150 : || !
24151 : #line 21067 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24152 : (reload_completed))
24153 : return -1;
24154 : return 1528; /* nops */
24155 :
24156 : case 6:
24157 : x2 = XVECEXP (x1, 0, 0);
24158 : operands[0] = x2;
24159 : if (!const_int_operand (operands[0], E_SImode))
24160 : return -1;
24161 : return 1538; /* split_stack_return */
24162 :
24163 : case 7:
24164 : x2 = XVECEXP (x1, 0, 0);
24165 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
24166 : return -1;
24167 : return 1794; /* cld */
24168 :
24169 : case 0:
24170 : x2 = XVECEXP (x1, 0, 0);
24171 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
24172 : return -1;
24173 : return 1939; /* ud2 */
24174 :
24175 : case 21:
24176 : x2 = XVECEXP (x1, 0, 0);
24177 : operands[0] = x2;
24178 : if (!memory_operand (operands[0], E_BLKmode)
24179 : || !
24180 : #line 29873 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24181 : (TARGET_FXSR))
24182 : return -1;
24183 : return 1956; /* fxrstor */
24184 :
24185 : case 23:
24186 : x2 = XVECEXP (x1, 0, 0);
24187 : operands[0] = x2;
24188 : if (!memory_operand (operands[0], E_BLKmode)
24189 : || !
24190 : #line 29883 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24191 : (TARGET_64BIT && TARGET_FXSR))
24192 : return -1;
24193 : return 1957; /* fxrstor64 */
24194 :
24195 : case 41:
24196 : if (pnum_clobbers == NULL)
24197 : return -1;
24198 : x2 = XVECEXP (x1, 0, 0);
24199 : operands[0] = x2;
24200 : if (!memory_operand (operands[0], E_BLKmode)
24201 : || !
24202 : #line 30081 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24203 : (TARGET_80387))
24204 : return -1;
24205 : *pnum_clobbers = 8;
24206 : return 1981; /* fldenv */
24207 :
24208 : case 43:
24209 : x2 = XVECEXP (x1, 0, 0);
24210 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
24211 : || !
24212 : #line 30100 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24213 : (TARGET_80387))
24214 : return -1;
24215 : return 1983; /* fnclex */
24216 :
24217 : case 12:
24218 : x2 = XVECEXP (x1, 0, 0);
24219 : operands[0] = x2;
24220 : switch (GET_MODE (operands[0]))
24221 : {
24222 : case E_SImode:
24223 : if (!register_operand (operands[0], E_SImode)
24224 : || !(
24225 : #line 30115 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24226 : (TARGET_LWP) &&
24227 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24228 : (Pmode == SImode)))
24229 : return -1;
24230 : return 1984; /* lwp_llwpcbsi */
24231 :
24232 : case E_DImode:
24233 : if (!register_operand (operands[0], E_DImode)
24234 : || !(
24235 : #line 30115 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24236 : (TARGET_LWP) &&
24237 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24238 : (Pmode == DImode)))
24239 : return -1;
24240 : return 1985; /* lwp_llwpcbdi */
24241 :
24242 : default:
24243 : return -1;
24244 : }
24245 :
24246 : case 18:
24247 : x2 = XVECEXP (x1, 0, 0);
24248 : operands[0] = x2;
24249 : switch (GET_MODE (operands[0]))
24250 : {
24251 : case E_SImode:
24252 : if (!register_operand (operands[0], E_SImode)
24253 : || !
24254 : #line 30181 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24255 : (TARGET_64BIT && TARGET_FSGSBASE))
24256 : return -1;
24257 : return 1996; /* wrfsbasesi */
24258 :
24259 : case E_DImode:
24260 : if (!register_operand (operands[0], E_DImode)
24261 : || !(
24262 : #line 30181 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24263 : (TARGET_64BIT && TARGET_FSGSBASE) &&
24264 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24265 : (TARGET_64BIT)))
24266 : return -1;
24267 : return 1998; /* wrfsbasedi */
24268 :
24269 : default:
24270 : return -1;
24271 : }
24272 :
24273 : case 19:
24274 : x2 = XVECEXP (x1, 0, 0);
24275 : operands[0] = x2;
24276 : switch (GET_MODE (operands[0]))
24277 : {
24278 : case E_SImode:
24279 : if (!register_operand (operands[0], E_SImode)
24280 : || !
24281 : #line 30181 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24282 : (TARGET_64BIT && TARGET_FSGSBASE))
24283 : return -1;
24284 : return 1997; /* wrgsbasesi */
24285 :
24286 : case E_DImode:
24287 : if (!register_operand (operands[0], E_DImode)
24288 : || !(
24289 : #line 30181 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24290 : (TARGET_64BIT && TARGET_FSGSBASE) &&
24291 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24292 : (TARGET_64BIT)))
24293 : return -1;
24294 : return 1999; /* wrgsbasedi */
24295 :
24296 : default:
24297 : return -1;
24298 : }
24299 :
24300 : case 78:
24301 : x2 = XVECEXP (x1, 0, 0);
24302 : operands[0] = x2;
24303 : switch (GET_MODE (operands[0]))
24304 : {
24305 : case E_SImode:
24306 : if (!nonimmediate_operand (operands[0], E_SImode)
24307 : || !
24308 : #line 30190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24309 : (TARGET_PTWRITE))
24310 : return -1;
24311 : return 2000; /* ptwritesi */
24312 :
24313 : case E_DImode:
24314 : if (!nonimmediate_operand (operands[0], E_DImode)
24315 : || !(
24316 : #line 30190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24317 : (TARGET_PTWRITE) &&
24318 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24319 : (TARGET_64BIT)))
24320 : return -1;
24321 : return 2001; /* ptwritedi */
24322 :
24323 : default:
24324 : return -1;
24325 : }
24326 :
24327 : case 60:
24328 : x2 = XVECEXP (x1, 0, 0);
24329 : operands[0] = x2;
24330 : switch (GET_MODE (operands[0]))
24331 : {
24332 : case E_SImode:
24333 : if (!register_operand (operands[0], E_SImode)
24334 : || !
24335 : #line 30248 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24336 : (TARGET_SHSTK || (flag_cf_protection & CF_RETURN)))
24337 : return -1;
24338 : return 2011; /* incsspsi */
24339 :
24340 : case E_DImode:
24341 : if (!register_operand (operands[0], E_DImode)
24342 : || !(
24343 : #line 30248 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24344 : (TARGET_SHSTK || (flag_cf_protection & CF_RETURN)) &&
24345 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24346 : (TARGET_64BIT)))
24347 : return -1;
24348 : return 2012; /* incsspdi */
24349 :
24350 : default:
24351 : return -1;
24352 : }
24353 :
24354 : case 61:
24355 : x2 = XVECEXP (x1, 0, 0);
24356 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
24357 : || !
24358 : #line 30255 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24359 : (TARGET_SHSTK))
24360 : return -1;
24361 : return 2013; /* saveprevssp */
24362 :
24363 : case 62:
24364 : x2 = XVECEXP (x1, 0, 0);
24365 : operands[0] = x2;
24366 : if (!memory_operand (operands[0], E_DImode)
24367 : || !
24368 : #line 30263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24369 : (TARGET_SHSTK))
24370 : return -1;
24371 : return 2014; /* rstorssp */
24372 :
24373 : case 65:
24374 : x2 = XVECEXP (x1, 0, 0);
24375 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
24376 : || !
24377 : #line 30288 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24378 : (TARGET_SHSTK))
24379 : return -1;
24380 : return 2019; /* setssbsy */
24381 :
24382 : case 66:
24383 : x2 = XVECEXP (x1, 0, 0);
24384 : operands[0] = x2;
24385 : if (!memory_operand (operands[0], E_DImode)
24386 : || !
24387 : #line 30296 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24388 : (TARGET_SHSTK))
24389 : return -1;
24390 : return 2020; /* clrssbsy */
24391 :
24392 : case 58:
24393 : x2 = XVECEXP (x1, 0, 0);
24394 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
24395 : || !
24396 : #line 30303 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24397 : ((flag_cf_protection & CF_BRANCH)))
24398 : return -1;
24399 : return 2021; /* nop_endbr */
24400 :
24401 : case 47:
24402 : x2 = XVECEXP (x1, 0, 0);
24403 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
24404 : || !
24405 : #line 30349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24406 : (TARGET_RTM))
24407 : return -1;
24408 : return 2023; /* xend */
24409 :
24410 : case 48:
24411 : x2 = XVECEXP (x1, 0, 0);
24412 : operands[0] = x2;
24413 : if (!const_0_to_255_operand (operands[0], E_SImode)
24414 : || !
24415 : #line 30357 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24416 : (TARGET_RTM))
24417 : return -1;
24418 : return 2024; /* xabort */
24419 :
24420 : case 51:
24421 : x2 = XVECEXP (x1, 0, 0);
24422 : operands[0] = x2;
24423 : if (!address_operand (operands[0], E_VOIDmode)
24424 : || !
24425 : #line 30385 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24426 : (TARGET_CLWB))
24427 : return -1;
24428 : return 2026; /* clwb */
24429 :
24430 : case 52:
24431 : x2 = XVECEXP (x1, 0, 0);
24432 : operands[0] = x2;
24433 : if (!address_operand (operands[0], E_VOIDmode)
24434 : || !
24435 : #line 30394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24436 : (TARGET_CLFLUSHOPT))
24437 : return -1;
24438 : return 2027; /* clflushopt */
24439 :
24440 : case 55:
24441 : x2 = XVECEXP (x1, 0, 0);
24442 : operands[0] = x2;
24443 : switch (GET_MODE (operands[0]))
24444 : {
24445 : case E_SImode:
24446 : if (!register_operand (operands[0], E_SImode)
24447 : || !(
24448 : #line 30430 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24449 : (TARGET_CLZERO) &&
24450 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24451 : (Pmode == SImode)))
24452 : return -1;
24453 : return 2031; /* clzero_si */
24454 :
24455 : case E_DImode:
24456 : if (!register_operand (operands[0], E_DImode)
24457 : || !(
24458 : #line 30430 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24459 : (TARGET_CLZERO) &&
24460 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24461 : (Pmode == DImode)))
24462 : return -1;
24463 : return 2032; /* clzero_di */
24464 :
24465 : default:
24466 : return -1;
24467 : }
24468 :
24469 : case 38:
24470 : x2 = XVECEXP (x1, 0, 0);
24471 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
24472 : return -1;
24473 : return 2037; /* wbinvd */
24474 :
24475 : case 39:
24476 : x2 = XVECEXP (x1, 0, 0);
24477 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
24478 : || !
24479 : #line 30501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24480 : (TARGET_WBNOINVD))
24481 : return -1;
24482 : return 2038; /* wbnoinvd */
24483 :
24484 : case 67:
24485 : x2 = XVECEXP (x1, 0, 0);
24486 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
24487 : || !
24488 : #line 30529 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24489 : (TARGET_TSXLDTRK))
24490 : return -1;
24491 : return 2043; /* xsusldtrk */
24492 :
24493 : case 68:
24494 : x2 = XVECEXP (x1, 0, 0);
24495 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
24496 : || !
24497 : #line 30529 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24498 : (TARGET_TSXLDTRK))
24499 : return -1;
24500 : return 2044; /* xresldtrk */
24501 :
24502 : case 72:
24503 : x2 = XVECEXP (x1, 0, 0);
24504 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
24505 : || !
24506 : #line 30554 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24507 : (TARGET_UINTR && TARGET_64BIT))
24508 : return -1;
24509 : return 2049; /* clui */
24510 :
24511 : case 73:
24512 : x2 = XVECEXP (x1, 0, 0);
24513 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
24514 : || !
24515 : #line 30554 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24516 : (TARGET_UINTR && TARGET_64BIT))
24517 : return -1;
24518 : return 2050; /* stui */
24519 :
24520 : case 75:
24521 : x2 = XVECEXP (x1, 0, 0);
24522 : operands[0] = x2;
24523 : if (!register_operand (operands[0], E_DImode)
24524 : || !
24525 : #line 30571 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24526 : (TARGET_UINTR && TARGET_64BIT))
24527 : return -1;
24528 : return 2052; /* senduipi */
24529 :
24530 : case 70:
24531 : x2 = XVECEXP (x1, 0, 0);
24532 : operands[0] = x2;
24533 : switch (GET_MODE (operands[0]))
24534 : {
24535 : case E_SImode:
24536 : if (!register_operand (operands[0], E_SImode)
24537 : || !(
24538 : #line 30600 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24539 : (TARGET_WAITPKG) &&
24540 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24541 : (Pmode == SImode)))
24542 : return -1;
24543 : return 2055; /* umonitor_si */
24544 :
24545 : case E_DImode:
24546 : if (!register_operand (operands[0], E_DImode)
24547 : || !(
24548 : #line 30600 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24549 : (TARGET_WAITPKG) &&
24550 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24551 : (Pmode == DImode)))
24552 : return -1;
24553 : return 2056; /* umonitor_di */
24554 :
24555 : default:
24556 : return -1;
24557 : }
24558 :
24559 : case 76:
24560 : x2 = XVECEXP (x1, 0, 0);
24561 : operands[0] = x2;
24562 : if (!address_operand (operands[0], E_VOIDmode)
24563 : || !
24564 : #line 30627 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24565 : (TARGET_CLDEMOTE))
24566 : return -1;
24567 : return 2059; /* cldemote */
24568 :
24569 : case 77:
24570 : x2 = XVECEXP (x1, 0, 0);
24571 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
24572 : return -1;
24573 : return 2060; /* speculation_barrier */
24574 :
24575 : case 81:
24576 : x2 = XVECEXP (x1, 0, 0);
24577 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
24578 : || !
24579 : #line 30641 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24580 : (TARGET_SERIALIZE))
24581 : return -1;
24582 : return 2061; /* serialize */
24583 :
24584 : case 83:
24585 : x2 = XVECEXP (x1, 0, 0);
24586 : operands[0] = x2;
24587 : if (!register_operand (operands[0], E_SImode)
24588 : || !
24589 : #line 30663 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24590 : (TARGET_HRESET))
24591 : return -1;
24592 : return 2063; /* hreset */
24593 :
24594 : case 87:
24595 : x2 = XVECEXP (x1, 0, 0);
24596 : operands[0] = x2;
24597 : if (!memory_operand (operands[0], E_BLKmode)
24598 : || !
24599 : #line 30781 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24600 : (TARGET_AMX_TILE))
24601 : return -1;
24602 : return 2066; /* ldtilecfg */
24603 :
24604 : case 90:
24605 : if (pnum_clobbers == NULL)
24606 : return -1;
24607 : x2 = XVECEXP (x1, 0, 0);
24608 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
24609 : || !
24610 : #line 6896 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24611 : (TARGET_MMX))
24612 : return -1;
24613 : *pnum_clobbers = 16;
24614 : return 2443; /* *mmx_emms */
24615 :
24616 : case 91:
24617 : if (pnum_clobbers == NULL)
24618 : return -1;
24619 : x2 = XVECEXP (x1, 0, 0);
24620 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
24621 : || !
24622 : #line 6897 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24623 : (TARGET_3DNOW))
24624 : return -1;
24625 : *pnum_clobbers = 16;
24626 : return 2444; /* *mmx_femms */
24627 :
24628 : case 92:
24629 : x2 = XVECEXP (x1, 0, 0);
24630 : operands[0] = x2;
24631 : if (!memory_operand (operands[0], E_SImode)
24632 : || !
24633 : #line 22838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24634 : (TARGET_SSE))
24635 : return -1;
24636 : return 8625; /* sse_ldmxcsr */
24637 :
24638 : case 94:
24639 : x2 = XVECEXP (x1, 0, 0);
24640 : operands[0] = x2;
24641 : if (!address_operand (operands[0], E_VOIDmode)
24642 : || !
24643 : #line 22862 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24644 : (TARGET_SSE2))
24645 : return -1;
24646 : return 8627; /* sse2_clflush */
24647 :
24648 : default:
24649 : return -1;
24650 : }
24651 :
24652 : case 2:
24653 : x2 = XVECEXP (x1, 0, 0);
24654 : operands[0] = x2;
24655 : x3 = XVECEXP (x1, 0, 1);
24656 : operands[1] = x3;
24657 : switch (XINT (x1, 1))
24658 : {
24659 : case 4:
24660 : return 1529; /* max_skip_align */
24661 :
24662 : case 84:
24663 : if (!local_func_symbolic_operand (operands[0], E_VOIDmode)
24664 : || !const_int_operand (operands[1], E_SImode)
24665 : || !
24666 : #line 29703 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24667 : (TARGET_PREFETCHI && TARGET_64BIT))
24668 : return -1;
24669 : return 1942; /* prefetchi */
24670 :
24671 : case 25:
24672 : if (GET_MODE (x1) != E_BLKmode
24673 : || !memory_operand (operands[0], E_BLKmode)
24674 : || !register_operand (operands[1], E_DImode)
24675 : || !
24676 : #line 29972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24677 : (!TARGET_64BIT && TARGET_XSAVE))
24678 : return -1;
24679 : return 1970; /* xrstor */
24680 :
24681 : case 31:
24682 : if (GET_MODE (x1) != E_BLKmode
24683 : || !memory_operand (operands[0], E_BLKmode)
24684 : || !register_operand (operands[1], E_DImode)
24685 : || !(
24686 : #line 29972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24687 : (!TARGET_64BIT && TARGET_XSAVE) &&
24688 : #line 29915 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24689 : (TARGET_XSAVES)))
24690 : return -1;
24691 : return 1971; /* xrstors */
24692 :
24693 : case 37:
24694 : if (GET_MODE (x1) != E_SImode
24695 : || !register_operand (operands[0], E_SImode)
24696 : || !register_operand (operands[1], E_DImode)
24697 : || !
24698 : #line 30012 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24699 : (!TARGET_64BIT && TARGET_XSAVE))
24700 : return -1;
24701 : return 1976; /* xsetbv */
24702 :
24703 : case 63:
24704 : switch (pattern398 ())
24705 : {
24706 : case 0:
24707 : if (!
24708 : #line 30272 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24709 : (TARGET_SHSTK))
24710 : return -1;
24711 : return 2015; /* wrsssi */
24712 :
24713 : case 1:
24714 : if (!(
24715 : #line 30272 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24716 : (TARGET_SHSTK) &&
24717 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24718 : (TARGET_64BIT)))
24719 : return -1;
24720 : return 2016; /* wrssdi */
24721 :
24722 : default:
24723 : return -1;
24724 : }
24725 :
24726 : case 64:
24727 : switch (pattern398 ())
24728 : {
24729 : case 0:
24730 : if (!
24731 : #line 30281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24732 : (TARGET_SHSTK))
24733 : return -1;
24734 : return 2017; /* wrusssi */
24735 :
24736 : case 1:
24737 : if (!(
24738 : #line 30281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24739 : (TARGET_SHSTK) &&
24740 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24741 : (TARGET_64BIT)))
24742 : return -1;
24743 : return 2018; /* wrussdi */
24744 :
24745 : default:
24746 : return -1;
24747 : }
24748 :
24749 : case 82:
24750 : if (!const_int_operand (operands[0], E_VOIDmode)
24751 : || !const_int_operand (operands[1], E_VOIDmode))
24752 : return -1;
24753 : return 2062; /* patchable_area */
24754 :
24755 : case 86:
24756 : if (!x86_64_szext_nonmemory_operand (operands[0], E_DImode)
24757 : || !register_operand (operands[1], E_DImode)
24758 : || !
24759 : #line 30773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24760 : (TARGET_USER_MSR && TARGET_64BIT))
24761 : return -1;
24762 : return 2065; /* uwrmsr */
24763 :
24764 : case 96:
24765 : if (!register_operand (operands[0], E_SImode)
24766 : || !register_operand (operands[1], E_SImode)
24767 : || !
24768 : #line 22875 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24769 : (TARGET_MWAIT))
24770 : return -1;
24771 : return 8628; /* sse3_mwait */
24772 :
24773 : default:
24774 : return -1;
24775 : }
24776 :
24777 : case 3:
24778 : x2 = XVECEXP (x1, 0, 0);
24779 : operands[0] = x2;
24780 : x3 = XVECEXP (x1, 0, 1);
24781 : operands[1] = x3;
24782 : x4 = XVECEXP (x1, 0, 2);
24783 : operands[2] = x4;
24784 : switch (XINT (x1, 1))
24785 : {
24786 : case 25:
24787 : if (pattern577 (x1) != 0
24788 : || !
24789 : #line 29985 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24790 : (TARGET_64BIT && TARGET_XSAVE))
24791 : return -1;
24792 : return 1972; /* xrstor_rex64 */
24793 :
24794 : case 31:
24795 : if (pattern577 (x1) != 0
24796 : || !(
24797 : #line 29985 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24798 : (TARGET_64BIT && TARGET_XSAVE) &&
24799 : #line 29915 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24800 : (TARGET_XSAVES)))
24801 : return -1;
24802 : return 1973; /* xrstors_rex64 */
24803 :
24804 : case 27:
24805 : if (pattern577 (x1) != 0
24806 : || !
24807 : #line 29999 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24808 : (TARGET_64BIT && TARGET_XSAVE))
24809 : return -1;
24810 : return 1974; /* xrstor64 */
24811 :
24812 : case 33:
24813 : if (pattern577 (x1) != 0
24814 : || !(
24815 : #line 29999 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24816 : (TARGET_64BIT && TARGET_XSAVE) &&
24817 : #line 29919 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24818 : (TARGET_XSAVES)))
24819 : return -1;
24820 : return 1975; /* xrstors64 */
24821 :
24822 : case 37:
24823 : if (pattern578 (x1) != 0
24824 : || !
24825 : #line 30022 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24826 : (TARGET_64BIT && TARGET_XSAVE))
24827 : return -1;
24828 : return 1977; /* xsetbv_rex64 */
24829 :
24830 : case 14:
24831 : if (!nonimmediate_operand (operands[1], E_SImode)
24832 : || !const_int_operand (operands[2], E_SImode))
24833 : return -1;
24834 : switch (GET_MODE (operands[0]))
24835 : {
24836 : case E_SImode:
24837 : if (!register_operand (operands[0], E_SImode)
24838 : || !
24839 : #line 30135 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24840 : (TARGET_LWP))
24841 : return -1;
24842 : return 1988; /* lwp_lwpvalsi */
24843 :
24844 : case E_DImode:
24845 : if (!register_operand (operands[0], E_DImode)
24846 : || !(
24847 : #line 30135 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24848 : (TARGET_LWP) &&
24849 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24850 : (TARGET_64BIT)))
24851 : return -1;
24852 : return 1989; /* lwp_lwpvaldi */
24853 :
24854 : default:
24855 : return -1;
24856 : }
24857 :
24858 : case 54:
24859 : if (!register_operand (operands[0], E_SImode)
24860 : || !register_operand (operands[1], E_SImode)
24861 : || !register_operand (operands[2], E_SImode)
24862 : || !
24863 : #line 30406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24864 : (TARGET_MWAITX))
24865 : return -1;
24866 : return 2028; /* mwaitx */
24867 :
24868 : case 53:
24869 : switch (pattern579 ())
24870 : {
24871 : case 0:
24872 : if (!(
24873 : #line 30418 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24874 : (TARGET_MWAITX) &&
24875 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24876 : (Pmode == SImode)))
24877 : return -1;
24878 : return 2029; /* monitorx_si */
24879 :
24880 : case 1:
24881 : if (!(
24882 : #line 30418 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24883 : (TARGET_MWAITX) &&
24884 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24885 : (Pmode == DImode)))
24886 : return -1;
24887 : return 2030; /* monitorx_di */
24888 :
24889 : default:
24890 : return -1;
24891 : }
24892 :
24893 : case 56:
24894 : if (pattern578 (x1) != 0
24895 : || !
24896 : #line 30473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24897 : (TARGET_PKU))
24898 : return -1;
24899 : return 2034; /* *wrpkru */
24900 :
24901 : case 95:
24902 : switch (pattern579 ())
24903 : {
24904 : case 0:
24905 : if (!(
24906 : #line 22887 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24907 : (TARGET_MWAIT) &&
24908 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24909 : (Pmode == SImode)))
24910 : return -1;
24911 : return 8629; /* sse3_monitor_si */
24912 :
24913 : case 1:
24914 : if (!(
24915 : #line 22887 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24916 : (TARGET_MWAIT) &&
24917 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24918 : (Pmode == DImode)))
24919 : return -1;
24920 : return 8630; /* sse3_monitor_di */
24921 :
24922 : default:
24923 : return -1;
24924 : }
24925 :
24926 : default:
24927 : return -1;
24928 : }
24929 :
24930 : case 4:
24931 : if (pnum_clobbers == NULL
24932 : || XINT (x1, 1) != 98
24933 : || GET_MODE (x1) != E_V2DImode)
24934 : return -1;
24935 : x2 = XVECEXP (x1, 0, 0);
24936 : operands[0] = x2;
24937 : if (!register_operand (operands[0], E_V2DImode))
24938 : return -1;
24939 : x3 = XVECEXP (x1, 0, 1);
24940 : operands[1] = x3;
24941 : if (!register_operand (operands[1], E_V2DImode))
24942 : return -1;
24943 : x4 = XVECEXP (x1, 0, 2);
24944 : operands[2] = x4;
24945 : if (!register_operand (operands[2], E_V2DImode))
24946 : return -1;
24947 : x5 = XVECEXP (x1, 0, 3);
24948 : operands[3] = x5;
24949 : if (!register_operand (operands[3], E_SImode)
24950 : || !
24951 : #line 31930 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24952 : (TARGET_KL))
24953 : return -1;
24954 : *pnum_clobbers = 1;
24955 : return 10433; /* loadiwkey */
24956 :
24957 : default:
24958 : return -1;
24959 : }
24960 : }
24961 :
24962 : rtx_insn *
24963 : split_14 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
24964 : {
24965 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
24966 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
24967 : rtx_insn *res ATTRIBUTE_UNUSED;
24968 : x2 = XEXP (x1, 1);
24969 : switch (GET_CODE (x2))
24970 : {
24971 : case COMPARE:
24972 : return split_5 (x1, insn);
24973 :
24974 : case CONST_INT:
24975 : case CONST_WIDE_INT:
24976 : case CONST_POLY_INT:
24977 : case CONST_FIXED:
24978 : case CONST_DOUBLE:
24979 : case CONST_VECTOR:
24980 : case CONST:
24981 : case REG:
24982 : case SUBREG:
24983 : case MEM:
24984 : case LABEL_REF:
24985 : case SYMBOL_REF:
24986 : case HIGH:
24987 : operands[1] = x2;
24988 : res = split_1 (x1, insn);
24989 : if (res != NULL_RTX)
24990 : return res;
24991 : switch (GET_CODE (x2))
24992 : {
24993 : case REG:
24994 : if (REGNO (x2) != 17
24995 : || pattern59 (x1,
24996 : E_CCCmode) != 0
24997 : || !(
24998 : #line 10226 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24999 : (ix86_pre_reload_split ()) &&
25000 : #line 10228 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25001 : ( 1)))
25002 : return NULL;
25003 : return gen_split_201 (insn, operands);
25004 :
25005 : case SUBREG:
25006 : if (maybe_ne (SUBREG_BYTE (x2), 0))
25007 : return NULL;
25008 : x3 = XEXP (x1, 0);
25009 : operands[0] = x3;
25010 : x4 = XEXP (x2, 0);
25011 : switch (GET_CODE (x4))
25012 : {
25013 : case LSHIFTRT:
25014 : switch (pattern295 (x2))
25015 : {
25016 : case 0:
25017 : if (!((
25018 : #line 17072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25019 : (TARGET_APX_NF && UINTVAL (operands[2]) < 4 * BITS_PER_UNIT) &&
25020 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25021 : (!TARGET_64BIT)) &&
25022 : #line 17074 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25023 : ( reload_completed)))
25024 : return NULL;
25025 : return gen_split_607 (insn, operands);
25026 :
25027 : case 1:
25028 : if (!((
25029 : #line 17072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25030 : (TARGET_APX_NF && UINTVAL (operands[2]) < 8 * BITS_PER_UNIT) &&
25031 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25032 : (TARGET_64BIT)) &&
25033 : #line 17074 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25034 : ( reload_completed)))
25035 : return NULL;
25036 : return gen_split_609 (insn, operands);
25037 :
25038 : default:
25039 : return NULL;
25040 : }
25041 :
25042 : case ASHIFTRT:
25043 : switch (pattern295 (x2))
25044 : {
25045 : case 0:
25046 : if (!((
25047 : #line 17072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25048 : (TARGET_APX_NF && UINTVAL (operands[2]) < 4 * BITS_PER_UNIT) &&
25049 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25050 : (!TARGET_64BIT)) &&
25051 : #line 17074 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25052 : ( reload_completed)))
25053 : return NULL;
25054 : return gen_split_608 (insn, operands);
25055 :
25056 : case 1:
25057 : if (!((
25058 : #line 17072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25059 : (TARGET_APX_NF && UINTVAL (operands[2]) < 8 * BITS_PER_UNIT) &&
25060 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25061 : (TARGET_64BIT)) &&
25062 : #line 17074 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25063 : ( reload_completed)))
25064 : return NULL;
25065 : return gen_split_610 (insn, operands);
25066 :
25067 : default:
25068 : return NULL;
25069 : }
25070 :
25071 : default:
25072 : return NULL;
25073 : }
25074 :
25075 : default:
25076 : return NULL;
25077 : }
25078 :
25079 : case PLUS:
25080 : return split_6 (x1, insn);
25081 :
25082 : case IOR:
25083 : return split_7 (x1, insn);
25084 :
25085 : case XOR:
25086 : return split_8 (x1, insn);
25087 :
25088 : case FLOAT_EXTEND:
25089 : x3 = XEXP (x1, 0);
25090 : operands[0] = x3;
25091 : x4 = XEXP (x2, 0);
25092 : operands[1] = x4;
25093 : switch (GET_CODE (operands[1]))
25094 : {
25095 : case SUBREG:
25096 : case MEM:
25097 : if (memory_operand (operands[1], E_VOIDmode)
25098 : && any_fp_register_operand (operands[0], E_VOIDmode)
25099 : &&
25100 : #line 4625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25101 : (reload_completed
25102 : && (GET_MODE (operands[0]) == TFmode
25103 : || GET_MODE (operands[0]) == XFmode
25104 : || GET_MODE (operands[0]) == DFmode)
25105 : && ix86_standard_x87sse_constant_load_p (insn, operands[0])))
25106 : return gen_split_55 (insn, operands);
25107 : break;
25108 :
25109 : case REG:
25110 : res = split_2 (x1, insn);
25111 : if (res != NULL_RTX)
25112 : return res;
25113 : break;
25114 :
25115 : default:
25116 : break;
25117 : }
25118 : if (!nonimmediate_operand (operands[1], E_SFmode)
25119 : || !sse_reg_operand (operands[0], E_DFmode)
25120 : || GET_MODE (x2) != E_DFmode)
25121 : return NULL;
25122 : if (
25123 : #line 5348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25124 : (TARGET_USE_VECTOR_FP_CONVERTS
25125 : && optimize_insn_for_speed_p ()
25126 : && reload_completed
25127 : && (!EXT_REX_SSE_REG_P (operands[0])
25128 : || TARGET_AVX512VL)))
25129 : return gen_split_76 (insn, operands);
25130 : if (!
25131 : #line 5411 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25132 : (!TARGET_AVX
25133 : && TARGET_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY
25134 : && epilogue_completed
25135 : && optimize_function_for_speed_p (cfun)
25136 : && (!REG_P (operands[1])
25137 : || (!TARGET_AVX && REGNO (operands[0]) != REGNO (operands[1])))
25138 : && (!EXT_REX_SSE_REG_P (operands[0])
25139 : || TARGET_AVX512VL)))
25140 : return NULL;
25141 : return gen_split_77 (insn, operands);
25142 :
25143 : case ZERO_EXTEND:
25144 : x3 = XEXP (x1, 0);
25145 : operands[0] = x3;
25146 : x4 = XEXP (x2, 0);
25147 : switch (GET_CODE (x4))
25148 : {
25149 : case REG:
25150 : case SUBREG:
25151 : case MEM:
25152 : operands[1] = x4;
25153 : switch (GET_MODE (operands[0]))
25154 : {
25155 : case E_TImode:
25156 : if (!nonimmediate_operand (operands[0], E_TImode)
25157 : || GET_MODE (x2) != E_TImode
25158 : || !nonimmediate_operand (operands[1], E_DImode)
25159 : || !(
25160 : #line 4671 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25161 : (TARGET_64BIT) &&
25162 : #line 4673 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25163 : ( reload_completed)))
25164 : return NULL;
25165 : return gen_split_59 (insn, operands);
25166 :
25167 : case E_DImode:
25168 : if (GET_MODE (x2) != E_DImode)
25169 : return NULL;
25170 : if (memory_operand (operands[0], E_DImode)
25171 : && memory_operand (operands[1], E_SImode)
25172 : &&
25173 : #line 4795 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25174 : (reload_completed))
25175 : return gen_split_60 (insn, operands);
25176 : if (general_reg_operand (operands[0], E_DImode)
25177 : && general_reg_operand (operands[1], E_SImode)
25178 : &&
25179 : #line 4802 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25180 : (!TARGET_64BIT && reload_completed
25181 : && REGNO (operands[0]) == REGNO (operands[1])))
25182 : return gen_split_61 (insn, operands);
25183 : if (!nonimmediate_gr_operand (operands[0], E_DImode)
25184 : || !nonimmediate_operand (operands[1], E_SImode)
25185 : || !
25186 : #line 4810 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25187 : (!TARGET_64BIT && reload_completed
25188 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
25189 : return NULL;
25190 : return gen_split_62 (insn, operands);
25191 :
25192 : default:
25193 : return NULL;
25194 : }
25195 :
25196 : case UNSPEC:
25197 : if (XVECLEN (x4, 0) != 1
25198 : || XINT (x4, 1) != 20
25199 : || GET_MODE (x4) != E_SImode)
25200 : return NULL;
25201 : x5 = XVECEXP (x4, 0, 0);
25202 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
25203 : || !register_operand (operands[0], E_DImode)
25204 : || GET_MODE (x2) != E_DImode
25205 : || !(
25206 : #line 23582 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25207 : (TARGET_X32) &&
25208 : #line 23584 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25209 : ( 1)))
25210 : return NULL;
25211 : return gen_split_929 (insn, operands);
25212 :
25213 : default:
25214 : return NULL;
25215 : }
25216 :
25217 : case FLOAT_TRUNCATE:
25218 : if (GET_MODE (x2) != E_SFmode)
25219 : return NULL;
25220 : x3 = XEXP (x1, 0);
25221 : operands[0] = x3;
25222 : if (!sse_reg_operand (operands[0], E_SFmode))
25223 : return NULL;
25224 : x4 = XEXP (x2, 0);
25225 : operands[1] = x4;
25226 : if (!nonimmediate_operand (operands[1], E_DFmode))
25227 : return NULL;
25228 : if (
25229 : #line 5587 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25230 : (TARGET_USE_VECTOR_FP_CONVERTS
25231 : && optimize_insn_for_speed_p ()
25232 : && reload_completed
25233 : && (!EXT_REX_SSE_REG_P (operands[0])
25234 : || TARGET_AVX512VL)))
25235 : return gen_split_78 (insn, operands);
25236 : if (!
25237 : #line 5641 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25238 : (!TARGET_AVX
25239 : && TARGET_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY
25240 : && epilogue_completed
25241 : && optimize_function_for_speed_p (cfun)
25242 : && (!REG_P (operands[1])
25243 : || (!TARGET_AVX && REGNO (operands[0]) != REGNO (operands[1])))
25244 : && (!EXT_REX_SSE_REG_P (operands[0])
25245 : || TARGET_AVX512VL)))
25246 : return NULL;
25247 : return gen_split_79 (insn, operands);
25248 :
25249 : case FLOAT:
25250 : return split_13 (x1, insn);
25251 :
25252 : case MULT:
25253 : x3 = XEXP (x1, 0);
25254 : operands[0] = x3;
25255 : x6 = XEXP (x2, 1);
25256 : operands[1] = x6;
25257 : x4 = XEXP (x2, 0);
25258 : if (!rtx_equal_p (x4, operands[0]))
25259 : return NULL;
25260 : switch (GET_MODE (operands[0]))
25261 : {
25262 : case E_SImode:
25263 : if (!general_reg_operand (operands[0], E_SImode)
25264 : || GET_MODE (x2) != E_SImode
25265 : || !const1248_operand (operands[1], E_SImode)
25266 : || !
25267 : #line 6437 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25268 : (TARGET_APX_NF && reload_completed))
25269 : return NULL;
25270 : return gen_split_102 (insn, operands);
25271 :
25272 : case E_DImode:
25273 : if (!general_reg_operand (operands[0], E_DImode)
25274 : || GET_MODE (x2) != E_DImode
25275 : || !const1248_operand (operands[1], E_DImode)
25276 : || !(
25277 : #line 6437 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25278 : (TARGET_APX_NF && reload_completed) &&
25279 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25280 : (TARGET_64BIT)))
25281 : return NULL;
25282 : return gen_split_103 (insn, operands);
25283 :
25284 : default:
25285 : return NULL;
25286 : }
25287 :
25288 : case UNSPEC:
25289 : switch (XVECLEN (x2, 0))
25290 : {
25291 : case 2:
25292 : switch (XINT (x2, 1))
25293 : {
25294 : case 41:
25295 : if (GET_MODE (x2) != E_CCCmode)
25296 : return NULL;
25297 : x7 = XVECEXP (x2, 0, 0);
25298 : if (GET_CODE (x7) != LTU
25299 : || pattern724 (x7) != 0
25300 : || pattern254 (x1) != 0)
25301 : return NULL;
25302 : x8 = XEXP (x7, 0);
25303 : switch (GET_MODE (x8))
25304 : {
25305 : case E_CCmode:
25306 : if (!(
25307 : #line 10247 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25308 : (ix86_pre_reload_split ()) &&
25309 : #line 10249 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25310 : ( 1)))
25311 : return NULL;
25312 : return gen_split_204 (insn, operands);
25313 :
25314 : case E_CCCmode:
25315 : if (!(
25316 : #line 10247 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25317 : (ix86_pre_reload_split ()) &&
25318 : #line 10249 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25319 : ( 1)))
25320 : return NULL;
25321 : return gen_split_205 (insn, operands);
25322 :
25323 : default:
25324 : return NULL;
25325 : }
25326 :
25327 : case 46:
25328 : if (pattern299 (x2) != 0)
25329 : return NULL;
25330 : x3 = XEXP (x1, 0);
25331 : operands[0] = x3;
25332 : if (!register_operand (operands[0], E_SImode))
25333 : return NULL;
25334 : x9 = XVECEXP (x2, 0, 1);
25335 : operands[2] = x9;
25336 : if (!register_operand (operands[2], E_SImode)
25337 : || !(
25338 : #line 19927 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25339 : (ix86_pre_reload_split ()) &&
25340 : #line 19929 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25341 : ( 1)))
25342 : return NULL;
25343 : return gen_split_862 (insn, operands);
25344 :
25345 : default:
25346 : return NULL;
25347 : }
25348 :
25349 : case 1:
25350 : x3 = XEXP (x1, 0);
25351 : operands[0] = x3;
25352 : switch (XINT (x2, 1))
25353 : {
25354 : case 98:
25355 : switch (pattern303 (x2))
25356 : {
25357 : case 0:
25358 : if (!((
25359 : #line 22019 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25360 : (TARGET_APX_NF) &&
25361 : #line 22001 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25362 : (TARGET_BMI)) &&
25363 : #line 22021 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25364 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
25365 : && optimize_function_for_speed_p (cfun)
25366 : && !reg_mentioned_p (operands[0], operands[1]))))
25367 : return NULL;
25368 : return gen_split_900 (insn, operands);
25369 :
25370 : case 1:
25371 : if (!((
25372 : #line 22019 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25373 : (TARGET_APX_NF) && (((
25374 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25375 : (TARGET_64BIT) &&
25376 : #line 22001 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25377 : (TARGET_BMI)) &&
25378 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25379 : (TARGET_64BIT)) &&
25380 : #line 22001 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25381 : (TARGET_BMI))) &&
25382 : #line 22021 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25383 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
25384 : && optimize_function_for_speed_p (cfun)
25385 : && !reg_mentioned_p (operands[0], operands[1]))))
25386 : return NULL;
25387 : return gen_split_902 (insn, operands);
25388 :
25389 : default:
25390 : return NULL;
25391 : }
25392 :
25393 : case 97:
25394 : switch (pattern303 (x2))
25395 : {
25396 : case 0:
25397 : if (!((
25398 : #line 22019 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25399 : (TARGET_APX_NF) &&
25400 : #line 22002 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25401 : (TARGET_LZCNT)) &&
25402 : #line 22021 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25403 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
25404 : && optimize_function_for_speed_p (cfun)
25405 : && !reg_mentioned_p (operands[0], operands[1]))))
25406 : return NULL;
25407 : return gen_split_901 (insn, operands);
25408 :
25409 : case 1:
25410 : if (!((
25411 : #line 22019 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25412 : (TARGET_APX_NF) && (((
25413 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25414 : (TARGET_64BIT) &&
25415 : #line 22002 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25416 : (TARGET_LZCNT)) &&
25417 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25418 : (TARGET_64BIT)) &&
25419 : #line 22002 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25420 : (TARGET_LZCNT))) &&
25421 : #line 22021 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25422 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
25423 : && optimize_function_for_speed_p (cfun)
25424 : && !reg_mentioned_p (operands[0], operands[1]))))
25425 : return NULL;
25426 : return gen_split_903 (insn, operands);
25427 :
25428 : default:
25429 : return NULL;
25430 : }
25431 :
25432 : case 20:
25433 : x7 = XVECEXP (x2, 0, 0);
25434 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
25435 : return NULL;
25436 : switch (pattern24 (x2))
25437 : {
25438 : case 0:
25439 : if (!
25440 : #line 1409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25441 : (ptr_mode == SImode))
25442 : return NULL;
25443 : return gen_split_927 (insn, operands);
25444 :
25445 : case 1:
25446 : if (!
25447 : #line 1409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25448 : (ptr_mode == DImode))
25449 : return NULL;
25450 : return gen_split_928 (insn, operands);
25451 :
25452 : default:
25453 : return NULL;
25454 : }
25455 :
25456 : default:
25457 : return NULL;
25458 : }
25459 :
25460 : default:
25461 : return NULL;
25462 : }
25463 :
25464 : case SIGN_EXTEND:
25465 : x3 = XEXP (x1, 0);
25466 : operands[0] = x3;
25467 : x4 = XEXP (x2, 0);
25468 : switch (GET_CODE (x4))
25469 : {
25470 : case AND:
25471 : switch (pattern406 (x2))
25472 : {
25473 : case 0:
25474 : return gen_split_406 (insn, operands);
25475 :
25476 : case 1:
25477 : return gen_split_409 (insn, operands);
25478 :
25479 : case 2:
25480 : return gen_split_415 (insn, operands);
25481 :
25482 : case 3:
25483 : if (!
25484 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25485 : (TARGET_64BIT))
25486 : return NULL;
25487 : return gen_split_412 (insn, operands);
25488 :
25489 : case 4:
25490 : if (!
25491 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25492 : (TARGET_64BIT))
25493 : return NULL;
25494 : return gen_split_418 (insn, operands);
25495 :
25496 : case 5:
25497 : if (!
25498 : #line 14188 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25499 : (TARGET_64BIT))
25500 : return NULL;
25501 : return gen_split_421 (insn, operands);
25502 :
25503 : default:
25504 : return NULL;
25505 : }
25506 :
25507 : case IOR:
25508 : switch (pattern406 (x2))
25509 : {
25510 : case 0:
25511 : return gen_split_407 (insn, operands);
25512 :
25513 : case 1:
25514 : return gen_split_410 (insn, operands);
25515 :
25516 : case 2:
25517 : return gen_split_416 (insn, operands);
25518 :
25519 : case 3:
25520 : if (!
25521 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25522 : (TARGET_64BIT))
25523 : return NULL;
25524 : return gen_split_413 (insn, operands);
25525 :
25526 : case 4:
25527 : if (!
25528 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25529 : (TARGET_64BIT))
25530 : return NULL;
25531 : return gen_split_419 (insn, operands);
25532 :
25533 : case 5:
25534 : if (!
25535 : #line 14188 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25536 : (TARGET_64BIT))
25537 : return NULL;
25538 : return gen_split_422 (insn, operands);
25539 :
25540 : default:
25541 : return NULL;
25542 : }
25543 :
25544 : case XOR:
25545 : switch (pattern406 (x2))
25546 : {
25547 : case 0:
25548 : return gen_split_408 (insn, operands);
25549 :
25550 : case 1:
25551 : return gen_split_411 (insn, operands);
25552 :
25553 : case 2:
25554 : return gen_split_417 (insn, operands);
25555 :
25556 : case 3:
25557 : if (!
25558 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25559 : (TARGET_64BIT))
25560 : return NULL;
25561 : return gen_split_414 (insn, operands);
25562 :
25563 : case 4:
25564 : if (!
25565 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25566 : (TARGET_64BIT))
25567 : return NULL;
25568 : return gen_split_420 (insn, operands);
25569 :
25570 : case 5:
25571 : if (!
25572 : #line 14188 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25573 : (TARGET_64BIT))
25574 : return NULL;
25575 : return gen_split_423 (insn, operands);
25576 :
25577 : default:
25578 : return NULL;
25579 : }
25580 :
25581 : default:
25582 : return NULL;
25583 : }
25584 :
25585 : case NOT:
25586 : x4 = XEXP (x2, 0);
25587 : switch (GET_CODE (x4))
25588 : {
25589 : case REG:
25590 : case SUBREG:
25591 : case MEM:
25592 : switch (pattern42 (x1))
25593 : {
25594 : case 0:
25595 : switch (GET_MODE (operands[0]))
25596 : {
25597 : case E_DImode:
25598 : if (!nonimmediate_operand (operands[0], E_DImode)
25599 : || GET_MODE (x2) != E_DImode
25600 : || !nonimmediate_operand (operands[1], E_DImode)
25601 : || !((
25602 : #line 15321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25603 : (ix86_unary_operator_ok (NOT, DImode, operands, TARGET_APX_NDD)) &&
25604 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25605 : (!TARGET_64BIT)) &&
25606 : #line 15323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25607 : ( reload_completed)))
25608 : return NULL;
25609 : return gen_split_546 (insn, operands);
25610 :
25611 : case E_TImode:
25612 : if (!nonimmediate_operand (operands[0], E_TImode)
25613 : || GET_MODE (x2) != E_TImode
25614 : || !nonimmediate_operand (operands[1], E_TImode)
25615 : || !((
25616 : #line 15321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25617 : (ix86_unary_operator_ok (NOT, TImode, operands, TARGET_APX_NDD)) &&
25618 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25619 : (TARGET_64BIT)) &&
25620 : #line 15323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25621 : ( reload_completed)))
25622 : return NULL;
25623 : return gen_split_547 (insn, operands);
25624 :
25625 : default:
25626 : return NULL;
25627 : }
25628 :
25629 : case 1:
25630 : if (!(
25631 : #line 15404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25632 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25633 : #line 15408 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25634 : ( reload_completed
25635 : && !(rtx_equal_p (operands[0], operands[1])))))
25636 : return NULL;
25637 : return gen_split_548 (insn, operands);
25638 :
25639 : case 2:
25640 : if (!(
25641 : #line 15404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25642 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25643 : #line 15408 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25644 : ( reload_completed
25645 : && !(rtx_equal_p (operands[0], operands[1])))))
25646 : return NULL;
25647 : return gen_split_549 (insn, operands);
25648 :
25649 : default:
25650 : return NULL;
25651 : }
25652 :
25653 : case ASHIFTRT:
25654 : case LSHIFTRT:
25655 : case SIGN_EXTRACT:
25656 : case ZERO_EXTRACT:
25657 : operands[2] = x4;
25658 : switch (pattern90 (x1))
25659 : {
25660 : case 0:
25661 : if (!
25662 : #line 15484 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25663 : (reload_completed
25664 : && !(rtx_equal_p (operands[0], operands[1]))))
25665 : return NULL;
25666 : return gen_split_555 (insn, operands);
25667 :
25668 : case 1:
25669 : if (!
25670 : #line 15484 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25671 : (reload_completed
25672 : && !(rtx_equal_p (operands[0], operands[1]))))
25673 : return NULL;
25674 : return gen_split_556 (insn, operands);
25675 :
25676 : case 2:
25677 : if (!(
25678 : #line 15484 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25679 : (reload_completed
25680 : && !(rtx_equal_p (operands[0], operands[1]))) &&
25681 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25682 : (TARGET_64BIT)))
25683 : return NULL;
25684 : return gen_split_557 (insn, operands);
25685 :
25686 : default:
25687 : return NULL;
25688 : }
25689 :
25690 : default:
25691 : return NULL;
25692 : }
25693 :
25694 : case ASHIFT:
25695 : x3 = XEXP (x1, 0);
25696 : operands[0] = x3;
25697 : x4 = XEXP (x2, 0);
25698 : operands[1] = x4;
25699 : x6 = XEXP (x2, 1);
25700 : operands[2] = x6;
25701 : switch (GET_CODE (operands[2]))
25702 : {
25703 : case REG:
25704 : case SUBREG:
25705 : if (!register_operand (operands[2], E_QImode))
25706 : return NULL;
25707 : switch (pattern132 (x2))
25708 : {
25709 : case 0:
25710 : if (!
25711 : #line 16316 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25712 : (TARGET_BMI2 && reload_completed))
25713 : return NULL;
25714 : return gen_split_576 (insn, operands);
25715 :
25716 : case 1:
25717 : if (!(
25718 : #line 16316 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25719 : (TARGET_BMI2 && reload_completed) &&
25720 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25721 : (TARGET_64BIT)))
25722 : return NULL;
25723 : return gen_split_577 (insn, operands);
25724 :
25725 : default:
25726 : return NULL;
25727 : }
25728 :
25729 : case CONST_INT:
25730 : if (!const_0_to_3_operand (operands[2], E_VOIDmode))
25731 : return NULL;
25732 : switch (GET_MODE (operands[0]))
25733 : {
25734 : case E_QImode:
25735 : if (!general_reg_operand (operands[0], E_QImode)
25736 : || GET_MODE (x2) != E_QImode
25737 : || !index_reg_operand (operands[1], E_QImode)
25738 : || !
25739 : #line 16638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25740 : (reload_completed
25741 : && REGNO (operands[0]) != REGNO (operands[1])
25742 : && !TARGET_APX_NDD))
25743 : return NULL;
25744 : return gen_split_587 (insn, operands);
25745 :
25746 : case E_HImode:
25747 : if (!general_reg_operand (operands[0], E_HImode)
25748 : || GET_MODE (x2) != E_HImode
25749 : || !index_reg_operand (operands[1], E_HImode)
25750 : || !
25751 : #line 16638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25752 : (reload_completed
25753 : && REGNO (operands[0]) != REGNO (operands[1])
25754 : && !TARGET_APX_NDD))
25755 : return NULL;
25756 : return gen_split_588 (insn, operands);
25757 :
25758 : case E_SImode:
25759 : if (!general_reg_operand (operands[0], E_SImode)
25760 : || GET_MODE (x2) != E_SImode
25761 : || !index_reg_operand (operands[1], E_SImode)
25762 : || !
25763 : #line 16638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25764 : (reload_completed
25765 : && REGNO (operands[0]) != REGNO (operands[1])
25766 : && !TARGET_APX_NDD))
25767 : return NULL;
25768 : return gen_split_589 (insn, operands);
25769 :
25770 : case E_DImode:
25771 : if (!general_reg_operand (operands[0], E_DImode)
25772 : || GET_MODE (x2) != E_DImode
25773 : || !index_reg_operand (operands[1], E_DImode)
25774 : || !(
25775 : #line 16638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25776 : (reload_completed
25777 : && REGNO (operands[0]) != REGNO (operands[1])
25778 : && !TARGET_APX_NDD) &&
25779 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25780 : (TARGET_64BIT)))
25781 : return NULL;
25782 : return gen_split_590 (insn, operands);
25783 :
25784 : default:
25785 : return NULL;
25786 : }
25787 :
25788 : default:
25789 : return NULL;
25790 : }
25791 :
25792 : case LSHIFTRT:
25793 : x3 = XEXP (x1, 0);
25794 : operands[0] = x3;
25795 : switch (pattern238 (x2))
25796 : {
25797 : case 0:
25798 : if (!
25799 : #line 17761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25800 : (TARGET_BMI2 && reload_completed))
25801 : return NULL;
25802 : return gen_split_624 (insn, operands);
25803 :
25804 : case 1:
25805 : if (!(
25806 : #line 17761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25807 : (TARGET_BMI2 && reload_completed) &&
25808 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25809 : (TARGET_64BIT)))
25810 : return NULL;
25811 : return gen_split_626 (insn, operands);
25812 :
25813 : default:
25814 : return NULL;
25815 : }
25816 :
25817 : case ASHIFTRT:
25818 : x3 = XEXP (x1, 0);
25819 : operands[0] = x3;
25820 : x4 = XEXP (x2, 0);
25821 : switch (GET_CODE (x4))
25822 : {
25823 : case REG:
25824 : case SUBREG:
25825 : case MEM:
25826 : switch (pattern238 (x2))
25827 : {
25828 : case 0:
25829 : if (!
25830 : #line 17761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25831 : (TARGET_BMI2 && reload_completed))
25832 : return NULL;
25833 : return gen_split_625 (insn, operands);
25834 :
25835 : case 1:
25836 : if (!(
25837 : #line 17761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25838 : (TARGET_BMI2 && reload_completed) &&
25839 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25840 : (TARGET_64BIT)))
25841 : return NULL;
25842 : return gen_split_627 (insn, operands);
25843 :
25844 : default:
25845 : return NULL;
25846 : }
25847 :
25848 : case ASHIFT:
25849 : if (pattern293 (x2,
25850 : E_V2DImode) != 0)
25851 : return NULL;
25852 : if ((
25853 : #line 18348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25854 : (!TARGET_64BIT && TARGET_STV && TARGET_AVX512VL
25855 : && INTVAL (operands[2]) == INTVAL (operands[3])
25856 : && UINTVAL (operands[2]) < 32) &&
25857 : #line 18352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25858 : ( reload_completed)))
25859 : return gen_split_682 (insn, operands);
25860 : if (!(
25861 : #line 18365 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25862 : (!TARGET_AVX512VL
25863 : && INTVAL (operands[2]) == INTVAL (operands[3])
25864 : && UINTVAL (operands[2]) < 32
25865 : && ix86_pre_reload_split ()) &&
25866 : #line 18370 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25867 : ( 1)))
25868 : return NULL;
25869 : return gen_split_683 (insn, operands);
25870 :
25871 : default:
25872 : return NULL;
25873 : }
25874 :
25875 : case ROTATE:
25876 : return split_9 (x1, insn);
25877 :
25878 : case ROTATERT:
25879 : return split_10 (x1, insn);
25880 :
25881 : case IF_THEN_ELSE:
25882 : return split_11 (x1, insn);
25883 :
25884 : case NE:
25885 : case EQ:
25886 : case GE:
25887 : case GT:
25888 : case LE:
25889 : case LT:
25890 : case LTGT:
25891 : case GEU:
25892 : case GTU:
25893 : case LEU:
25894 : case LTU:
25895 : case UNORDERED:
25896 : case ORDERED:
25897 : case UNEQ:
25898 : case UNGE:
25899 : case UNGT:
25900 : case UNLE:
25901 : case UNLT:
25902 : switch (GET_CODE (x2))
25903 : {
25904 : case GEU:
25905 : case LTU:
25906 : res = split_4 (x1, insn);
25907 : if (res != NULL_RTX)
25908 : return res;
25909 : break;
25910 :
25911 : case GTU:
25912 : case LEU:
25913 : operands[1] = x2;
25914 : if (shr_comparison_operator (operands[1], E_QImode))
25915 : {
25916 : x3 = XEXP (x1, 0);
25917 : operands[0] = x3;
25918 : if (nonimmediate_operand (operands[0], E_QImode))
25919 : {
25920 : x4 = XEXP (x2, 0);
25921 : operands[2] = x4;
25922 : if (register_operand (operands[2], E_DImode))
25923 : {
25924 : x6 = XEXP (x2, 1);
25925 : operands[3] = x6;
25926 : if (const_int_operand (operands[3], E_VOIDmode)
25927 : &&
25928 : #line 19803 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25929 : (TARGET_64BIT
25930 : && IN_RANGE (exact_log2 (UINTVAL (operands[3]) + 1), 32, 63)))
25931 : return gen_split_856 (insn, operands);
25932 : }
25933 : }
25934 : }
25935 : break;
25936 :
25937 : case NE:
25938 : switch (pattern239 (x1))
25939 : {
25940 : case 0:
25941 : return gen_split_863 (insn, operands);
25942 :
25943 : case 1:
25944 : return gen_split_864 (insn, operands);
25945 :
25946 : default:
25947 : break;
25948 : }
25949 : break;
25950 :
25951 : case EQ:
25952 : switch (pattern239 (x1))
25953 : {
25954 : case 0:
25955 : return gen_split_865 (insn, operands);
25956 :
25957 : case 1:
25958 : return gen_split_866 (insn, operands);
25959 :
25960 : default:
25961 : break;
25962 : }
25963 : break;
25964 :
25965 : default:
25966 : break;
25967 : }
25968 : operands[1] = x2;
25969 : x4 = XEXP (x2, 0);
25970 : if (GET_CODE (x4) != REG
25971 : || REGNO (x4) != 17)
25972 : return NULL;
25973 : x6 = XEXP (x2, 1);
25974 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
25975 : return NULL;
25976 : x3 = XEXP (x1, 0);
25977 : operands[0] = x3;
25978 : switch (GET_MODE (operands[0]))
25979 : {
25980 : case E_DImode:
25981 : if (!register_operand (operands[0], E_DImode)
25982 : || !ix86_comparison_operator (operands[1], E_DImode)
25983 : || !(
25984 : #line 19841 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25985 : (!TARGET_APX_ZU && TARGET_64BIT && !TARGET_PARTIAL_REG_STALL) &&
25986 : #line 19843 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25987 : ( reload_completed)))
25988 : return NULL;
25989 : return gen_split_857 (insn, operands);
25990 :
25991 : case E_HImode:
25992 : if (!register_operand (operands[0], E_HImode)
25993 : || !ix86_comparison_operator (operands[1], E_HImode)
25994 : || !(
25995 : #line 19874 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25996 : (!TARGET_APX_ZU && !TARGET_PARTIAL_REG_STALL
25997 : && (!TARGET_ZERO_EXTEND_WITH_AND || optimize_function_for_size_p (cfun))) &&
25998 : #line 19877 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25999 : ( reload_completed)))
26000 : return NULL;
26001 : return gen_split_860 (insn, operands);
26002 :
26003 : case E_SImode:
26004 : if (!register_operand (operands[0], E_SImode)
26005 : || !ix86_comparison_operator (operands[1], E_SImode)
26006 : || !(
26007 : #line 19874 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26008 : (!TARGET_APX_ZU && !TARGET_PARTIAL_REG_STALL
26009 : && (!TARGET_ZERO_EXTEND_WITH_AND || optimize_function_for_size_p (cfun))) &&
26010 : #line 19877 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26011 : ( reload_completed)))
26012 : return NULL;
26013 : return gen_split_861 (insn, operands);
26014 :
26015 : default:
26016 : return NULL;
26017 : }
26018 :
26019 : case MINUS:
26020 : return split_12 (x1, insn);
26021 :
26022 : case CLZ:
26023 : x3 = XEXP (x1, 0);
26024 : operands[0] = x3;
26025 : x4 = XEXP (x2, 0);
26026 : operands[1] = x4;
26027 : switch (pattern132 (x2))
26028 : {
26029 : case 0:
26030 : if (!(
26031 : #line 21857 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26032 : (TARGET_APX_NF && TARGET_LZCNT) &&
26033 : #line 21859 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26034 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
26035 : && optimize_function_for_speed_p (cfun)
26036 : && !reg_mentioned_p (operands[0], operands[1]))))
26037 : return NULL;
26038 : return gen_split_894 (insn, operands);
26039 :
26040 : case 1:
26041 : if (!((
26042 : #line 21857 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26043 : (TARGET_APX_NF && TARGET_LZCNT) &&
26044 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26045 : (TARGET_64BIT)) &&
26046 : #line 21859 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26047 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
26048 : && optimize_function_for_speed_p (cfun)
26049 : && !reg_mentioned_p (operands[0], operands[1]))))
26050 : return NULL;
26051 : return gen_split_895 (insn, operands);
26052 :
26053 : default:
26054 : return NULL;
26055 : }
26056 :
26057 : case POPCOUNT:
26058 : x3 = XEXP (x1, 0);
26059 : operands[0] = x3;
26060 : x4 = XEXP (x2, 0);
26061 : operands[1] = x4;
26062 : switch (pattern132 (x2))
26063 : {
26064 : case 0:
26065 : if (!(
26066 : #line 22660 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26067 : (TARGET_APX_NF && TARGET_POPCNT) &&
26068 : #line 22668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26069 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
26070 : && optimize_function_for_speed_p (cfun)
26071 : && !reg_mentioned_p (operands[0], operands[1]))))
26072 : return NULL;
26073 : return gen_split_918 (insn, operands);
26074 :
26075 : case 1:
26076 : if (!((
26077 : #line 22660 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26078 : (TARGET_APX_NF && TARGET_POPCNT) &&
26079 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26080 : (TARGET_64BIT)) &&
26081 : #line 22668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26082 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
26083 : && optimize_function_for_speed_p (cfun)
26084 : && !reg_mentioned_p (operands[0], operands[1]))))
26085 : return NULL;
26086 : return gen_split_919 (insn, operands);
26087 :
26088 : default:
26089 : return NULL;
26090 : }
26091 :
26092 : default:
26093 : return NULL;
26094 : }
26095 : }
26096 :
26097 : rtx_insn *
26098 : split_43 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
26099 : {
26100 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
26101 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
26102 : rtx x10, x11, x12, x13, x14, x15, x16;
26103 : rtx_insn *res ATTRIBUTE_UNUSED;
26104 : x2 = XEXP (x1, 1);
26105 : x3 = XEXP (x2, 0);
26106 : switch (GET_CODE (x3))
26107 : {
26108 : case NE:
26109 : case EQ:
26110 : case GE:
26111 : case GT:
26112 : case LE:
26113 : case LT:
26114 : case LTGT:
26115 : case GEU:
26116 : case GTU:
26117 : case LEU:
26118 : case LTU:
26119 : case UNORDERED:
26120 : case ORDERED:
26121 : case UNEQ:
26122 : case UNGE:
26123 : case UNGT:
26124 : case UNLE:
26125 : case UNLT:
26126 : operands[1] = x3;
26127 : res = split_42 (x1, insn);
26128 : if (res != NULL_RTX)
26129 : return res;
26130 : if (!bt_comparison_operator (x3, E_VOIDmode))
26131 : return NULL;
26132 : operands[3] = x3;
26133 : x4 = XEXP (x3, 0);
26134 : if (pattern89 (x4,
26135 : E_CCZmode,
26136 : 131,
26137 : 2) != 0)
26138 : return NULL;
26139 : x5 = XVECEXP (x4, 0, 0);
26140 : if (GET_CODE (x5) != AND)
26141 : return NULL;
26142 : x6 = XEXP (x5, 0);
26143 : if (GET_CODE (x6) != NOT)
26144 : return NULL;
26145 : x7 = XVECEXP (x4, 0, 1);
26146 : if (GET_CODE (x7) != AND)
26147 : return NULL;
26148 : x8 = XEXP (x7, 0);
26149 : if (GET_CODE (x8) != NOT)
26150 : return NULL;
26151 : x9 = XEXP (x3, 1);
26152 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
26153 : return NULL;
26154 : x10 = XEXP (x2, 2);
26155 : if (GET_CODE (x10) != PC)
26156 : return NULL;
26157 : x11 = XEXP (x1, 0);
26158 : if (GET_CODE (x11) != PC)
26159 : return NULL;
26160 : x12 = XEXP (x6, 0);
26161 : operands[1] = x12;
26162 : x13 = XEXP (x5, 1);
26163 : operands[2] = x13;
26164 : x14 = XEXP (x2, 1);
26165 : operands[0] = x14;
26166 : x15 = XEXP (x8, 0);
26167 : if (!rtx_equal_p (x15, operands[1]))
26168 : return NULL;
26169 : x16 = XEXP (x7, 1);
26170 : if (!rtx_equal_p (x16, operands[2]))
26171 : return NULL;
26172 : switch (GET_MODE (x5))
26173 : {
26174 : case E_V16QImode:
26175 : if (pattern1785 (x4,
26176 : E_V16QImode) != 0
26177 : || !
26178 : #line 26024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26179 : (TARGET_SSE4_1))
26180 : return NULL;
26181 : return gen_split_3769 (insn, operands);
26182 :
26183 : case E_V8HImode:
26184 : if (pattern1785 (x4,
26185 : E_V8HImode) != 0
26186 : || !
26187 : #line 26024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26188 : (TARGET_SSE4_1))
26189 : return NULL;
26190 : return gen_split_3770 (insn, operands);
26191 :
26192 : case E_V4SImode:
26193 : if (pattern1785 (x4,
26194 : E_V4SImode) != 0
26195 : || !
26196 : #line 26024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26197 : (TARGET_SSE4_1))
26198 : return NULL;
26199 : return gen_split_3771 (insn, operands);
26200 :
26201 : case E_V2DImode:
26202 : if (pattern1785 (x4,
26203 : E_V2DImode) != 0
26204 : || !
26205 : #line 26024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26206 : (TARGET_SSE4_1))
26207 : return NULL;
26208 : return gen_split_3772 (insn, operands);
26209 :
26210 : case E_V1TImode:
26211 : if (pattern1785 (x4,
26212 : E_V1TImode) != 0
26213 : || !
26214 : #line 26024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26215 : (TARGET_SSE4_1))
26216 : return NULL;
26217 : return gen_split_3773 (insn, operands);
26218 :
26219 : case E_V4SFmode:
26220 : if (pattern1785 (x4,
26221 : E_V4SFmode) != 0
26222 : || !
26223 : #line 26024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26224 : (TARGET_SSE4_1))
26225 : return NULL;
26226 : return gen_split_3774 (insn, operands);
26227 :
26228 : case E_V2DFmode:
26229 : if (pattern1785 (x4,
26230 : E_V2DFmode) != 0
26231 : || !
26232 : #line 26024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26233 : (TARGET_SSE4_1))
26234 : return NULL;
26235 : return gen_split_3775 (insn, operands);
26236 :
26237 : case E_V32QImode:
26238 : if (pattern1785 (x4,
26239 : E_V32QImode) != 0
26240 : || !(
26241 : #line 26024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26242 : (TARGET_SSE4_1) &&
26243 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26244 : (TARGET_AVX)))
26245 : return NULL;
26246 : return gen_split_3776 (insn, operands);
26247 :
26248 : case E_V16HImode:
26249 : if (pattern1785 (x4,
26250 : E_V16HImode) != 0
26251 : || !(
26252 : #line 26024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26253 : (TARGET_SSE4_1) &&
26254 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26255 : (TARGET_AVX)))
26256 : return NULL;
26257 : return gen_split_3777 (insn, operands);
26258 :
26259 : case E_V8SImode:
26260 : if (pattern1785 (x4,
26261 : E_V8SImode) != 0
26262 : || !(
26263 : #line 26024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26264 : (TARGET_SSE4_1) &&
26265 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26266 : (TARGET_AVX)))
26267 : return NULL;
26268 : return gen_split_3778 (insn, operands);
26269 :
26270 : case E_V4DImode:
26271 : if (pattern1785 (x4,
26272 : E_V4DImode) != 0
26273 : || !(
26274 : #line 26024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26275 : (TARGET_SSE4_1) &&
26276 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26277 : (TARGET_AVX)))
26278 : return NULL;
26279 : return gen_split_3779 (insn, operands);
26280 :
26281 : case E_V2TImode:
26282 : if (pattern1785 (x4,
26283 : E_V2TImode) != 0
26284 : || !(
26285 : #line 26024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26286 : (TARGET_SSE4_1) &&
26287 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26288 : (TARGET_AVX)))
26289 : return NULL;
26290 : return gen_split_3780 (insn, operands);
26291 :
26292 : case E_V8SFmode:
26293 : if (pattern1785 (x4,
26294 : E_V8SFmode) != 0
26295 : || !(
26296 : #line 26024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26297 : (TARGET_SSE4_1) &&
26298 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26299 : (TARGET_AVX)))
26300 : return NULL;
26301 : return gen_split_3781 (insn, operands);
26302 :
26303 : case E_V4DFmode:
26304 : if (pattern1785 (x4,
26305 : E_V4DFmode) != 0
26306 : || !(
26307 : #line 26024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26308 : (TARGET_SSE4_1) &&
26309 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26310 : (TARGET_AVX)))
26311 : return NULL;
26312 : return gen_split_3782 (insn, operands);
26313 :
26314 : default:
26315 : return NULL;
26316 : }
26317 :
26318 : default:
26319 : return NULL;
26320 : }
26321 : }
26322 :
26323 : rtx_insn *
26324 : split_48 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
26325 : {
26326 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
26327 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
26328 : rtx x10;
26329 : rtx_insn *res ATTRIBUTE_UNUSED;
26330 : x2 = XEXP (x1, 1);
26331 : x3 = XEXP (x2, 0);
26332 : if (GET_CODE (x3) != VEC_SELECT)
26333 : return NULL;
26334 : switch (pattern97 (x1))
26335 : {
26336 : case 0:
26337 : x4 = XEXP (x3, 0);
26338 : operands[1] = x4;
26339 : if (!nonimmediate_operand (operands[1], E_V2SFmode))
26340 : return NULL;
26341 : x5 = XEXP (x3, 1);
26342 : if (XVECLEN (x5, 0) != 1)
26343 : return NULL;
26344 : x6 = XEXP (x2, 1);
26345 : x7 = XEXP (x6, 1);
26346 : if (XVECLEN (x7, 0) != 1
26347 : || !register_operand (operands[0], E_SFmode)
26348 : || GET_MODE (x2) != E_SFmode
26349 : || GET_MODE (x3) != E_SFmode)
26350 : return NULL;
26351 : x8 = XVECEXP (x5, 0, 0);
26352 : operands[2] = x8;
26353 : if (!const_0_to_1_operand (operands[2], E_SImode)
26354 : || GET_MODE (x6) != E_SFmode)
26355 : return NULL;
26356 : x9 = XVECEXP (x7, 0, 0);
26357 : operands[3] = x9;
26358 : if (!const_0_to_1_operand (operands[3], E_SImode))
26359 : return NULL;
26360 : x10 = XEXP (x6, 0);
26361 : if (!rtx_equal_p (x10, operands[1])
26362 : || !(
26363 : #line 1035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26364 : (TARGET_SSE3 && TARGET_MMX_WITH_SSE && ix86_partial_vec_fp_math
26365 : && INTVAL (operands[2]) != INTVAL (operands[3])
26366 : && ix86_pre_reload_split ()) &&
26367 : #line 1039 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26368 : ( 1)))
26369 : return NULL;
26370 : return gen_split_1072 (insn, operands);
26371 :
26372 : case 1:
26373 : switch (pattern864 (x2))
26374 : {
26375 : case 0:
26376 : if (!
26377 : #line 22975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26378 : (TARGET_SSSE3 && reload_completed
26379 : && SSE_REGNO_P (REGNO (operands[0]))))
26380 : return NULL;
26381 : return gen_split_3556 (insn, operands);
26382 :
26383 : case 1:
26384 : if (!
26385 : #line 23062 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26386 : (TARGET_SSSE3 && reload_completed
26387 : && SSE_REGNO_P (REGNO (operands[0]))))
26388 : return NULL;
26389 : return gen_split_3560 (insn, operands);
26390 :
26391 : default:
26392 : return NULL;
26393 : }
26394 :
26395 : default:
26396 : return NULL;
26397 : }
26398 : }
26399 :
26400 : rtx_insn *
26401 : split_50 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
26402 : {
26403 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
26404 : rtx x2, x3, x4, x5;
26405 : rtx_insn *res ATTRIBUTE_UNUSED;
26406 : x2 = XEXP (x1, 1);
26407 : x3 = XEXP (x2, 1);
26408 : x4 = XVECEXP (x3, 0, 0);
26409 : if (GET_CODE (x4) != CONST_INT)
26410 : return NULL;
26411 : x5 = XEXP (x2, 0);
26412 : operands[1] = x5;
26413 : switch (XWINT (x4, 0))
26414 : {
26415 : case 0L:
26416 : switch (GET_MODE (operands[0]))
26417 : {
26418 : case E_SFmode:
26419 : switch (pattern977 (x2))
26420 : {
26421 : case 0:
26422 : if ((
26423 : #line 1806 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26424 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
26425 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
26426 : #line 1809 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26427 : ( reload_completed)))
26428 : return gen_split_1076 (insn, operands);
26429 : break;
26430 :
26431 : case 1:
26432 : if ((
26433 : #line 12652 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26434 : (TARGET_SSE && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
26435 : #line 12654 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26436 : ( reload_completed)))
26437 : return gen_split_1638 (insn, operands);
26438 : break;
26439 :
26440 : default:
26441 : break;
26442 : }
26443 : break;
26444 :
26445 : case E_SImode:
26446 : if (nonimmediate_operand (operands[0], E_SImode)
26447 : && GET_MODE (x2) == E_SImode)
26448 : {
26449 : switch (GET_MODE (operands[1]))
26450 : {
26451 : case E_V2SImode:
26452 : if (nonimmediate_operand (operands[1], E_V2SImode)
26453 : && (
26454 : #line 5757 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26455 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
26456 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
26457 : #line 5760 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26458 : ( reload_completed)))
26459 : return gen_split_1162 (insn, operands);
26460 : break;
26461 :
26462 : case E_V4SImode:
26463 : if (register_operand (operands[1], E_V4SImode)
26464 : &&
26465 : #line 21544 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26466 : (TARGET_SSE && reload_completed))
26467 : return gen_split_3480 (insn, operands);
26468 : break;
26469 :
26470 : default:
26471 : break;
26472 : }
26473 : }
26474 : break;
26475 :
26476 : case E_HFmode:
26477 : switch (pattern978 (x2))
26478 : {
26479 : case 0:
26480 : if ((
26481 : #line 13557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26482 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
26483 : #line 13559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26484 : ( reload_completed)))
26485 : return gen_split_1661 (insn, operands);
26486 : break;
26487 :
26488 : case 1:
26489 : if ((
26490 : #line 13557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26491 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
26492 : #line 13559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26493 : ( reload_completed)))
26494 : return gen_split_1662 (insn, operands);
26495 : break;
26496 :
26497 : case 2:
26498 : if ((
26499 : #line 13557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26500 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
26501 : #line 13559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26502 : ( reload_completed)))
26503 : return gen_split_1663 (insn, operands);
26504 : break;
26505 :
26506 : default:
26507 : break;
26508 : }
26509 : break;
26510 :
26511 : case E_BFmode:
26512 : switch (pattern979 (x2))
26513 : {
26514 : case 0:
26515 : if ((
26516 : #line 13557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26517 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
26518 : #line 13559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26519 : ( reload_completed)))
26520 : return gen_split_1664 (insn, operands);
26521 : break;
26522 :
26523 : case 1:
26524 : if ((
26525 : #line 13557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26526 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
26527 : #line 13559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26528 : ( reload_completed)))
26529 : return gen_split_1665 (insn, operands);
26530 : break;
26531 :
26532 : case 2:
26533 : if ((
26534 : #line 13557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26535 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
26536 : #line 13559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26537 : ( reload_completed)))
26538 : return gen_split_1666 (insn, operands);
26539 : break;
26540 :
26541 : default:
26542 : break;
26543 : }
26544 : break;
26545 :
26546 : case E_DFmode:
26547 : if (register_operand (operands[0], E_DFmode)
26548 : && GET_MODE (x2) == E_DFmode
26549 : && nonimmediate_operand (operands[1], E_V2DFmode)
26550 : &&
26551 : #line 14995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26552 : (TARGET_SSE2 && reload_completed))
26553 : return gen_split_3255 (insn, operands);
26554 : break;
26555 :
26556 : case E_QImode:
26557 : if (memory_operand (operands[0], E_QImode)
26558 : && GET_MODE (x2) == E_QImode
26559 : && register_operand (operands[1], E_V16QImode)
26560 : && ((
26561 : #line 21404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26562 : (TARGET_SSE2
26563 : && !TARGET_SSE4_1
26564 : && (TARGET_INTER_UNIT_MOVES_FROM_VEC
26565 : || optimize_function_for_speed_p (cfun))
26566 : && ix86_pre_reload_split ()) &&
26567 : #line 21397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26568 : (TARGET_SSE4_1)) &&
26569 : #line 21410 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26570 : ( 1)))
26571 : return gen_split_3477 (insn, operands);
26572 : break;
26573 :
26574 : case E_HImode:
26575 : if (memory_operand (operands[0], E_HImode)
26576 : && GET_MODE (x2) == E_HImode
26577 : && register_operand (operands[1], E_V8HImode)
26578 : && (
26579 : #line 21404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26580 : (TARGET_SSE2
26581 : && !TARGET_SSE4_1
26582 : && (TARGET_INTER_UNIT_MOVES_FROM_VEC
26583 : || optimize_function_for_speed_p (cfun))
26584 : && ix86_pre_reload_split ()) &&
26585 : #line 21410 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26586 : ( 1)))
26587 : return gen_split_3478 (insn, operands);
26588 : break;
26589 :
26590 : case E_TImode:
26591 : if (nonimmediate_operand (operands[0], E_TImode)
26592 : && GET_MODE (x2) == E_TImode)
26593 : {
26594 : switch (GET_MODE (operands[1]))
26595 : {
26596 : case E_V4TImode:
26597 : if (register_operand (operands[1], E_V4TImode)
26598 : && (
26599 : #line 21778 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26600 : (TARGET_AVX
26601 : && reload_completed
26602 : && (TARGET_AVX512VL || !EXT_REX_SSE_REG_P (operands[1]))) &&
26603 : #line 21771 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26604 : (TARGET_AVX512F)))
26605 : return gen_split_3488 (insn, operands);
26606 : break;
26607 :
26608 : case E_V2TImode:
26609 : if (register_operand (operands[1], E_V2TImode)
26610 : &&
26611 : #line 21778 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26612 : (TARGET_AVX
26613 : && reload_completed
26614 : && (TARGET_AVX512VL || !EXT_REX_SSE_REG_P (operands[1]))))
26615 : return gen_split_3489 (insn, operands);
26616 : break;
26617 :
26618 : default:
26619 : break;
26620 : }
26621 : }
26622 : break;
26623 :
26624 : default:
26625 : break;
26626 : }
26627 : break;
26628 :
26629 : case 1L:
26630 : switch (GET_MODE (operands[0]))
26631 : {
26632 : case E_SFmode:
26633 : if (register_operand (operands[0], E_SFmode)
26634 : && GET_MODE (x2) == E_SFmode
26635 : && memory_operand (operands[1], E_V2SFmode)
26636 : &&
26637 : #line 1850 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26638 : ((TARGET_MMX || TARGET_MMX_WITH_SSE) && reload_completed))
26639 : return gen_split_1077 (insn, operands);
26640 : break;
26641 :
26642 : case E_SImode:
26643 : if (register_operand (operands[0], E_SImode)
26644 : && GET_MODE (x2) == E_SImode
26645 : && memory_operand (operands[1], E_V2SImode)
26646 : &&
26647 : #line 5844 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26648 : ((TARGET_MMX || TARGET_MMX_WITH_SSE) && reload_completed))
26649 : return gen_split_1164 (insn, operands);
26650 : break;
26651 :
26652 : case E_DFmode:
26653 : if (register_operand (operands[0], E_DFmode)
26654 : && GET_MODE (x2) == E_DFmode
26655 : && memory_operand (operands[1], E_V2DFmode)
26656 : &&
26657 : #line 14942 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26658 : (TARGET_SSE2 && reload_completed))
26659 : return gen_split_3253 (insn, operands);
26660 : break;
26661 :
26662 : default:
26663 : break;
26664 : }
26665 : break;
26666 :
26667 : default:
26668 : break;
26669 : }
26670 : operands[2] = x4;
26671 : switch (GET_MODE (operands[0]))
26672 : {
26673 : case E_SFmode:
26674 : if (GET_MODE (x2) != E_SFmode)
26675 : return NULL;
26676 : if (nonimmediate_operand (operands[0], E_SFmode)
26677 : && register_operand (operands[1], E_V4SFmode)
26678 : && const_0_to_3_operand (operands[2], E_SImode)
26679 : && (
26680 : #line 12663 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26681 : (TARGET_SSE4_1) &&
26682 : #line 12670 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26683 : ( reload_completed && SSE_REG_P (operands[0]))))
26684 : return gen_split_1639 (insn, operands);
26685 : if (!register_operand (operands[0], E_SFmode)
26686 : || !memory_operand (operands[1], E_V4SFmode)
26687 : || !const_0_to_3_operand (operands[2], E_VOIDmode)
26688 : || !(
26689 : #line 12706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26690 : (TARGET_SSE) &&
26691 : #line 12708 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26692 : ( reload_completed)))
26693 : return NULL;
26694 : return gen_split_1640 (insn, operands);
26695 :
26696 : case E_QImode:
26697 : if (!register_operand (operands[0], E_QImode)
26698 : || GET_MODE (x2) != E_QImode
26699 : || !memory_operand (operands[1], E_V16QImode)
26700 : || !const_0_to_15_operand (operands[2], E_VOIDmode)
26701 : || !
26702 : #line 21731 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26703 : (TARGET_SSE && reload_completed))
26704 : return NULL;
26705 : return gen_split_3484 (insn, operands);
26706 :
26707 : case E_HImode:
26708 : if (!register_operand (operands[0], E_HImode)
26709 : || GET_MODE (x2) != E_HImode
26710 : || !memory_operand (operands[1], E_V8HImode)
26711 : || !const_0_to_7_operand (operands[2], E_VOIDmode)
26712 : || !
26713 : #line 21731 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26714 : (TARGET_SSE && reload_completed))
26715 : return NULL;
26716 : return gen_split_3485 (insn, operands);
26717 :
26718 : case E_SImode:
26719 : if (!register_operand (operands[0], E_SImode)
26720 : || GET_MODE (x2) != E_SImode
26721 : || !memory_operand (operands[1], E_V4SImode)
26722 : || !const_0_to_3_operand (operands[2], E_VOIDmode)
26723 : || !
26724 : #line 21731 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26725 : (TARGET_SSE && reload_completed))
26726 : return NULL;
26727 : return gen_split_3486 (insn, operands);
26728 :
26729 : default:
26730 : return NULL;
26731 : }
26732 : }
26733 :
26734 : rtx_insn *
26735 : split_58 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
26736 : {
26737 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
26738 : rtx x2, x3, x4, x5, x6;
26739 : rtx_insn *res ATTRIBUTE_UNUSED;
26740 : x2 = XEXP (x1, 1);
26741 : if (XINT (x2, 1) != 165)
26742 : return NULL;
26743 : x3 = XVECEXP (x2, 0, 0);
26744 : operands[1] = x3;
26745 : x4 = XVECEXP (x2, 0, 1);
26746 : operands[2] = x4;
26747 : x5 = XVECEXP (x2, 0, 2);
26748 : operands[3] = x5;
26749 : x6 = XVECEXP (x2, 0, 3);
26750 : operands[4] = x6;
26751 : if (!const_0_to_255_operand (operands[4], E_SImode))
26752 : return NULL;
26753 : switch (GET_MODE (operands[0]))
26754 : {
26755 : case E_V64QImode:
26756 : if (pattern971 (x2,
26757 : E_V64QImode) != 0)
26758 : return NULL;
26759 : if (memory_operand (operands[3], E_V64QImode)
26760 : && (
26761 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26762 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) == 3) &&
26763 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26764 : (TARGET_AVX512F)))
26765 : return gen_split_1669 (insn, operands);
26766 : if (!nonimmediate_operand (operands[3], E_V64QImode)
26767 : || !(
26768 : #line 14045 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26769 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) != 0) &&
26770 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26771 : (TARGET_AVX512F)))
26772 : return NULL;
26773 : return gen_split_1693 (insn, operands);
26774 :
26775 : case E_V32QImode:
26776 : if (pattern971 (x2,
26777 : E_V32QImode) != 0)
26778 : return NULL;
26779 : if (memory_operand (operands[3], E_V32QImode)
26780 : && (
26781 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26782 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) == 3) &&
26783 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26784 : (TARGET_AVX)))
26785 : return gen_split_1670 (insn, operands);
26786 : if (!nonimmediate_operand (operands[3], E_V32QImode)
26787 : || !(
26788 : #line 14045 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26789 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) != 0) &&
26790 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26791 : (TARGET_AVX)))
26792 : return NULL;
26793 : return gen_split_1694 (insn, operands);
26794 :
26795 : case E_V16QImode:
26796 : if (pattern971 (x2,
26797 : E_V16QImode) != 0)
26798 : return NULL;
26799 : if (memory_operand (operands[3], E_V16QImode)
26800 : &&
26801 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26802 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) == 3))
26803 : return gen_split_1671 (insn, operands);
26804 : if (!nonimmediate_operand (operands[3], E_V16QImode)
26805 : || !
26806 : #line 14045 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26807 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) != 0))
26808 : return NULL;
26809 : return gen_split_1695 (insn, operands);
26810 :
26811 : case E_V32HImode:
26812 : if (pattern971 (x2,
26813 : E_V32HImode) != 0)
26814 : return NULL;
26815 : if (memory_operand (operands[3], E_V32HImode)
26816 : && (
26817 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26818 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) == 3) &&
26819 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26820 : (TARGET_AVX512F)))
26821 : return gen_split_1672 (insn, operands);
26822 : if (!nonimmediate_operand (operands[3], E_V32HImode)
26823 : || !(
26824 : #line 14045 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26825 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) != 0) &&
26826 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26827 : (TARGET_AVX512F)))
26828 : return NULL;
26829 : return gen_split_1696 (insn, operands);
26830 :
26831 : case E_V16HImode:
26832 : if (pattern971 (x2,
26833 : E_V16HImode) != 0)
26834 : return NULL;
26835 : if (memory_operand (operands[3], E_V16HImode)
26836 : && (
26837 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26838 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) == 3) &&
26839 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26840 : (TARGET_AVX)))
26841 : return gen_split_1673 (insn, operands);
26842 : if (!nonimmediate_operand (operands[3], E_V16HImode)
26843 : || !(
26844 : #line 14045 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26845 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) != 0) &&
26846 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26847 : (TARGET_AVX)))
26848 : return NULL;
26849 : return gen_split_1697 (insn, operands);
26850 :
26851 : case E_V8HImode:
26852 : if (pattern971 (x2,
26853 : E_V8HImode) != 0)
26854 : return NULL;
26855 : if (memory_operand (operands[3], E_V8HImode)
26856 : &&
26857 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26858 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) == 3))
26859 : return gen_split_1674 (insn, operands);
26860 : if (!nonimmediate_operand (operands[3], E_V8HImode)
26861 : || !
26862 : #line 14045 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26863 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) != 0))
26864 : return NULL;
26865 : return gen_split_1698 (insn, operands);
26866 :
26867 : case E_V16SImode:
26868 : if (pattern971 (x2,
26869 : E_V16SImode) != 0)
26870 : return NULL;
26871 : if (memory_operand (operands[3], E_V16SImode)
26872 : && (
26873 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26874 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) == 3) &&
26875 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26876 : (TARGET_AVX512F)))
26877 : return gen_split_1675 (insn, operands);
26878 : if (!nonimmediate_operand (operands[3], E_V16SImode)
26879 : || !(
26880 : #line 14045 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26881 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) != 0) &&
26882 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26883 : (TARGET_AVX512F)))
26884 : return NULL;
26885 : return gen_split_1699 (insn, operands);
26886 :
26887 : case E_V8SImode:
26888 : if (pattern971 (x2,
26889 : E_V8SImode) != 0)
26890 : return NULL;
26891 : if (memory_operand (operands[3], E_V8SImode)
26892 : && (
26893 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26894 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) == 3) &&
26895 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26896 : (TARGET_AVX)))
26897 : return gen_split_1676 (insn, operands);
26898 : if (!nonimmediate_operand (operands[3], E_V8SImode)
26899 : || !(
26900 : #line 14045 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26901 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) != 0) &&
26902 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26903 : (TARGET_AVX)))
26904 : return NULL;
26905 : return gen_split_1700 (insn, operands);
26906 :
26907 : case E_V4SImode:
26908 : if (pattern971 (x2,
26909 : E_V4SImode) != 0)
26910 : return NULL;
26911 : if (memory_operand (operands[3], E_V4SImode)
26912 : &&
26913 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26914 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) == 3))
26915 : return gen_split_1677 (insn, operands);
26916 : if (!nonimmediate_operand (operands[3], E_V4SImode)
26917 : || !
26918 : #line 14045 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26919 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) != 0))
26920 : return NULL;
26921 : return gen_split_1701 (insn, operands);
26922 :
26923 : case E_V8DImode:
26924 : if (pattern971 (x2,
26925 : E_V8DImode) != 0)
26926 : return NULL;
26927 : if (memory_operand (operands[3], E_V8DImode)
26928 : && (
26929 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26930 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) == 3) &&
26931 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26932 : (TARGET_AVX512F)))
26933 : return gen_split_1678 (insn, operands);
26934 : if (!nonimmediate_operand (operands[3], E_V8DImode)
26935 : || !(
26936 : #line 14045 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26937 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) != 0) &&
26938 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26939 : (TARGET_AVX512F)))
26940 : return NULL;
26941 : return gen_split_1702 (insn, operands);
26942 :
26943 : case E_V4DImode:
26944 : if (pattern971 (x2,
26945 : E_V4DImode) != 0)
26946 : return NULL;
26947 : if (memory_operand (operands[3], E_V4DImode)
26948 : && (
26949 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26950 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) == 3) &&
26951 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26952 : (TARGET_AVX)))
26953 : return gen_split_1679 (insn, operands);
26954 : if (!nonimmediate_operand (operands[3], E_V4DImode)
26955 : || !(
26956 : #line 14045 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26957 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) != 0) &&
26958 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26959 : (TARGET_AVX)))
26960 : return NULL;
26961 : return gen_split_1703 (insn, operands);
26962 :
26963 : case E_V2DImode:
26964 : if (pattern971 (x2,
26965 : E_V2DImode) != 0)
26966 : return NULL;
26967 : if (memory_operand (operands[3], E_V2DImode)
26968 : &&
26969 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26970 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) == 3))
26971 : return gen_split_1680 (insn, operands);
26972 : if (!nonimmediate_operand (operands[3], E_V2DImode)
26973 : || !
26974 : #line 14045 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26975 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) != 0))
26976 : return NULL;
26977 : return gen_split_1704 (insn, operands);
26978 :
26979 : case E_V32HFmode:
26980 : if (pattern971 (x2,
26981 : E_V32HFmode) != 0)
26982 : return NULL;
26983 : if (memory_operand (operands[3], E_V32HFmode)
26984 : && (
26985 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26986 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) == 3) &&
26987 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26988 : (TARGET_AVX512F)))
26989 : return gen_split_1681 (insn, operands);
26990 : if (!nonimmediate_operand (operands[3], E_V32HFmode)
26991 : || !(
26992 : #line 14045 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26993 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) != 0) &&
26994 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26995 : (TARGET_AVX512F)))
26996 : return NULL;
26997 : return gen_split_1705 (insn, operands);
26998 :
26999 : case E_V16HFmode:
27000 : if (pattern971 (x2,
27001 : E_V16HFmode) != 0)
27002 : return NULL;
27003 : if (memory_operand (operands[3], E_V16HFmode)
27004 : && (
27005 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27006 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) == 3) &&
27007 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27008 : (TARGET_AVX)))
27009 : return gen_split_1682 (insn, operands);
27010 : if (!nonimmediate_operand (operands[3], E_V16HFmode)
27011 : || !(
27012 : #line 14045 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27013 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) != 0) &&
27014 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27015 : (TARGET_AVX)))
27016 : return NULL;
27017 : return gen_split_1706 (insn, operands);
27018 :
27019 : case E_V8HFmode:
27020 : if (pattern971 (x2,
27021 : E_V8HFmode) != 0)
27022 : return NULL;
27023 : if (memory_operand (operands[3], E_V8HFmode)
27024 : &&
27025 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27026 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) == 3))
27027 : return gen_split_1683 (insn, operands);
27028 : if (!nonimmediate_operand (operands[3], E_V8HFmode)
27029 : || !
27030 : #line 14045 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27031 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) != 0))
27032 : return NULL;
27033 : return gen_split_1707 (insn, operands);
27034 :
27035 : case E_V32BFmode:
27036 : if (pattern971 (x2,
27037 : E_V32BFmode) != 0)
27038 : return NULL;
27039 : if (memory_operand (operands[3], E_V32BFmode)
27040 : && (
27041 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27042 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) == 3) &&
27043 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27044 : (TARGET_AVX512F)))
27045 : return gen_split_1684 (insn, operands);
27046 : if (!nonimmediate_operand (operands[3], E_V32BFmode)
27047 : || !(
27048 : #line 14045 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27049 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) != 0) &&
27050 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27051 : (TARGET_AVX512F)))
27052 : return NULL;
27053 : return gen_split_1708 (insn, operands);
27054 :
27055 : case E_V16BFmode:
27056 : if (pattern971 (x2,
27057 : E_V16BFmode) != 0)
27058 : return NULL;
27059 : if (memory_operand (operands[3], E_V16BFmode)
27060 : && (
27061 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27062 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) == 3) &&
27063 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27064 : (TARGET_AVX)))
27065 : return gen_split_1685 (insn, operands);
27066 : if (!nonimmediate_operand (operands[3], E_V16BFmode)
27067 : || !(
27068 : #line 14045 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27069 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) != 0) &&
27070 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27071 : (TARGET_AVX)))
27072 : return NULL;
27073 : return gen_split_1709 (insn, operands);
27074 :
27075 : case E_V8BFmode:
27076 : if (pattern971 (x2,
27077 : E_V8BFmode) != 0)
27078 : return NULL;
27079 : if (memory_operand (operands[3], E_V8BFmode)
27080 : &&
27081 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27082 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) == 3))
27083 : return gen_split_1686 (insn, operands);
27084 : if (!nonimmediate_operand (operands[3], E_V8BFmode)
27085 : || !
27086 : #line 14045 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27087 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) != 0))
27088 : return NULL;
27089 : return gen_split_1710 (insn, operands);
27090 :
27091 : case E_V16SFmode:
27092 : if (pattern971 (x2,
27093 : E_V16SFmode) != 0)
27094 : return NULL;
27095 : if (memory_operand (operands[3], E_V16SFmode)
27096 : && (
27097 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27098 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) == 3) &&
27099 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27100 : (TARGET_AVX512F)))
27101 : return gen_split_1687 (insn, operands);
27102 : if (!nonimmediate_operand (operands[3], E_V16SFmode)
27103 : || !(
27104 : #line 14045 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27105 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) != 0) &&
27106 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27107 : (TARGET_AVX512F)))
27108 : return NULL;
27109 : return gen_split_1711 (insn, operands);
27110 :
27111 : case E_V8SFmode:
27112 : if (pattern971 (x2,
27113 : E_V8SFmode) != 0)
27114 : return NULL;
27115 : if (memory_operand (operands[3], E_V8SFmode)
27116 : && (
27117 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27118 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) == 3) &&
27119 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27120 : (TARGET_AVX)))
27121 : return gen_split_1688 (insn, operands);
27122 : if (!nonimmediate_operand (operands[3], E_V8SFmode)
27123 : || !(
27124 : #line 14045 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27125 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) != 0) &&
27126 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27127 : (TARGET_AVX)))
27128 : return NULL;
27129 : return gen_split_1712 (insn, operands);
27130 :
27131 : case E_V4SFmode:
27132 : if (pattern971 (x2,
27133 : E_V4SFmode) != 0)
27134 : return NULL;
27135 : if (memory_operand (operands[3], E_V4SFmode)
27136 : &&
27137 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27138 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) == 3))
27139 : return gen_split_1689 (insn, operands);
27140 : if (!nonimmediate_operand (operands[3], E_V4SFmode)
27141 : || !
27142 : #line 14045 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27143 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) != 0))
27144 : return NULL;
27145 : return gen_split_1713 (insn, operands);
27146 :
27147 : case E_V8DFmode:
27148 : if (pattern971 (x2,
27149 : E_V8DFmode) != 0)
27150 : return NULL;
27151 : if (memory_operand (operands[3], E_V8DFmode)
27152 : && (
27153 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27154 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) == 3) &&
27155 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27156 : (TARGET_AVX512F)))
27157 : return gen_split_1690 (insn, operands);
27158 : if (!nonimmediate_operand (operands[3], E_V8DFmode)
27159 : || !(
27160 : #line 14045 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27161 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) != 0) &&
27162 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27163 : (TARGET_AVX512F)))
27164 : return NULL;
27165 : return gen_split_1714 (insn, operands);
27166 :
27167 : case E_V4DFmode:
27168 : if (pattern971 (x2,
27169 : E_V4DFmode) != 0)
27170 : return NULL;
27171 : if (memory_operand (operands[3], E_V4DFmode)
27172 : && (
27173 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27174 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) == 3) &&
27175 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27176 : (TARGET_AVX)))
27177 : return gen_split_1691 (insn, operands);
27178 : if (!nonimmediate_operand (operands[3], E_V4DFmode)
27179 : || !(
27180 : #line 14045 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27181 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) != 0) &&
27182 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27183 : (TARGET_AVX)))
27184 : return NULL;
27185 : return gen_split_1715 (insn, operands);
27186 :
27187 : case E_V2DFmode:
27188 : if (pattern971 (x2,
27189 : E_V2DFmode) != 0)
27190 : return NULL;
27191 : if (memory_operand (operands[3], E_V2DFmode)
27192 : && (
27193 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27194 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) == 3) &&
27195 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27196 : (TARGET_SSE2)))
27197 : return gen_split_1692 (insn, operands);
27198 : if (!nonimmediate_operand (operands[3], E_V2DFmode)
27199 : || !(
27200 : #line 14045 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27201 : (!reload_completed && vpternlog_redundant_operand_mask (operands[4]) != 0) &&
27202 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27203 : (TARGET_SSE2)))
27204 : return NULL;
27205 : return gen_split_1716 (insn, operands);
27206 :
27207 : default:
27208 : return NULL;
27209 : }
27210 : }
27211 :
27212 : rtx_insn *
27213 : split_64 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
27214 : {
27215 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
27216 : rtx x2, x3, x4, x5, x6;
27217 : rtx_insn *res ATTRIBUTE_UNUSED;
27218 : x2 = XEXP (x1, 1);
27219 : x3 = XEXP (x2, 0);
27220 : switch (GET_CODE (x3))
27221 : {
27222 : case NOT:
27223 : x4 = XEXP (x3, 0);
27224 : switch (GET_CODE (x4))
27225 : {
27226 : case GT:
27227 : case LT:
27228 : operands[1] = x4;
27229 : switch (pattern686 (x2))
27230 : {
27231 : case 0:
27232 : if (!((
27233 : #line 3414 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27234 : (TARGET_SSE && ix86_pre_reload_split ()
27235 : && rtx_equal_p (operands[2], operands[4])) &&
27236 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27237 : (TARGET_AVX)) &&
27238 : #line 3417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27239 : ( 1)))
27240 : return NULL;
27241 : return gen_split_1350 (insn, operands);
27242 :
27243 : case 1:
27244 : if (!(
27245 : #line 3414 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27246 : (TARGET_SSE && ix86_pre_reload_split ()
27247 : && rtx_equal_p (operands[2], operands[4])) &&
27248 : #line 3417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27249 : ( 1)))
27250 : return NULL;
27251 : return gen_split_1351 (insn, operands);
27252 :
27253 : case 2:
27254 : if (!((
27255 : #line 3414 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27256 : (TARGET_SSE && ix86_pre_reload_split ()
27257 : && rtx_equal_p (operands[2], operands[4])) &&
27258 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27259 : (TARGET_AVX)) &&
27260 : #line 3417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27261 : ( 1)))
27262 : return NULL;
27263 : return gen_split_1352 (insn, operands);
27264 :
27265 : case 3:
27266 : if (!((
27267 : #line 3414 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27268 : (TARGET_SSE && ix86_pre_reload_split ()
27269 : && rtx_equal_p (operands[2], operands[4])) &&
27270 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27271 : (TARGET_SSE2)) &&
27272 : #line 3417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27273 : ( 1)))
27274 : return NULL;
27275 : return gen_split_1353 (insn, operands);
27276 :
27277 : default:
27278 : return NULL;
27279 : }
27280 :
27281 : default:
27282 : return NULL;
27283 : }
27284 :
27285 : case GT:
27286 : case LT:
27287 : operands[1] = x3;
27288 : switch (pattern529 (x2))
27289 : {
27290 : case 0:
27291 : if (((
27292 : #line 3436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27293 : (TARGET_SSE && ix86_pre_reload_split ()
27294 : && rtx_equal_p (operands[2], operands[4])) &&
27295 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27296 : (TARGET_AVX)) &&
27297 : #line 3439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27298 : ( 1)))
27299 : return gen_split_1354 (insn, operands);
27300 : break;
27301 :
27302 : case 1:
27303 : if ((
27304 : #line 3436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27305 : (TARGET_SSE && ix86_pre_reload_split ()
27306 : && rtx_equal_p (operands[2], operands[4])) &&
27307 : #line 3439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27308 : ( 1)))
27309 : return gen_split_1355 (insn, operands);
27310 : break;
27311 :
27312 : case 2:
27313 : if (((
27314 : #line 3436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27315 : (TARGET_SSE && ix86_pre_reload_split ()
27316 : && rtx_equal_p (operands[2], operands[4])) &&
27317 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27318 : (TARGET_AVX)) &&
27319 : #line 3439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27320 : ( 1)))
27321 : return gen_split_1356 (insn, operands);
27322 : break;
27323 :
27324 : case 3:
27325 : if (((
27326 : #line 3436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27327 : (TARGET_SSE && ix86_pre_reload_split ()
27328 : && rtx_equal_p (operands[2], operands[4])) &&
27329 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27330 : (TARGET_SSE2)) &&
27331 : #line 3439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27332 : ( 1)))
27333 : return gen_split_1357 (insn, operands);
27334 : break;
27335 :
27336 : default:
27337 : break;
27338 : }
27339 : x4 = XEXP (x3, 0);
27340 : operands[1] = x4;
27341 : switch (pattern531 (x2))
27342 : {
27343 : case 0:
27344 : if (!((
27345 : #line 17650 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27346 : (TARGET_SSE4_2 && ix86_pre_reload_split ()) &&
27347 : #line 697 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27348 : (TARGET_AVX2)) &&
27349 : #line 17652 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27350 : ( 1)))
27351 : return NULL;
27352 : return gen_split_3317 (insn, operands);
27353 :
27354 : case 1:
27355 : if (!(
27356 : #line 17650 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27357 : (TARGET_SSE4_2 && ix86_pre_reload_split ()) &&
27358 : #line 17652 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27359 : ( 1)))
27360 : return NULL;
27361 : return gen_split_3318 (insn, operands);
27362 :
27363 : case 2:
27364 : switch (GET_MODE (operands[0]))
27365 : {
27366 : case E_V4DImode:
27367 : if (pattern956 (x2,
27368 : E_V4DImode) != 0)
27369 : return NULL;
27370 : if (((
27371 : #line 17667 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27372 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
27373 : #line 697 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27374 : (TARGET_AVX2)) &&
27375 : #line 17669 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27376 : ( 1)))
27377 : return gen_split_3319 (insn, operands);
27378 : if (!(
27379 : #line 17679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27380 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
27381 : #line 769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27382 : (TARGET_AVX2)))
27383 : return NULL;
27384 : return gen_split_3325 (insn, operands);
27385 :
27386 : case E_V2DImode:
27387 : if (pattern956 (x2,
27388 : E_V2DImode) != 0)
27389 : return NULL;
27390 : if ((
27391 : #line 17667 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27392 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
27393 : #line 17669 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27394 : ( 1)))
27395 : return gen_split_3320 (insn, operands);
27396 : if (!
27397 : #line 17679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27398 : (TARGET_SSE2 && ix86_pre_reload_split ()))
27399 : return NULL;
27400 : return gen_split_3326 (insn, operands);
27401 :
27402 : case E_V16HImode:
27403 : if (pattern956 (x2,
27404 : E_V16HImode) != 0
27405 : || !(
27406 : #line 17679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27407 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
27408 : #line 767 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27409 : (TARGET_AVX2)))
27410 : return NULL;
27411 : return gen_split_3321 (insn, operands);
27412 :
27413 : case E_V8HImode:
27414 : if (pattern956 (x2,
27415 : E_V8HImode) != 0
27416 : || !
27417 : #line 17679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27418 : (TARGET_SSE2 && ix86_pre_reload_split ()))
27419 : return NULL;
27420 : return gen_split_3322 (insn, operands);
27421 :
27422 : case E_V8SImode:
27423 : if (pattern956 (x2,
27424 : E_V8SImode) != 0
27425 : || !(
27426 : #line 17679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27427 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
27428 : #line 768 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27429 : (TARGET_AVX2)))
27430 : return NULL;
27431 : return gen_split_3323 (insn, operands);
27432 :
27433 : case E_V4SImode:
27434 : if (pattern956 (x2,
27435 : E_V4SImode) != 0
27436 : || !
27437 : #line 17679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27438 : (TARGET_SSE2 && ix86_pre_reload_split ()))
27439 : return NULL;
27440 : return gen_split_3324 (insn, operands);
27441 :
27442 : default:
27443 : return NULL;
27444 : }
27445 :
27446 : default:
27447 : return NULL;
27448 : }
27449 :
27450 : case REG:
27451 : case SUBREG:
27452 : case MEM:
27453 : operands[1] = x3;
27454 : x5 = XEXP (x2, 1);
27455 : operands[2] = x5;
27456 : switch (GET_MODE (operands[0]))
27457 : {
27458 : case E_V32BFmode:
27459 : if (pattern957 (x2,
27460 : E_V32BFmode) != 0
27461 : || !((
27462 : #line 5825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27463 : (TARGET_SSE && ix86_pre_reload_split ()) &&
27464 : #line 415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27465 : (TARGET_AVX512F)) &&
27466 : #line 5827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27467 : ( 1)))
27468 : return NULL;
27469 : return gen_split_1570 (insn, operands);
27470 :
27471 : case E_V16BFmode:
27472 : if (pattern957 (x2,
27473 : E_V16BFmode) != 0
27474 : || !((
27475 : #line 5825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27476 : (TARGET_SSE && ix86_pre_reload_split ()) &&
27477 : #line 416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27478 : (TARGET_AVX)) &&
27479 : #line 5827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27480 : ( 1)))
27481 : return NULL;
27482 : return gen_split_1571 (insn, operands);
27483 :
27484 : case E_V8BFmode:
27485 : if (pattern957 (x2,
27486 : E_V8BFmode) != 0
27487 : || !((
27488 : #line 5825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27489 : (TARGET_SSE && ix86_pre_reload_split ()) &&
27490 : #line 416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27491 : (TARGET_SSE2)) &&
27492 : #line 5827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27493 : ( 1)))
27494 : return NULL;
27495 : return gen_split_1572 (insn, operands);
27496 :
27497 : case E_V32HFmode:
27498 : if (pattern957 (x2,
27499 : E_V32HFmode) != 0
27500 : || !((
27501 : #line 5825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27502 : (TARGET_SSE && ix86_pre_reload_split ()) &&
27503 : #line 417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27504 : (TARGET_AVX512F)) &&
27505 : #line 5827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27506 : ( 1)))
27507 : return NULL;
27508 : return gen_split_1573 (insn, operands);
27509 :
27510 : case E_V16HFmode:
27511 : if (pattern957 (x2,
27512 : E_V16HFmode) != 0
27513 : || !((
27514 : #line 5825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27515 : (TARGET_SSE && ix86_pre_reload_split ()) &&
27516 : #line 418 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27517 : (TARGET_AVX)) &&
27518 : #line 5827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27519 : ( 1)))
27520 : return NULL;
27521 : return gen_split_1574 (insn, operands);
27522 :
27523 : case E_V8HFmode:
27524 : if (pattern957 (x2,
27525 : E_V8HFmode) != 0
27526 : || !((
27527 : #line 5825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27528 : (TARGET_SSE && ix86_pre_reload_split ()) &&
27529 : #line 418 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27530 : (TARGET_SSE2)) &&
27531 : #line 5827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27532 : ( 1)))
27533 : return NULL;
27534 : return gen_split_1575 (insn, operands);
27535 :
27536 : case E_V16SFmode:
27537 : if (pattern957 (x2,
27538 : E_V16SFmode) != 0
27539 : || !((
27540 : #line 5825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27541 : (TARGET_SSE && ix86_pre_reload_split ()) &&
27542 : #line 419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27543 : (TARGET_AVX512F)) &&
27544 : #line 5827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27545 : ( 1)))
27546 : return NULL;
27547 : return gen_split_1576 (insn, operands);
27548 :
27549 : case E_V8SFmode:
27550 : if (pattern957 (x2,
27551 : E_V8SFmode) != 0
27552 : || !((
27553 : #line 5825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27554 : (TARGET_SSE && ix86_pre_reload_split ()) &&
27555 : #line 419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27556 : (TARGET_AVX)) &&
27557 : #line 5827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27558 : ( 1)))
27559 : return NULL;
27560 : return gen_split_1577 (insn, operands);
27561 :
27562 : case E_V4SFmode:
27563 : if (pattern957 (x2,
27564 : E_V4SFmode) != 0
27565 : || !(
27566 : #line 5825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27567 : (TARGET_SSE && ix86_pre_reload_split ()) &&
27568 : #line 5827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27569 : ( 1)))
27570 : return NULL;
27571 : return gen_split_1578 (insn, operands);
27572 :
27573 : case E_V8DFmode:
27574 : if (pattern957 (x2,
27575 : E_V8DFmode) != 0
27576 : || !((
27577 : #line 5825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27578 : (TARGET_SSE && ix86_pre_reload_split ()) &&
27579 : #line 420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27580 : (TARGET_AVX512F)) &&
27581 : #line 5827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27582 : ( 1)))
27583 : return NULL;
27584 : return gen_split_1579 (insn, operands);
27585 :
27586 : case E_V4DFmode:
27587 : if (pattern957 (x2,
27588 : E_V4DFmode) != 0
27589 : || !((
27590 : #line 5825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27591 : (TARGET_SSE && ix86_pre_reload_split ()) &&
27592 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27593 : (TARGET_AVX)) &&
27594 : #line 5827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27595 : ( 1)))
27596 : return NULL;
27597 : return gen_split_1580 (insn, operands);
27598 :
27599 : case E_V2DFmode:
27600 : if (pattern957 (x2,
27601 : E_V2DFmode) != 0
27602 : || !((
27603 : #line 5825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27604 : (TARGET_SSE && ix86_pre_reload_split ()) &&
27605 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27606 : (TARGET_SSE2)) &&
27607 : #line 5827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27608 : ( 1)))
27609 : return NULL;
27610 : return gen_split_1581 (insn, operands);
27611 :
27612 : default:
27613 : return NULL;
27614 : }
27615 :
27616 : case AND:
27617 : return split_63 (x1, insn);
27618 :
27619 : case IOR:
27620 : x4 = XEXP (x3, 0);
27621 : switch (GET_CODE (x4))
27622 : {
27623 : case REG:
27624 : case SUBREG:
27625 : case MEM:
27626 : case NOT:
27627 : switch (pattern535 (x2))
27628 : {
27629 : case 0:
27630 : if (!((
27631 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27632 : ((64 == 64 || TARGET_AVX512VL
27633 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27634 : && ix86_pre_reload_split ()
27635 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27636 : STRIP_UNARY (operands[4]))
27637 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27638 : STRIP_UNARY (operands[4]))
27639 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27640 : STRIP_UNARY (operands[3]))
27641 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27642 : STRIP_UNARY (operands[3])))) &&
27643 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27644 : (TARGET_AVX512F)) &&
27645 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27646 : ( 1)))
27647 : return NULL;
27648 : return gen_split_1750 (insn, operands);
27649 :
27650 : case 1:
27651 : if (!((
27652 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27653 : ((32 == 64 || TARGET_AVX512VL
27654 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27655 : && ix86_pre_reload_split ()
27656 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27657 : STRIP_UNARY (operands[4]))
27658 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27659 : STRIP_UNARY (operands[4]))
27660 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27661 : STRIP_UNARY (operands[3]))
27662 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27663 : STRIP_UNARY (operands[3])))) &&
27664 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27665 : (TARGET_AVX)) &&
27666 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27667 : ( 1)))
27668 : return NULL;
27669 : return gen_split_1777 (insn, operands);
27670 :
27671 : case 2:
27672 : if (!(
27673 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27674 : ((16 == 64 || TARGET_AVX512VL
27675 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27676 : && ix86_pre_reload_split ()
27677 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27678 : STRIP_UNARY (operands[4]))
27679 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27680 : STRIP_UNARY (operands[4]))
27681 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27682 : STRIP_UNARY (operands[3]))
27683 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27684 : STRIP_UNARY (operands[3])))) &&
27685 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27686 : ( 1)))
27687 : return NULL;
27688 : return gen_split_1804 (insn, operands);
27689 :
27690 : case 3:
27691 : if (!((
27692 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27693 : ((64 == 64 || TARGET_AVX512VL
27694 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27695 : && ix86_pre_reload_split ()
27696 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27697 : STRIP_UNARY (operands[4]))
27698 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27699 : STRIP_UNARY (operands[4]))
27700 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27701 : STRIP_UNARY (operands[3]))
27702 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27703 : STRIP_UNARY (operands[3])))) &&
27704 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27705 : (TARGET_AVX512F)) &&
27706 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27707 : ( 1)))
27708 : return NULL;
27709 : return gen_split_1831 (insn, operands);
27710 :
27711 : case 4:
27712 : if (!((
27713 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27714 : ((32 == 64 || TARGET_AVX512VL
27715 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27716 : && ix86_pre_reload_split ()
27717 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27718 : STRIP_UNARY (operands[4]))
27719 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27720 : STRIP_UNARY (operands[4]))
27721 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27722 : STRIP_UNARY (operands[3]))
27723 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27724 : STRIP_UNARY (operands[3])))) &&
27725 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27726 : (TARGET_AVX)) &&
27727 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27728 : ( 1)))
27729 : return NULL;
27730 : return gen_split_1858 (insn, operands);
27731 :
27732 : case 5:
27733 : if (!(
27734 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27735 : ((16 == 64 || TARGET_AVX512VL
27736 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27737 : && ix86_pre_reload_split ()
27738 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27739 : STRIP_UNARY (operands[4]))
27740 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27741 : STRIP_UNARY (operands[4]))
27742 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27743 : STRIP_UNARY (operands[3]))
27744 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27745 : STRIP_UNARY (operands[3])))) &&
27746 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27747 : ( 1)))
27748 : return NULL;
27749 : return gen_split_1885 (insn, operands);
27750 :
27751 : case 6:
27752 : if (!((
27753 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27754 : ((64 == 64 || TARGET_AVX512VL
27755 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27756 : && ix86_pre_reload_split ()
27757 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27758 : STRIP_UNARY (operands[4]))
27759 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27760 : STRIP_UNARY (operands[4]))
27761 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27762 : STRIP_UNARY (operands[3]))
27763 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27764 : STRIP_UNARY (operands[3])))) &&
27765 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27766 : (TARGET_AVX512F)) &&
27767 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27768 : ( 1)))
27769 : return NULL;
27770 : return gen_split_1912 (insn, operands);
27771 :
27772 : case 7:
27773 : if (!((
27774 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27775 : ((32 == 64 || TARGET_AVX512VL
27776 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27777 : && ix86_pre_reload_split ()
27778 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27779 : STRIP_UNARY (operands[4]))
27780 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27781 : STRIP_UNARY (operands[4]))
27782 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27783 : STRIP_UNARY (operands[3]))
27784 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27785 : STRIP_UNARY (operands[3])))) &&
27786 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27787 : (TARGET_AVX)) &&
27788 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27789 : ( 1)))
27790 : return NULL;
27791 : return gen_split_1939 (insn, operands);
27792 :
27793 : case 8:
27794 : if (!(
27795 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27796 : ((16 == 64 || TARGET_AVX512VL
27797 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27798 : && ix86_pre_reload_split ()
27799 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27800 : STRIP_UNARY (operands[4]))
27801 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27802 : STRIP_UNARY (operands[4]))
27803 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27804 : STRIP_UNARY (operands[3]))
27805 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27806 : STRIP_UNARY (operands[3])))) &&
27807 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27808 : ( 1)))
27809 : return NULL;
27810 : return gen_split_1966 (insn, operands);
27811 :
27812 : case 9:
27813 : if (!((
27814 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27815 : ((64 == 64 || TARGET_AVX512VL
27816 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27817 : && ix86_pre_reload_split ()
27818 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27819 : STRIP_UNARY (operands[4]))
27820 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27821 : STRIP_UNARY (operands[4]))
27822 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27823 : STRIP_UNARY (operands[3]))
27824 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27825 : STRIP_UNARY (operands[3])))) &&
27826 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27827 : (TARGET_AVX512F)) &&
27828 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27829 : ( 1)))
27830 : return NULL;
27831 : return gen_split_1993 (insn, operands);
27832 :
27833 : case 10:
27834 : if (!((
27835 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27836 : ((32 == 64 || TARGET_AVX512VL
27837 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27838 : && ix86_pre_reload_split ()
27839 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27840 : STRIP_UNARY (operands[4]))
27841 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27842 : STRIP_UNARY (operands[4]))
27843 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27844 : STRIP_UNARY (operands[3]))
27845 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27846 : STRIP_UNARY (operands[3])))) &&
27847 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27848 : (TARGET_AVX)) &&
27849 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27850 : ( 1)))
27851 : return NULL;
27852 : return gen_split_2020 (insn, operands);
27853 :
27854 : case 11:
27855 : if (!(
27856 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27857 : ((16 == 64 || TARGET_AVX512VL
27858 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27859 : && ix86_pre_reload_split ()
27860 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27861 : STRIP_UNARY (operands[4]))
27862 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27863 : STRIP_UNARY (operands[4]))
27864 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27865 : STRIP_UNARY (operands[3]))
27866 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27867 : STRIP_UNARY (operands[3])))) &&
27868 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27869 : ( 1)))
27870 : return NULL;
27871 : return gen_split_2047 (insn, operands);
27872 :
27873 : case 12:
27874 : if (!((
27875 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27876 : ((64 == 64 || TARGET_AVX512VL
27877 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27878 : && ix86_pre_reload_split ()
27879 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27880 : STRIP_UNARY (operands[4]))
27881 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27882 : STRIP_UNARY (operands[4]))
27883 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27884 : STRIP_UNARY (operands[3]))
27885 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27886 : STRIP_UNARY (operands[3])))) &&
27887 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27888 : (TARGET_AVX512F)) &&
27889 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27890 : ( 1)))
27891 : return NULL;
27892 : return gen_split_1753 (insn, operands);
27893 :
27894 : case 13:
27895 : if (!((
27896 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27897 : ((32 == 64 || TARGET_AVX512VL
27898 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27899 : && ix86_pre_reload_split ()
27900 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27901 : STRIP_UNARY (operands[4]))
27902 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27903 : STRIP_UNARY (operands[4]))
27904 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27905 : STRIP_UNARY (operands[3]))
27906 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27907 : STRIP_UNARY (operands[3])))) &&
27908 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27909 : (TARGET_AVX)) &&
27910 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27911 : ( 1)))
27912 : return NULL;
27913 : return gen_split_1780 (insn, operands);
27914 :
27915 : case 14:
27916 : if (!(
27917 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27918 : ((16 == 64 || TARGET_AVX512VL
27919 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27920 : && ix86_pre_reload_split ()
27921 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27922 : STRIP_UNARY (operands[4]))
27923 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27924 : STRIP_UNARY (operands[4]))
27925 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27926 : STRIP_UNARY (operands[3]))
27927 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27928 : STRIP_UNARY (operands[3])))) &&
27929 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27930 : ( 1)))
27931 : return NULL;
27932 : return gen_split_1807 (insn, operands);
27933 :
27934 : case 15:
27935 : if (!((
27936 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27937 : ((64 == 64 || TARGET_AVX512VL
27938 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27939 : && ix86_pre_reload_split ()
27940 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27941 : STRIP_UNARY (operands[4]))
27942 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27943 : STRIP_UNARY (operands[4]))
27944 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27945 : STRIP_UNARY (operands[3]))
27946 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27947 : STRIP_UNARY (operands[3])))) &&
27948 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27949 : (TARGET_AVX512F)) &&
27950 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27951 : ( 1)))
27952 : return NULL;
27953 : return gen_split_1834 (insn, operands);
27954 :
27955 : case 16:
27956 : if (!((
27957 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27958 : ((32 == 64 || TARGET_AVX512VL
27959 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27960 : && ix86_pre_reload_split ()
27961 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27962 : STRIP_UNARY (operands[4]))
27963 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27964 : STRIP_UNARY (operands[4]))
27965 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27966 : STRIP_UNARY (operands[3]))
27967 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27968 : STRIP_UNARY (operands[3])))) &&
27969 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27970 : (TARGET_AVX)) &&
27971 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27972 : ( 1)))
27973 : return NULL;
27974 : return gen_split_1861 (insn, operands);
27975 :
27976 : case 17:
27977 : if (!(
27978 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27979 : ((16 == 64 || TARGET_AVX512VL
27980 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27981 : && ix86_pre_reload_split ()
27982 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27983 : STRIP_UNARY (operands[4]))
27984 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27985 : STRIP_UNARY (operands[4]))
27986 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27987 : STRIP_UNARY (operands[3]))
27988 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27989 : STRIP_UNARY (operands[3])))) &&
27990 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27991 : ( 1)))
27992 : return NULL;
27993 : return gen_split_1888 (insn, operands);
27994 :
27995 : case 18:
27996 : if (!((
27997 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27998 : ((64 == 64 || TARGET_AVX512VL
27999 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28000 : && ix86_pre_reload_split ()
28001 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28002 : STRIP_UNARY (operands[4]))
28003 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28004 : STRIP_UNARY (operands[4]))
28005 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28006 : STRIP_UNARY (operands[3]))
28007 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28008 : STRIP_UNARY (operands[3])))) &&
28009 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28010 : (TARGET_AVX512F)) &&
28011 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28012 : ( 1)))
28013 : return NULL;
28014 : return gen_split_1915 (insn, operands);
28015 :
28016 : case 19:
28017 : if (!((
28018 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28019 : ((32 == 64 || TARGET_AVX512VL
28020 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28021 : && ix86_pre_reload_split ()
28022 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28023 : STRIP_UNARY (operands[4]))
28024 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28025 : STRIP_UNARY (operands[4]))
28026 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28027 : STRIP_UNARY (operands[3]))
28028 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28029 : STRIP_UNARY (operands[3])))) &&
28030 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28031 : (TARGET_AVX)) &&
28032 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28033 : ( 1)))
28034 : return NULL;
28035 : return gen_split_1942 (insn, operands);
28036 :
28037 : case 20:
28038 : if (!(
28039 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28040 : ((16 == 64 || TARGET_AVX512VL
28041 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28042 : && ix86_pre_reload_split ()
28043 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28044 : STRIP_UNARY (operands[4]))
28045 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28046 : STRIP_UNARY (operands[4]))
28047 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28048 : STRIP_UNARY (operands[3]))
28049 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28050 : STRIP_UNARY (operands[3])))) &&
28051 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28052 : ( 1)))
28053 : return NULL;
28054 : return gen_split_1969 (insn, operands);
28055 :
28056 : case 21:
28057 : if (!((
28058 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28059 : ((64 == 64 || TARGET_AVX512VL
28060 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28061 : && ix86_pre_reload_split ()
28062 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28063 : STRIP_UNARY (operands[4]))
28064 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28065 : STRIP_UNARY (operands[4]))
28066 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28067 : STRIP_UNARY (operands[3]))
28068 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28069 : STRIP_UNARY (operands[3])))) &&
28070 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28071 : (TARGET_AVX512F)) &&
28072 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28073 : ( 1)))
28074 : return NULL;
28075 : return gen_split_1996 (insn, operands);
28076 :
28077 : case 22:
28078 : if (!((
28079 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28080 : ((32 == 64 || TARGET_AVX512VL
28081 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28082 : && ix86_pre_reload_split ()
28083 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28084 : STRIP_UNARY (operands[4]))
28085 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28086 : STRIP_UNARY (operands[4]))
28087 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28088 : STRIP_UNARY (operands[3]))
28089 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28090 : STRIP_UNARY (operands[3])))) &&
28091 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28092 : (TARGET_AVX)) &&
28093 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28094 : ( 1)))
28095 : return NULL;
28096 : return gen_split_2023 (insn, operands);
28097 :
28098 : case 23:
28099 : if (!(
28100 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28101 : ((16 == 64 || TARGET_AVX512VL
28102 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28103 : && ix86_pre_reload_split ()
28104 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28105 : STRIP_UNARY (operands[4]))
28106 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28107 : STRIP_UNARY (operands[4]))
28108 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28109 : STRIP_UNARY (operands[3]))
28110 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28111 : STRIP_UNARY (operands[3])))) &&
28112 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28113 : ( 1)))
28114 : return NULL;
28115 : return gen_split_2050 (insn, operands);
28116 :
28117 : case 24:
28118 : if (!((
28119 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28120 : ((64 == 64 || TARGET_AVX512VL
28121 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28122 : && ix86_pre_reload_split ()
28123 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28124 : STRIP_UNARY (operands[4]))
28125 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28126 : STRIP_UNARY (operands[4]))
28127 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28128 : STRIP_UNARY (operands[3]))
28129 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28130 : STRIP_UNARY (operands[3])))) &&
28131 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28132 : (TARGET_AVX512F)) &&
28133 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28134 : ( 1)))
28135 : return NULL;
28136 : return gen_split_1756 (insn, operands);
28137 :
28138 : case 25:
28139 : if (!((
28140 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28141 : ((32 == 64 || TARGET_AVX512VL
28142 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28143 : && ix86_pre_reload_split ()
28144 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28145 : STRIP_UNARY (operands[4]))
28146 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28147 : STRIP_UNARY (operands[4]))
28148 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28149 : STRIP_UNARY (operands[3]))
28150 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28151 : STRIP_UNARY (operands[3])))) &&
28152 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28153 : (TARGET_AVX)) &&
28154 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28155 : ( 1)))
28156 : return NULL;
28157 : return gen_split_1783 (insn, operands);
28158 :
28159 : case 26:
28160 : if (!(
28161 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28162 : ((16 == 64 || TARGET_AVX512VL
28163 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28164 : && ix86_pre_reload_split ()
28165 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28166 : STRIP_UNARY (operands[4]))
28167 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28168 : STRIP_UNARY (operands[4]))
28169 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28170 : STRIP_UNARY (operands[3]))
28171 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28172 : STRIP_UNARY (operands[3])))) &&
28173 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28174 : ( 1)))
28175 : return NULL;
28176 : return gen_split_1810 (insn, operands);
28177 :
28178 : case 27:
28179 : if (!((
28180 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28181 : ((64 == 64 || TARGET_AVX512VL
28182 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28183 : && ix86_pre_reload_split ()
28184 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28185 : STRIP_UNARY (operands[4]))
28186 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28187 : STRIP_UNARY (operands[4]))
28188 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28189 : STRIP_UNARY (operands[3]))
28190 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28191 : STRIP_UNARY (operands[3])))) &&
28192 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28193 : (TARGET_AVX512F)) &&
28194 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28195 : ( 1)))
28196 : return NULL;
28197 : return gen_split_1837 (insn, operands);
28198 :
28199 : case 28:
28200 : if (!((
28201 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28202 : ((32 == 64 || TARGET_AVX512VL
28203 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28204 : && ix86_pre_reload_split ()
28205 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28206 : STRIP_UNARY (operands[4]))
28207 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28208 : STRIP_UNARY (operands[4]))
28209 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28210 : STRIP_UNARY (operands[3]))
28211 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28212 : STRIP_UNARY (operands[3])))) &&
28213 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28214 : (TARGET_AVX)) &&
28215 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28216 : ( 1)))
28217 : return NULL;
28218 : return gen_split_1864 (insn, operands);
28219 :
28220 : case 29:
28221 : if (!(
28222 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28223 : ((16 == 64 || TARGET_AVX512VL
28224 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28225 : && ix86_pre_reload_split ()
28226 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28227 : STRIP_UNARY (operands[4]))
28228 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28229 : STRIP_UNARY (operands[4]))
28230 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28231 : STRIP_UNARY (operands[3]))
28232 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28233 : STRIP_UNARY (operands[3])))) &&
28234 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28235 : ( 1)))
28236 : return NULL;
28237 : return gen_split_1891 (insn, operands);
28238 :
28239 : case 30:
28240 : if (!((
28241 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28242 : ((64 == 64 || TARGET_AVX512VL
28243 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28244 : && ix86_pre_reload_split ()
28245 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28246 : STRIP_UNARY (operands[4]))
28247 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28248 : STRIP_UNARY (operands[4]))
28249 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28250 : STRIP_UNARY (operands[3]))
28251 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28252 : STRIP_UNARY (operands[3])))) &&
28253 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28254 : (TARGET_AVX512F)) &&
28255 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28256 : ( 1)))
28257 : return NULL;
28258 : return gen_split_1918 (insn, operands);
28259 :
28260 : case 31:
28261 : if (!((
28262 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28263 : ((32 == 64 || TARGET_AVX512VL
28264 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28265 : && ix86_pre_reload_split ()
28266 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28267 : STRIP_UNARY (operands[4]))
28268 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28269 : STRIP_UNARY (operands[4]))
28270 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28271 : STRIP_UNARY (operands[3]))
28272 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28273 : STRIP_UNARY (operands[3])))) &&
28274 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28275 : (TARGET_AVX)) &&
28276 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28277 : ( 1)))
28278 : return NULL;
28279 : return gen_split_1945 (insn, operands);
28280 :
28281 : case 32:
28282 : if (!(
28283 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28284 : ((16 == 64 || TARGET_AVX512VL
28285 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28286 : && ix86_pre_reload_split ()
28287 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28288 : STRIP_UNARY (operands[4]))
28289 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28290 : STRIP_UNARY (operands[4]))
28291 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28292 : STRIP_UNARY (operands[3]))
28293 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28294 : STRIP_UNARY (operands[3])))) &&
28295 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28296 : ( 1)))
28297 : return NULL;
28298 : return gen_split_1972 (insn, operands);
28299 :
28300 : case 33:
28301 : if (!((
28302 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28303 : ((64 == 64 || TARGET_AVX512VL
28304 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28305 : && ix86_pre_reload_split ()
28306 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28307 : STRIP_UNARY (operands[4]))
28308 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28309 : STRIP_UNARY (operands[4]))
28310 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28311 : STRIP_UNARY (operands[3]))
28312 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28313 : STRIP_UNARY (operands[3])))) &&
28314 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28315 : (TARGET_AVX512F)) &&
28316 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28317 : ( 1)))
28318 : return NULL;
28319 : return gen_split_1999 (insn, operands);
28320 :
28321 : case 34:
28322 : if (!((
28323 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28324 : ((32 == 64 || TARGET_AVX512VL
28325 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28326 : && ix86_pre_reload_split ()
28327 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28328 : STRIP_UNARY (operands[4]))
28329 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28330 : STRIP_UNARY (operands[4]))
28331 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28332 : STRIP_UNARY (operands[3]))
28333 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28334 : STRIP_UNARY (operands[3])))) &&
28335 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28336 : (TARGET_AVX)) &&
28337 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28338 : ( 1)))
28339 : return NULL;
28340 : return gen_split_2026 (insn, operands);
28341 :
28342 : case 35:
28343 : if (!(
28344 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28345 : ((16 == 64 || TARGET_AVX512VL
28346 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28347 : && ix86_pre_reload_split ()
28348 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28349 : STRIP_UNARY (operands[4]))
28350 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28351 : STRIP_UNARY (operands[4]))
28352 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28353 : STRIP_UNARY (operands[3]))
28354 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28355 : STRIP_UNARY (operands[3])))) &&
28356 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28357 : ( 1)))
28358 : return NULL;
28359 : return gen_split_2053 (insn, operands);
28360 :
28361 : case 36:
28362 : if (!((
28363 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28364 : ((64 == 64 || TARGET_AVX512VL
28365 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28366 : && ix86_pre_reload_split ()) &&
28367 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28368 : (TARGET_AVX512F)) &&
28369 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28370 : ( 1)))
28371 : return NULL;
28372 : return gen_split_3040 (insn, operands);
28373 :
28374 : case 37:
28375 : if (!((
28376 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28377 : ((32 == 64 || TARGET_AVX512VL
28378 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28379 : && ix86_pre_reload_split ()) &&
28380 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28381 : (TARGET_AVX)) &&
28382 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28383 : ( 1)))
28384 : return NULL;
28385 : return gen_split_3049 (insn, operands);
28386 :
28387 : case 38:
28388 : if (!(
28389 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28390 : ((16 == 64 || TARGET_AVX512VL
28391 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28392 : && ix86_pre_reload_split ()) &&
28393 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28394 : ( 1)))
28395 : return NULL;
28396 : return gen_split_3058 (insn, operands);
28397 :
28398 : case 39:
28399 : if (!((
28400 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28401 : ((64 == 64 || TARGET_AVX512VL
28402 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28403 : && ix86_pre_reload_split ()) &&
28404 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28405 : (TARGET_AVX512F)) &&
28406 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28407 : ( 1)))
28408 : return NULL;
28409 : return gen_split_3067 (insn, operands);
28410 :
28411 : case 40:
28412 : if (!((
28413 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28414 : ((32 == 64 || TARGET_AVX512VL
28415 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28416 : && ix86_pre_reload_split ()) &&
28417 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28418 : (TARGET_AVX)) &&
28419 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28420 : ( 1)))
28421 : return NULL;
28422 : return gen_split_3076 (insn, operands);
28423 :
28424 : case 41:
28425 : if (!(
28426 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28427 : ((16 == 64 || TARGET_AVX512VL
28428 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28429 : && ix86_pre_reload_split ()) &&
28430 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28431 : ( 1)))
28432 : return NULL;
28433 : return gen_split_3085 (insn, operands);
28434 :
28435 : case 42:
28436 : if (!((
28437 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28438 : ((64 == 64 || TARGET_AVX512VL
28439 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28440 : && ix86_pre_reload_split ()) &&
28441 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28442 : (TARGET_AVX512F)) &&
28443 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28444 : ( 1)))
28445 : return NULL;
28446 : return gen_split_3094 (insn, operands);
28447 :
28448 : case 43:
28449 : if (!((
28450 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28451 : ((32 == 64 || TARGET_AVX512VL
28452 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28453 : && ix86_pre_reload_split ()) &&
28454 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28455 : (TARGET_AVX)) &&
28456 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28457 : ( 1)))
28458 : return NULL;
28459 : return gen_split_3103 (insn, operands);
28460 :
28461 : case 44:
28462 : if (!(
28463 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28464 : ((16 == 64 || TARGET_AVX512VL
28465 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28466 : && ix86_pre_reload_split ()) &&
28467 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28468 : ( 1)))
28469 : return NULL;
28470 : return gen_split_3112 (insn, operands);
28471 :
28472 : case 45:
28473 : if (!((
28474 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28475 : ((64 == 64 || TARGET_AVX512VL
28476 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28477 : && ix86_pre_reload_split ()) &&
28478 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28479 : (TARGET_AVX512F)) &&
28480 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28481 : ( 1)))
28482 : return NULL;
28483 : return gen_split_3121 (insn, operands);
28484 :
28485 : case 46:
28486 : if (!((
28487 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28488 : ((32 == 64 || TARGET_AVX512VL
28489 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28490 : && ix86_pre_reload_split ()) &&
28491 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28492 : (TARGET_AVX)) &&
28493 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28494 : ( 1)))
28495 : return NULL;
28496 : return gen_split_3130 (insn, operands);
28497 :
28498 : case 47:
28499 : if (!(
28500 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28501 : ((16 == 64 || TARGET_AVX512VL
28502 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28503 : && ix86_pre_reload_split ()) &&
28504 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28505 : ( 1)))
28506 : return NULL;
28507 : return gen_split_3139 (insn, operands);
28508 :
28509 : default:
28510 : return NULL;
28511 : }
28512 :
28513 : case AND:
28514 : switch (pattern537 (x2))
28515 : {
28516 : case 0:
28517 : if (!((
28518 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28519 : ((64 == 64 || TARGET_AVX512VL
28520 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28521 : && ix86_pre_reload_split ()
28522 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28523 : STRIP_UNARY (operands[4]))
28524 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28525 : STRIP_UNARY (operands[4]))
28526 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28527 : STRIP_UNARY (operands[3]))
28528 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28529 : STRIP_UNARY (operands[3])))) &&
28530 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28531 : (TARGET_AVX512F)) &&
28532 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28533 : ( 1)))
28534 : return NULL;
28535 : return gen_split_2398 (insn, operands);
28536 :
28537 : case 1:
28538 : if (!((
28539 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28540 : ((32 == 64 || TARGET_AVX512VL
28541 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28542 : && ix86_pre_reload_split ()
28543 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28544 : STRIP_UNARY (operands[4]))
28545 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28546 : STRIP_UNARY (operands[4]))
28547 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28548 : STRIP_UNARY (operands[3]))
28549 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28550 : STRIP_UNARY (operands[3])))) &&
28551 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28552 : (TARGET_AVX)) &&
28553 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28554 : ( 1)))
28555 : return NULL;
28556 : return gen_split_2425 (insn, operands);
28557 :
28558 : case 2:
28559 : if (!(
28560 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28561 : ((16 == 64 || TARGET_AVX512VL
28562 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28563 : && ix86_pre_reload_split ()
28564 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28565 : STRIP_UNARY (operands[4]))
28566 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28567 : STRIP_UNARY (operands[4]))
28568 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28569 : STRIP_UNARY (operands[3]))
28570 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28571 : STRIP_UNARY (operands[3])))) &&
28572 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28573 : ( 1)))
28574 : return NULL;
28575 : return gen_split_2452 (insn, operands);
28576 :
28577 : case 3:
28578 : if (!((
28579 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28580 : ((64 == 64 || TARGET_AVX512VL
28581 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28582 : && ix86_pre_reload_split ()
28583 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28584 : STRIP_UNARY (operands[4]))
28585 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28586 : STRIP_UNARY (operands[4]))
28587 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28588 : STRIP_UNARY (operands[3]))
28589 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28590 : STRIP_UNARY (operands[3])))) &&
28591 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28592 : (TARGET_AVX512F)) &&
28593 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28594 : ( 1)))
28595 : return NULL;
28596 : return gen_split_2479 (insn, operands);
28597 :
28598 : case 4:
28599 : if (!((
28600 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28601 : ((32 == 64 || TARGET_AVX512VL
28602 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28603 : && ix86_pre_reload_split ()
28604 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28605 : STRIP_UNARY (operands[4]))
28606 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28607 : STRIP_UNARY (operands[4]))
28608 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28609 : STRIP_UNARY (operands[3]))
28610 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28611 : STRIP_UNARY (operands[3])))) &&
28612 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28613 : (TARGET_AVX)) &&
28614 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28615 : ( 1)))
28616 : return NULL;
28617 : return gen_split_2506 (insn, operands);
28618 :
28619 : case 5:
28620 : if (!(
28621 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28622 : ((16 == 64 || TARGET_AVX512VL
28623 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28624 : && ix86_pre_reload_split ()
28625 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28626 : STRIP_UNARY (operands[4]))
28627 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28628 : STRIP_UNARY (operands[4]))
28629 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28630 : STRIP_UNARY (operands[3]))
28631 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28632 : STRIP_UNARY (operands[3])))) &&
28633 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28634 : ( 1)))
28635 : return NULL;
28636 : return gen_split_2533 (insn, operands);
28637 :
28638 : case 6:
28639 : if (!((
28640 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28641 : ((64 == 64 || TARGET_AVX512VL
28642 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28643 : && ix86_pre_reload_split ()
28644 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28645 : STRIP_UNARY (operands[4]))
28646 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28647 : STRIP_UNARY (operands[4]))
28648 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28649 : STRIP_UNARY (operands[3]))
28650 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28651 : STRIP_UNARY (operands[3])))) &&
28652 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28653 : (TARGET_AVX512F)) &&
28654 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28655 : ( 1)))
28656 : return NULL;
28657 : return gen_split_2560 (insn, operands);
28658 :
28659 : case 7:
28660 : if (!((
28661 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28662 : ((32 == 64 || TARGET_AVX512VL
28663 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28664 : && ix86_pre_reload_split ()
28665 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28666 : STRIP_UNARY (operands[4]))
28667 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28668 : STRIP_UNARY (operands[4]))
28669 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28670 : STRIP_UNARY (operands[3]))
28671 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28672 : STRIP_UNARY (operands[3])))) &&
28673 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28674 : (TARGET_AVX)) &&
28675 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28676 : ( 1)))
28677 : return NULL;
28678 : return gen_split_2587 (insn, operands);
28679 :
28680 : case 8:
28681 : if (!(
28682 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28683 : ((16 == 64 || TARGET_AVX512VL
28684 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28685 : && ix86_pre_reload_split ()
28686 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28687 : STRIP_UNARY (operands[4]))
28688 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28689 : STRIP_UNARY (operands[4]))
28690 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28691 : STRIP_UNARY (operands[3]))
28692 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28693 : STRIP_UNARY (operands[3])))) &&
28694 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28695 : ( 1)))
28696 : return NULL;
28697 : return gen_split_2614 (insn, operands);
28698 :
28699 : case 9:
28700 : if (!((
28701 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28702 : ((64 == 64 || TARGET_AVX512VL
28703 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28704 : && ix86_pre_reload_split ()
28705 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28706 : STRIP_UNARY (operands[4]))
28707 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28708 : STRIP_UNARY (operands[4]))
28709 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28710 : STRIP_UNARY (operands[3]))
28711 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28712 : STRIP_UNARY (operands[3])))) &&
28713 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28714 : (TARGET_AVX512F)) &&
28715 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28716 : ( 1)))
28717 : return NULL;
28718 : return gen_split_2641 (insn, operands);
28719 :
28720 : case 10:
28721 : if (!((
28722 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28723 : ((32 == 64 || TARGET_AVX512VL
28724 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28725 : && ix86_pre_reload_split ()
28726 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28727 : STRIP_UNARY (operands[4]))
28728 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28729 : STRIP_UNARY (operands[4]))
28730 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28731 : STRIP_UNARY (operands[3]))
28732 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28733 : STRIP_UNARY (operands[3])))) &&
28734 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28735 : (TARGET_AVX)) &&
28736 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28737 : ( 1)))
28738 : return NULL;
28739 : return gen_split_2668 (insn, operands);
28740 :
28741 : case 11:
28742 : if (!(
28743 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28744 : ((16 == 64 || TARGET_AVX512VL
28745 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28746 : && ix86_pre_reload_split ()
28747 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28748 : STRIP_UNARY (operands[4]))
28749 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28750 : STRIP_UNARY (operands[4]))
28751 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28752 : STRIP_UNARY (operands[3]))
28753 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28754 : STRIP_UNARY (operands[3])))) &&
28755 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28756 : ( 1)))
28757 : return NULL;
28758 : return gen_split_2695 (insn, operands);
28759 :
28760 : default:
28761 : return NULL;
28762 : }
28763 :
28764 : case IOR:
28765 : switch (pattern537 (x2))
28766 : {
28767 : case 0:
28768 : if (!((
28769 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28770 : ((64 == 64 || TARGET_AVX512VL
28771 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28772 : && ix86_pre_reload_split ()
28773 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28774 : STRIP_UNARY (operands[4]))
28775 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28776 : STRIP_UNARY (operands[4]))
28777 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28778 : STRIP_UNARY (operands[3]))
28779 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28780 : STRIP_UNARY (operands[3])))) &&
28781 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28782 : (TARGET_AVX512F)) &&
28783 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28784 : ( 1)))
28785 : return NULL;
28786 : return gen_split_2401 (insn, operands);
28787 :
28788 : case 1:
28789 : if (!((
28790 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28791 : ((32 == 64 || TARGET_AVX512VL
28792 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28793 : && ix86_pre_reload_split ()
28794 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28795 : STRIP_UNARY (operands[4]))
28796 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28797 : STRIP_UNARY (operands[4]))
28798 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28799 : STRIP_UNARY (operands[3]))
28800 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28801 : STRIP_UNARY (operands[3])))) &&
28802 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28803 : (TARGET_AVX)) &&
28804 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28805 : ( 1)))
28806 : return NULL;
28807 : return gen_split_2428 (insn, operands);
28808 :
28809 : case 2:
28810 : if (!(
28811 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28812 : ((16 == 64 || TARGET_AVX512VL
28813 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28814 : && ix86_pre_reload_split ()
28815 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28816 : STRIP_UNARY (operands[4]))
28817 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28818 : STRIP_UNARY (operands[4]))
28819 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28820 : STRIP_UNARY (operands[3]))
28821 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28822 : STRIP_UNARY (operands[3])))) &&
28823 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28824 : ( 1)))
28825 : return NULL;
28826 : return gen_split_2455 (insn, operands);
28827 :
28828 : case 3:
28829 : if (!((
28830 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28831 : ((64 == 64 || TARGET_AVX512VL
28832 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28833 : && ix86_pre_reload_split ()
28834 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28835 : STRIP_UNARY (operands[4]))
28836 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28837 : STRIP_UNARY (operands[4]))
28838 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28839 : STRIP_UNARY (operands[3]))
28840 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28841 : STRIP_UNARY (operands[3])))) &&
28842 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28843 : (TARGET_AVX512F)) &&
28844 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28845 : ( 1)))
28846 : return NULL;
28847 : return gen_split_2482 (insn, operands);
28848 :
28849 : case 4:
28850 : if (!((
28851 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28852 : ((32 == 64 || TARGET_AVX512VL
28853 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28854 : && ix86_pre_reload_split ()
28855 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28856 : STRIP_UNARY (operands[4]))
28857 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28858 : STRIP_UNARY (operands[4]))
28859 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28860 : STRIP_UNARY (operands[3]))
28861 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28862 : STRIP_UNARY (operands[3])))) &&
28863 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28864 : (TARGET_AVX)) &&
28865 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28866 : ( 1)))
28867 : return NULL;
28868 : return gen_split_2509 (insn, operands);
28869 :
28870 : case 5:
28871 : if (!(
28872 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28873 : ((16 == 64 || TARGET_AVX512VL
28874 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28875 : && ix86_pre_reload_split ()
28876 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28877 : STRIP_UNARY (operands[4]))
28878 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28879 : STRIP_UNARY (operands[4]))
28880 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28881 : STRIP_UNARY (operands[3]))
28882 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28883 : STRIP_UNARY (operands[3])))) &&
28884 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28885 : ( 1)))
28886 : return NULL;
28887 : return gen_split_2536 (insn, operands);
28888 :
28889 : case 6:
28890 : if (!((
28891 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28892 : ((64 == 64 || TARGET_AVX512VL
28893 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28894 : && ix86_pre_reload_split ()
28895 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28896 : STRIP_UNARY (operands[4]))
28897 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28898 : STRIP_UNARY (operands[4]))
28899 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28900 : STRIP_UNARY (operands[3]))
28901 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28902 : STRIP_UNARY (operands[3])))) &&
28903 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28904 : (TARGET_AVX512F)) &&
28905 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28906 : ( 1)))
28907 : return NULL;
28908 : return gen_split_2563 (insn, operands);
28909 :
28910 : case 7:
28911 : if (!((
28912 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28913 : ((32 == 64 || TARGET_AVX512VL
28914 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28915 : && ix86_pre_reload_split ()
28916 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28917 : STRIP_UNARY (operands[4]))
28918 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28919 : STRIP_UNARY (operands[4]))
28920 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28921 : STRIP_UNARY (operands[3]))
28922 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28923 : STRIP_UNARY (operands[3])))) &&
28924 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28925 : (TARGET_AVX)) &&
28926 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28927 : ( 1)))
28928 : return NULL;
28929 : return gen_split_2590 (insn, operands);
28930 :
28931 : case 8:
28932 : if (!(
28933 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28934 : ((16 == 64 || TARGET_AVX512VL
28935 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28936 : && ix86_pre_reload_split ()
28937 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28938 : STRIP_UNARY (operands[4]))
28939 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28940 : STRIP_UNARY (operands[4]))
28941 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28942 : STRIP_UNARY (operands[3]))
28943 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28944 : STRIP_UNARY (operands[3])))) &&
28945 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28946 : ( 1)))
28947 : return NULL;
28948 : return gen_split_2617 (insn, operands);
28949 :
28950 : case 9:
28951 : if (!((
28952 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28953 : ((64 == 64 || TARGET_AVX512VL
28954 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28955 : && ix86_pre_reload_split ()
28956 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28957 : STRIP_UNARY (operands[4]))
28958 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28959 : STRIP_UNARY (operands[4]))
28960 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28961 : STRIP_UNARY (operands[3]))
28962 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28963 : STRIP_UNARY (operands[3])))) &&
28964 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28965 : (TARGET_AVX512F)) &&
28966 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28967 : ( 1)))
28968 : return NULL;
28969 : return gen_split_2644 (insn, operands);
28970 :
28971 : case 10:
28972 : if (!((
28973 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28974 : ((32 == 64 || TARGET_AVX512VL
28975 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28976 : && ix86_pre_reload_split ()
28977 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28978 : STRIP_UNARY (operands[4]))
28979 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28980 : STRIP_UNARY (operands[4]))
28981 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28982 : STRIP_UNARY (operands[3]))
28983 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28984 : STRIP_UNARY (operands[3])))) &&
28985 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28986 : (TARGET_AVX)) &&
28987 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28988 : ( 1)))
28989 : return NULL;
28990 : return gen_split_2671 (insn, operands);
28991 :
28992 : case 11:
28993 : if (!(
28994 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28995 : ((16 == 64 || TARGET_AVX512VL
28996 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28997 : && ix86_pre_reload_split ()
28998 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28999 : STRIP_UNARY (operands[4]))
29000 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29001 : STRIP_UNARY (operands[4]))
29002 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29003 : STRIP_UNARY (operands[3]))
29004 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29005 : STRIP_UNARY (operands[3])))) &&
29006 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29007 : ( 1)))
29008 : return NULL;
29009 : return gen_split_2698 (insn, operands);
29010 :
29011 : default:
29012 : return NULL;
29013 : }
29014 :
29015 : case XOR:
29016 : switch (pattern537 (x2))
29017 : {
29018 : case 0:
29019 : if (!((
29020 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29021 : ((64 == 64 || TARGET_AVX512VL
29022 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29023 : && ix86_pre_reload_split ()
29024 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29025 : STRIP_UNARY (operands[4]))
29026 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29027 : STRIP_UNARY (operands[4]))
29028 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29029 : STRIP_UNARY (operands[3]))
29030 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29031 : STRIP_UNARY (operands[3])))) &&
29032 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29033 : (TARGET_AVX512F)) &&
29034 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29035 : ( 1)))
29036 : return NULL;
29037 : return gen_split_2404 (insn, operands);
29038 :
29039 : case 1:
29040 : if (!((
29041 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29042 : ((32 == 64 || TARGET_AVX512VL
29043 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29044 : && ix86_pre_reload_split ()
29045 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29046 : STRIP_UNARY (operands[4]))
29047 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29048 : STRIP_UNARY (operands[4]))
29049 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29050 : STRIP_UNARY (operands[3]))
29051 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29052 : STRIP_UNARY (operands[3])))) &&
29053 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29054 : (TARGET_AVX)) &&
29055 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29056 : ( 1)))
29057 : return NULL;
29058 : return gen_split_2431 (insn, operands);
29059 :
29060 : case 2:
29061 : if (!(
29062 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29063 : ((16 == 64 || TARGET_AVX512VL
29064 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29065 : && ix86_pre_reload_split ()
29066 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29067 : STRIP_UNARY (operands[4]))
29068 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29069 : STRIP_UNARY (operands[4]))
29070 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29071 : STRIP_UNARY (operands[3]))
29072 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29073 : STRIP_UNARY (operands[3])))) &&
29074 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29075 : ( 1)))
29076 : return NULL;
29077 : return gen_split_2458 (insn, operands);
29078 :
29079 : case 3:
29080 : if (!((
29081 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29082 : ((64 == 64 || TARGET_AVX512VL
29083 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29084 : && ix86_pre_reload_split ()
29085 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29086 : STRIP_UNARY (operands[4]))
29087 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29088 : STRIP_UNARY (operands[4]))
29089 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29090 : STRIP_UNARY (operands[3]))
29091 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29092 : STRIP_UNARY (operands[3])))) &&
29093 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29094 : (TARGET_AVX512F)) &&
29095 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29096 : ( 1)))
29097 : return NULL;
29098 : return gen_split_2485 (insn, operands);
29099 :
29100 : case 4:
29101 : if (!((
29102 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29103 : ((32 == 64 || TARGET_AVX512VL
29104 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29105 : && ix86_pre_reload_split ()
29106 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29107 : STRIP_UNARY (operands[4]))
29108 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29109 : STRIP_UNARY (operands[4]))
29110 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29111 : STRIP_UNARY (operands[3]))
29112 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29113 : STRIP_UNARY (operands[3])))) &&
29114 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29115 : (TARGET_AVX)) &&
29116 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29117 : ( 1)))
29118 : return NULL;
29119 : return gen_split_2512 (insn, operands);
29120 :
29121 : case 5:
29122 : if (!(
29123 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29124 : ((16 == 64 || TARGET_AVX512VL
29125 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29126 : && ix86_pre_reload_split ()
29127 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29128 : STRIP_UNARY (operands[4]))
29129 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29130 : STRIP_UNARY (operands[4]))
29131 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29132 : STRIP_UNARY (operands[3]))
29133 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29134 : STRIP_UNARY (operands[3])))) &&
29135 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29136 : ( 1)))
29137 : return NULL;
29138 : return gen_split_2539 (insn, operands);
29139 :
29140 : case 6:
29141 : if (!((
29142 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29143 : ((64 == 64 || TARGET_AVX512VL
29144 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29145 : && ix86_pre_reload_split ()
29146 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29147 : STRIP_UNARY (operands[4]))
29148 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29149 : STRIP_UNARY (operands[4]))
29150 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29151 : STRIP_UNARY (operands[3]))
29152 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29153 : STRIP_UNARY (operands[3])))) &&
29154 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29155 : (TARGET_AVX512F)) &&
29156 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29157 : ( 1)))
29158 : return NULL;
29159 : return gen_split_2566 (insn, operands);
29160 :
29161 : case 7:
29162 : if (!((
29163 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29164 : ((32 == 64 || TARGET_AVX512VL
29165 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29166 : && ix86_pre_reload_split ()
29167 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29168 : STRIP_UNARY (operands[4]))
29169 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29170 : STRIP_UNARY (operands[4]))
29171 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29172 : STRIP_UNARY (operands[3]))
29173 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29174 : STRIP_UNARY (operands[3])))) &&
29175 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29176 : (TARGET_AVX)) &&
29177 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29178 : ( 1)))
29179 : return NULL;
29180 : return gen_split_2593 (insn, operands);
29181 :
29182 : case 8:
29183 : if (!(
29184 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29185 : ((16 == 64 || TARGET_AVX512VL
29186 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29187 : && ix86_pre_reload_split ()
29188 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29189 : STRIP_UNARY (operands[4]))
29190 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29191 : STRIP_UNARY (operands[4]))
29192 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29193 : STRIP_UNARY (operands[3]))
29194 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29195 : STRIP_UNARY (operands[3])))) &&
29196 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29197 : ( 1)))
29198 : return NULL;
29199 : return gen_split_2620 (insn, operands);
29200 :
29201 : case 9:
29202 : if (!((
29203 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29204 : ((64 == 64 || TARGET_AVX512VL
29205 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29206 : && ix86_pre_reload_split ()
29207 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29208 : STRIP_UNARY (operands[4]))
29209 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29210 : STRIP_UNARY (operands[4]))
29211 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29212 : STRIP_UNARY (operands[3]))
29213 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29214 : STRIP_UNARY (operands[3])))) &&
29215 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29216 : (TARGET_AVX512F)) &&
29217 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29218 : ( 1)))
29219 : return NULL;
29220 : return gen_split_2647 (insn, operands);
29221 :
29222 : case 10:
29223 : if (!((
29224 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29225 : ((32 == 64 || TARGET_AVX512VL
29226 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29227 : && ix86_pre_reload_split ()
29228 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29229 : STRIP_UNARY (operands[4]))
29230 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29231 : STRIP_UNARY (operands[4]))
29232 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29233 : STRIP_UNARY (operands[3]))
29234 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29235 : STRIP_UNARY (operands[3])))) &&
29236 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29237 : (TARGET_AVX)) &&
29238 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29239 : ( 1)))
29240 : return NULL;
29241 : return gen_split_2674 (insn, operands);
29242 :
29243 : case 11:
29244 : if (!(
29245 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29246 : ((16 == 64 || TARGET_AVX512VL
29247 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29248 : && ix86_pre_reload_split ()
29249 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29250 : STRIP_UNARY (operands[4]))
29251 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29252 : STRIP_UNARY (operands[4]))
29253 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29254 : STRIP_UNARY (operands[3]))
29255 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29256 : STRIP_UNARY (operands[3])))) &&
29257 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29258 : ( 1)))
29259 : return NULL;
29260 : return gen_split_2701 (insn, operands);
29261 :
29262 : default:
29263 : return NULL;
29264 : }
29265 :
29266 : default:
29267 : return NULL;
29268 : }
29269 :
29270 : case XOR:
29271 : return split_62 (x1, insn);
29272 :
29273 : case VEC_DUPLICATE:
29274 : x4 = XEXP (x3, 0);
29275 : if (GET_CODE (x4) != NOT)
29276 : return NULL;
29277 : x6 = XEXP (x4, 0);
29278 : operands[1] = x6;
29279 : x5 = XEXP (x2, 1);
29280 : operands[2] = x5;
29281 : switch (GET_MODE (operands[0]))
29282 : {
29283 : case E_V4SImode:
29284 : if (pattern1073 (x2,
29285 : E_V4SImode,
29286 : E_SImode) != 0)
29287 : return NULL;
29288 : if (register_operand (operands[1], E_SImode)
29289 : &&
29290 : #line 18955 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29291 : (TARGET_SSE))
29292 : return gen_split_3436 (insn, operands);
29293 : if (!nonimmediate_operand (operands[1], E_SImode)
29294 : || !
29295 : #line 18971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29296 : (TARGET_AVX2))
29297 : return NULL;
29298 : return gen_split_3446 (insn, operands);
29299 :
29300 : case E_V2DImode:
29301 : if (pattern1073 (x2,
29302 : E_V2DImode,
29303 : E_DImode) != 0)
29304 : return NULL;
29305 : if (register_operand (operands[1], E_DImode)
29306 : &&
29307 : #line 18955 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29308 : (TARGET_SSE))
29309 : return gen_split_3437 (insn, operands);
29310 : if (!nonimmediate_operand (operands[1], E_DImode)
29311 : || !
29312 : #line 18971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29313 : (TARGET_AVX2))
29314 : return NULL;
29315 : return gen_split_3449 (insn, operands);
29316 :
29317 : case E_V64QImode:
29318 : if (pattern604 (x2,
29319 : E_V64QImode,
29320 : E_QImode) != 0
29321 : || !(
29322 : #line 18971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29323 : (TARGET_AVX2) &&
29324 : #line 572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29325 : (TARGET_AVX512BW)))
29326 : return NULL;
29327 : return gen_split_3438 (insn, operands);
29328 :
29329 : case E_V32QImode:
29330 : if (pattern604 (x2,
29331 : E_V32QImode,
29332 : E_QImode) != 0
29333 : || !
29334 : #line 18971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29335 : (TARGET_AVX2))
29336 : return NULL;
29337 : return gen_split_3439 (insn, operands);
29338 :
29339 : case E_V16QImode:
29340 : if (pattern604 (x2,
29341 : E_V16QImode,
29342 : E_QImode) != 0
29343 : || !
29344 : #line 18971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29345 : (TARGET_AVX2))
29346 : return NULL;
29347 : return gen_split_3440 (insn, operands);
29348 :
29349 : case E_V32HImode:
29350 : if (pattern604 (x2,
29351 : E_V32HImode,
29352 : E_HImode) != 0
29353 : || !(
29354 : #line 18971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29355 : (TARGET_AVX2) &&
29356 : #line 573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29357 : (TARGET_AVX512BW)))
29358 : return NULL;
29359 : return gen_split_3441 (insn, operands);
29360 :
29361 : case E_V16HImode:
29362 : if (pattern604 (x2,
29363 : E_V16HImode,
29364 : E_HImode) != 0
29365 : || !
29366 : #line 18971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29367 : (TARGET_AVX2))
29368 : return NULL;
29369 : return gen_split_3442 (insn, operands);
29370 :
29371 : case E_V8HImode:
29372 : if (pattern604 (x2,
29373 : E_V8HImode,
29374 : E_HImode) != 0
29375 : || !
29376 : #line 18971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29377 : (TARGET_AVX2))
29378 : return NULL;
29379 : return gen_split_3443 (insn, operands);
29380 :
29381 : case E_V16SImode:
29382 : if (pattern604 (x2,
29383 : E_V16SImode,
29384 : E_SImode) != 0
29385 : || !(
29386 : #line 18971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29387 : (TARGET_AVX2) &&
29388 : #line 574 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29389 : (TARGET_AVX512F)))
29390 : return NULL;
29391 : return gen_split_3444 (insn, operands);
29392 :
29393 : case E_V8SImode:
29394 : if (pattern604 (x2,
29395 : E_V8SImode,
29396 : E_SImode) != 0
29397 : || !
29398 : #line 18971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29399 : (TARGET_AVX2))
29400 : return NULL;
29401 : return gen_split_3445 (insn, operands);
29402 :
29403 : case E_V8DImode:
29404 : if (pattern604 (x2,
29405 : E_V8DImode,
29406 : E_DImode) != 0
29407 : || !(
29408 : #line 18971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29409 : (TARGET_AVX2) &&
29410 : #line 575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29411 : (TARGET_AVX512F)))
29412 : return NULL;
29413 : return gen_split_3447 (insn, operands);
29414 :
29415 : case E_V4DImode:
29416 : if (pattern604 (x2,
29417 : E_V4DImode,
29418 : E_DImode) != 0
29419 : || !
29420 : #line 18971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29421 : (TARGET_AVX2))
29422 : return NULL;
29423 : return gen_split_3448 (insn, operands);
29424 :
29425 : default:
29426 : return NULL;
29427 : }
29428 :
29429 : default:
29430 : return NULL;
29431 : }
29432 : }
29433 :
29434 : rtx_insn *
29435 : split_85 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
29436 : {
29437 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
29438 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
29439 : rtx x10, x11, x12, x13;
29440 : rtx_insn *res ATTRIBUTE_UNUSED;
29441 : x2 = XEXP (x1, 1);
29442 : x3 = XEXP (x2, 0);
29443 : switch (GET_CODE (x3))
29444 : {
29445 : case UNSPEC:
29446 : if (XVECLEN (x3, 0) != 1
29447 : || XINT (x3, 1) != 178)
29448 : return NULL;
29449 : x4 = XEXP (x2, 2);
29450 : if (GET_CODE (x4) != AND
29451 : || GET_MODE (x4) != E_QImode)
29452 : return NULL;
29453 : x5 = XEXP (x4, 1);
29454 : if (GET_CODE (x5) != CONST_INT)
29455 : return NULL;
29456 : x6 = XVECEXP (x3, 0, 0);
29457 : operands[1] = x6;
29458 : x7 = XEXP (x2, 1);
29459 : operands[2] = x7;
29460 : switch (pattern1111 (x2))
29461 : {
29462 : case 0:
29463 : if (!((
29464 : #line 1636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29465 : (TARGET_AVX512F) &&
29466 : #line 521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29467 : (TARGET_AVX512VL)) &&
29468 : #line 1638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29469 : ( 1)))
29470 : return NULL;
29471 : return gen_split_1212 (insn, operands);
29472 :
29473 : case 1:
29474 : if (!((
29475 : #line 1636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29476 : (TARGET_AVX512F) &&
29477 : #line 521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29478 : (TARGET_AVX512VL)) &&
29479 : #line 1638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29480 : ( 1)))
29481 : return NULL;
29482 : return gen_split_1213 (insn, operands);
29483 :
29484 : case 2:
29485 : if (!((
29486 : #line 1636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29487 : (TARGET_AVX512F) &&
29488 : #line 522 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29489 : (TARGET_AVX512VL)) &&
29490 : #line 1638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29491 : ( 1)))
29492 : return NULL;
29493 : return gen_split_1214 (insn, operands);
29494 :
29495 : case 3:
29496 : if (!((
29497 : #line 1636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29498 : (TARGET_AVX512F) &&
29499 : #line 522 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29500 : (TARGET_AVX512VL)) &&
29501 : #line 1638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29502 : ( 1)))
29503 : return NULL;
29504 : return gen_split_1215 (insn, operands);
29505 :
29506 : case 4:
29507 : if (!((
29508 : #line 1655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29509 : (TARGET_AVX512F) &&
29510 : #line 528 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29511 : (TARGET_AVX512VL)) &&
29512 : #line 1657 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29513 : ( 1)))
29514 : return NULL;
29515 : return gen_split_1216 (insn, operands);
29516 :
29517 : case 5:
29518 : if (!((
29519 : #line 1655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29520 : (TARGET_AVX512F) &&
29521 : #line 528 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29522 : (TARGET_AVX512VL)) &&
29523 : #line 1657 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29524 : ( 1)))
29525 : return NULL;
29526 : return gen_split_1217 (insn, operands);
29527 :
29528 : default:
29529 : return NULL;
29530 : }
29531 :
29532 : case MINUS:
29533 : x7 = XEXP (x2, 1);
29534 : if (GET_CODE (x7) != PLUS)
29535 : return NULL;
29536 : operands[6] = x2;
29537 : x8 = XEXP (x3, 0);
29538 : operands[1] = x8;
29539 : x9 = XEXP (x3, 1);
29540 : operands[2] = x9;
29541 : x10 = XEXP (x7, 0);
29542 : operands[3] = x10;
29543 : x11 = XEXP (x7, 1);
29544 : operands[4] = x11;
29545 : x4 = XEXP (x2, 2);
29546 : operands[5] = x4;
29547 : if (!const_int_operand (operands[5], E_VOIDmode))
29548 : return NULL;
29549 : switch (GET_MODE (operands[0]))
29550 : {
29551 : case E_V8SFmode:
29552 : if (pattern1456 (x2,
29553 : E_V8SFmode) != 0
29554 : || !(
29555 : #line 3607 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29556 : (TARGET_SSE3
29557 : && can_create_pseudo_p ()
29558 : && ((rtx_equal_p (operands[1], operands[3])
29559 : && rtx_equal_p (operands[2], operands[4]))
29560 : || (rtx_equal_p (operands[1], operands[4])
29561 : && rtx_equal_p (operands[2], operands[3])))) &&
29562 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29563 : (TARGET_AVX)))
29564 : return NULL;
29565 : return gen_split_1358 (insn, operands);
29566 :
29567 : case E_V4SFmode:
29568 : if (pattern1456 (x2,
29569 : E_V4SFmode) != 0
29570 : || !
29571 : #line 3607 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29572 : (TARGET_SSE3
29573 : && can_create_pseudo_p ()
29574 : && ((rtx_equal_p (operands[1], operands[3])
29575 : && rtx_equal_p (operands[2], operands[4]))
29576 : || (rtx_equal_p (operands[1], operands[4])
29577 : && rtx_equal_p (operands[2], operands[3])))))
29578 : return NULL;
29579 : return gen_split_1359 (insn, operands);
29580 :
29581 : case E_V4DFmode:
29582 : if (pattern1456 (x2,
29583 : E_V4DFmode) != 0
29584 : || !(
29585 : #line 3607 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29586 : (TARGET_SSE3
29587 : && can_create_pseudo_p ()
29588 : && ((rtx_equal_p (operands[1], operands[3])
29589 : && rtx_equal_p (operands[2], operands[4]))
29590 : || (rtx_equal_p (operands[1], operands[4])
29591 : && rtx_equal_p (operands[2], operands[3])))) &&
29592 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29593 : (TARGET_AVX)))
29594 : return NULL;
29595 : return gen_split_1360 (insn, operands);
29596 :
29597 : case E_V2DFmode:
29598 : if (pattern1456 (x2,
29599 : E_V2DFmode) != 0
29600 : || !(
29601 : #line 3607 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29602 : (TARGET_SSE3
29603 : && can_create_pseudo_p ()
29604 : && ((rtx_equal_p (operands[1], operands[3])
29605 : && rtx_equal_p (operands[2], operands[4]))
29606 : || (rtx_equal_p (operands[1], operands[4])
29607 : && rtx_equal_p (operands[2], operands[3])))) &&
29608 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29609 : (TARGET_SSE2)))
29610 : return NULL;
29611 : return gen_split_1361 (insn, operands);
29612 :
29613 : default:
29614 : return NULL;
29615 : }
29616 :
29617 : case PLUS:
29618 : x7 = XEXP (x2, 1);
29619 : if (GET_CODE (x7) != MINUS)
29620 : return NULL;
29621 : operands[6] = x2;
29622 : x8 = XEXP (x3, 0);
29623 : operands[1] = x8;
29624 : x9 = XEXP (x3, 1);
29625 : operands[2] = x9;
29626 : x10 = XEXP (x7, 0);
29627 : operands[3] = x10;
29628 : x11 = XEXP (x7, 1);
29629 : operands[4] = x11;
29630 : x4 = XEXP (x2, 2);
29631 : operands[5] = x4;
29632 : if (!const_int_operand (operands[5], E_VOIDmode))
29633 : return NULL;
29634 : switch (GET_MODE (operands[0]))
29635 : {
29636 : case E_V8SFmode:
29637 : if (pattern1457 (x2,
29638 : E_V8SFmode) != 0
29639 : || !(
29640 : #line 3629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29641 : (TARGET_SSE3
29642 : && can_create_pseudo_p ()
29643 : && ((rtx_equal_p (operands[1], operands[3])
29644 : && rtx_equal_p (operands[2], operands[4]))
29645 : || (rtx_equal_p (operands[1], operands[4])
29646 : && rtx_equal_p (operands[2], operands[3])))) &&
29647 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29648 : (TARGET_AVX)))
29649 : return NULL;
29650 : return gen_split_1362 (insn, operands);
29651 :
29652 : case E_V4SFmode:
29653 : if (pattern1457 (x2,
29654 : E_V4SFmode) != 0
29655 : || !
29656 : #line 3629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29657 : (TARGET_SSE3
29658 : && can_create_pseudo_p ()
29659 : && ((rtx_equal_p (operands[1], operands[3])
29660 : && rtx_equal_p (operands[2], operands[4]))
29661 : || (rtx_equal_p (operands[1], operands[4])
29662 : && rtx_equal_p (operands[2], operands[3])))))
29663 : return NULL;
29664 : return gen_split_1363 (insn, operands);
29665 :
29666 : case E_V4DFmode:
29667 : if (pattern1457 (x2,
29668 : E_V4DFmode) != 0
29669 : || !(
29670 : #line 3629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29671 : (TARGET_SSE3
29672 : && can_create_pseudo_p ()
29673 : && ((rtx_equal_p (operands[1], operands[3])
29674 : && rtx_equal_p (operands[2], operands[4]))
29675 : || (rtx_equal_p (operands[1], operands[4])
29676 : && rtx_equal_p (operands[2], operands[3])))) &&
29677 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29678 : (TARGET_AVX)))
29679 : return NULL;
29680 : return gen_split_1364 (insn, operands);
29681 :
29682 : case E_V2DFmode:
29683 : if (pattern1457 (x2,
29684 : E_V2DFmode) != 0
29685 : || !(
29686 : #line 3629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29687 : (TARGET_SSE3
29688 : && can_create_pseudo_p ()
29689 : && ((rtx_equal_p (operands[1], operands[3])
29690 : && rtx_equal_p (operands[2], operands[4]))
29691 : || (rtx_equal_p (operands[1], operands[4])
29692 : && rtx_equal_p (operands[2], operands[3])))) &&
29693 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29694 : (TARGET_SSE2)))
29695 : return NULL;
29696 : return gen_split_1365 (insn, operands);
29697 :
29698 : default:
29699 : return NULL;
29700 : }
29701 :
29702 : case CONST_INT:
29703 : case CONST_DOUBLE:
29704 : case CONST_VECTOR:
29705 : case REG:
29706 : case SUBREG:
29707 : case MEM:
29708 : return split_61 (x1, insn);
29709 :
29710 : case VEC_DUPLICATE:
29711 : x8 = XEXP (x3, 0);
29712 : switch (GET_CODE (x8))
29713 : {
29714 : case VEC_SELECT:
29715 : x12 = XEXP (x8, 1);
29716 : if (GET_CODE (x12) != PARALLEL
29717 : || XVECLEN (x12, 0) != 1)
29718 : return NULL;
29719 : x13 = XVECEXP (x12, 0, 0);
29720 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
29721 : return NULL;
29722 : x4 = XEXP (x2, 2);
29723 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
29724 : return NULL;
29725 : switch (pattern1014 (x2))
29726 : {
29727 : case 0:
29728 : if (!(
29729 : #line 12366 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29730 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29731 : #line 12368 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29732 : ( 1)))
29733 : return NULL;
29734 : return gen_split_1622 (insn, operands);
29735 :
29736 : case 1:
29737 : if (!(
29738 : #line 12366 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29739 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29740 : #line 12368 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29741 : ( 1)))
29742 : return NULL;
29743 : return gen_split_1623 (insn, operands);
29744 :
29745 : case 2:
29746 : if (!(
29747 : #line 12366 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29748 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29749 : #line 12368 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29750 : ( 1)))
29751 : return NULL;
29752 : return gen_split_1624 (insn, operands);
29753 :
29754 : default:
29755 : return NULL;
29756 : }
29757 :
29758 : case ZERO_EXTEND:
29759 : switch (pattern315 (x2))
29760 : {
29761 : case 0:
29762 : if (!((
29763 : #line 12406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29764 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()) &&
29765 : #line 795 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29766 : (TARGET_AVX512F)) &&
29767 : #line 12408 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29768 : ( 1)))
29769 : return NULL;
29770 : return gen_split_1625 (insn, operands);
29771 :
29772 : case 1:
29773 : if (!(
29774 : #line 12406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29775 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()) &&
29776 : #line 12408 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29777 : ( 1)))
29778 : return NULL;
29779 : return gen_split_1626 (insn, operands);
29780 :
29781 : case 2:
29782 : if (!(
29783 : #line 12406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29784 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()) &&
29785 : #line 12408 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29786 : ( 1)))
29787 : return NULL;
29788 : return gen_split_1627 (insn, operands);
29789 :
29790 : case 3:
29791 : if (!((
29792 : #line 12406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29793 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()) &&
29794 : #line 796 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29795 : (TARGET_AVX512F)) &&
29796 : #line 12408 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29797 : ( 1)))
29798 : return NULL;
29799 : return gen_split_1628 (insn, operands);
29800 :
29801 : case 4:
29802 : if (!((
29803 : #line 12520 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29804 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29805 : #line 611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29806 : (TARGET_AVX512F)) &&
29807 : #line 12522 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29808 : ( 1)))
29809 : return NULL;
29810 : return gen_split_1632 (insn, operands);
29811 :
29812 : case 5:
29813 : if (!(
29814 : #line 12406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29815 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()) &&
29816 : #line 12408 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29817 : ( 1)))
29818 : return NULL;
29819 : return gen_split_1629 (insn, operands);
29820 :
29821 : case 6:
29822 : if (!((
29823 : #line 12520 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29824 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29825 : #line 611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29826 : (TARGET_AVX)) &&
29827 : #line 12522 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29828 : ( 1)))
29829 : return NULL;
29830 : return gen_split_1633 (insn, operands);
29831 :
29832 : case 7:
29833 : if (!(
29834 : #line 12406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29835 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()) &&
29836 : #line 12408 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29837 : ( 1)))
29838 : return NULL;
29839 : return gen_split_1630 (insn, operands);
29840 :
29841 : case 8:
29842 : if (!(
29843 : #line 12520 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29844 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29845 : #line 12522 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29846 : ( 1)))
29847 : return NULL;
29848 : return gen_split_1634 (insn, operands);
29849 :
29850 : default:
29851 : return NULL;
29852 : }
29853 :
29854 : case CONST_INT:
29855 : case CONST_WIDE_INT:
29856 : case CONST_POLY_INT:
29857 : case CONST_FIXED:
29858 : case CONST_DOUBLE:
29859 : case CONST_VECTOR:
29860 : case CONST:
29861 : case REG:
29862 : case SUBREG:
29863 : case LABEL_REF:
29864 : case SYMBOL_REF:
29865 : case HIGH:
29866 : x7 = XEXP (x2, 1);
29867 : switch (GET_CODE (x7))
29868 : {
29869 : case SUBREG:
29870 : case MEM:
29871 : if (!rtx_equal_p (x7, operands[0]))
29872 : return NULL;
29873 : x4 = XEXP (x2, 2);
29874 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
29875 : return NULL;
29876 : operands[1] = x8;
29877 : switch (GET_MODE (operands[0]))
29878 : {
29879 : case E_V4SImode:
29880 : if (pattern1196 (x2,
29881 : E_SImode,
29882 : E_V4SImode) != 0
29883 : || !
29884 : #line 12596 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29885 : (TARGET_SSE && reload_completed))
29886 : return NULL;
29887 : return gen_split_1636 (insn, operands);
29888 :
29889 : case E_V4SFmode:
29890 : if (pattern1196 (x2,
29891 : E_SFmode,
29892 : E_V4SFmode) != 0
29893 : || !
29894 : #line 12596 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29895 : (TARGET_SSE && reload_completed))
29896 : return NULL;
29897 : return gen_split_1637 (insn, operands);
29898 :
29899 : default:
29900 : return NULL;
29901 : }
29902 :
29903 : case REG:
29904 : operands[1] = x7;
29905 : operands[2] = x8;
29906 : x4 = XEXP (x2, 2);
29907 : operands[3] = x4;
29908 : if (!const_int_operand (operands[3], E_SImode))
29909 : return NULL;
29910 : switch (GET_MODE (operands[0]))
29911 : {
29912 : case E_V8HImode:
29913 : if (pattern1072 (x2,
29914 : E_V8HImode,
29915 : E_HImode) != 0
29916 : || !
29917 : #line 20287 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29918 : (TARGET_AVX2 && reload_completed
29919 : && INTVAL (operands[3]) > 1
29920 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
29921 : < GET_MODE_NUNITS (V8HImode))))
29922 : return NULL;
29923 : return gen_split_3474 (insn, operands);
29924 :
29925 : case E_V8HFmode:
29926 : if (pattern1072 (x2,
29927 : E_V8HFmode,
29928 : E_HFmode) != 0
29929 : || !
29930 : #line 20287 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29931 : (TARGET_AVX2 && reload_completed
29932 : && INTVAL (operands[3]) > 1
29933 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
29934 : < GET_MODE_NUNITS (V8HFmode))))
29935 : return NULL;
29936 : return gen_split_3475 (insn, operands);
29937 :
29938 : case E_V8BFmode:
29939 : if (pattern1072 (x2,
29940 : E_V8BFmode,
29941 : E_BFmode) != 0
29942 : || !
29943 : #line 20287 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29944 : (TARGET_AVX2 && reload_completed
29945 : && INTVAL (operands[3]) > 1
29946 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
29947 : < GET_MODE_NUNITS (V8BFmode))))
29948 : return NULL;
29949 : return gen_split_3476 (insn, operands);
29950 :
29951 : default:
29952 : return NULL;
29953 : }
29954 :
29955 : default:
29956 : return NULL;
29957 : }
29958 :
29959 : default:
29960 : return NULL;
29961 : }
29962 :
29963 : case SIGN_EXTEND:
29964 : switch (pattern415 (x2))
29965 : {
29966 : case 0:
29967 : if (!(
29968 : #line 24637 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29969 : (TARGET_AVX512VL && TARGET_AVX512BW
29970 : && ix86_pre_reload_split ()) &&
29971 : #line 24640 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29972 : ( 1)))
29973 : return NULL;
29974 : return gen_split_3610 (insn, operands);
29975 :
29976 : case 1:
29977 : if (!(
29978 : #line 24815 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29979 : (TARGET_AVX512VL
29980 : && ix86_pre_reload_split ()) &&
29981 : #line 24818 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29982 : ( 1)))
29983 : return NULL;
29984 : return gen_split_3618 (insn, operands);
29985 :
29986 : case 2:
29987 : if (!(
29988 : #line 25259 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29989 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
29990 : #line 25261 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29991 : ( 1)))
29992 : return NULL;
29993 : return gen_split_3644 (insn, operands);
29994 :
29995 : case 3:
29996 : if (!(
29997 : #line 25103 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29998 : (TARGET_AVX512VL
29999 : && ix86_pre_reload_split ()) &&
30000 : #line 25106 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30001 : ( 1)))
30002 : return NULL;
30003 : return gen_split_3636 (insn, operands);
30004 :
30005 : case 4:
30006 : if (!(
30007 : #line 25513 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30008 : (TARGET_AVX512VL
30009 : && ix86_pre_reload_split ()) &&
30010 : #line 25516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30011 : ( 1)))
30012 : return NULL;
30013 : return gen_split_3655 (insn, operands);
30014 :
30015 : case 5:
30016 : if (!(
30017 : #line 25790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30018 : (TARGET_AVX512VL
30019 : && ix86_pre_reload_split ()) &&
30020 : #line 25793 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30021 : ( 1)))
30022 : return NULL;
30023 : return gen_split_3667 (insn, operands);
30024 :
30025 : case 6:
30026 : if (!(
30027 : #line 24909 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30028 : (TARGET_AVX512VL
30029 : && ix86_pre_reload_split ()) &&
30030 : #line 24912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30031 : ( 1)))
30032 : return NULL;
30033 : return gen_split_3624 (insn, operands);
30034 :
30035 : case 7:
30036 : if (!(
30037 : #line 25349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30038 : (TARGET_AVX512VL
30039 : && ix86_pre_reload_split ()) &&
30040 : #line 25352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30041 : ( 1)))
30042 : return NULL;
30043 : return gen_split_3648 (insn, operands);
30044 :
30045 : case 8:
30046 : if (!(
30047 : #line 25604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30048 : (TARGET_AVX512VL
30049 : && ix86_pre_reload_split ()) &&
30050 : #line 25607 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30051 : ( 1)))
30052 : return NULL;
30053 : return gen_split_3659 (insn, operands);
30054 :
30055 : default:
30056 : return NULL;
30057 : }
30058 :
30059 : case ZERO_EXTEND:
30060 : switch (pattern415 (x2))
30061 : {
30062 : case 0:
30063 : if (!(
30064 : #line 24637 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30065 : (TARGET_AVX512VL && TARGET_AVX512BW
30066 : && ix86_pre_reload_split ()) &&
30067 : #line 24640 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30068 : ( 1)))
30069 : return NULL;
30070 : return gen_split_3611 (insn, operands);
30071 :
30072 : case 1:
30073 : if (!(
30074 : #line 24815 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30075 : (TARGET_AVX512VL
30076 : && ix86_pre_reload_split ()) &&
30077 : #line 24818 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30078 : ( 1)))
30079 : return NULL;
30080 : return gen_split_3619 (insn, operands);
30081 :
30082 : case 2:
30083 : if (!(
30084 : #line 25259 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30085 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
30086 : #line 25261 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30087 : ( 1)))
30088 : return NULL;
30089 : return gen_split_3645 (insn, operands);
30090 :
30091 : case 3:
30092 : if (!(
30093 : #line 25103 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30094 : (TARGET_AVX512VL
30095 : && ix86_pre_reload_split ()) &&
30096 : #line 25106 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30097 : ( 1)))
30098 : return NULL;
30099 : return gen_split_3637 (insn, operands);
30100 :
30101 : case 4:
30102 : if (!(
30103 : #line 25513 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30104 : (TARGET_AVX512VL
30105 : && ix86_pre_reload_split ()) &&
30106 : #line 25516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30107 : ( 1)))
30108 : return NULL;
30109 : return gen_split_3656 (insn, operands);
30110 :
30111 : case 5:
30112 : if (!(
30113 : #line 25790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30114 : (TARGET_AVX512VL
30115 : && ix86_pre_reload_split ()) &&
30116 : #line 25793 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30117 : ( 1)))
30118 : return NULL;
30119 : return gen_split_3668 (insn, operands);
30120 :
30121 : case 6:
30122 : if (!(
30123 : #line 24909 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30124 : (TARGET_AVX512VL
30125 : && ix86_pre_reload_split ()) &&
30126 : #line 24912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30127 : ( 1)))
30128 : return NULL;
30129 : return gen_split_3625 (insn, operands);
30130 :
30131 : case 7:
30132 : if (!(
30133 : #line 25349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30134 : (TARGET_AVX512VL
30135 : && ix86_pre_reload_split ()) &&
30136 : #line 25352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30137 : ( 1)))
30138 : return NULL;
30139 : return gen_split_3649 (insn, operands);
30140 :
30141 : case 8:
30142 : if (!(
30143 : #line 25604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30144 : (TARGET_AVX512VL
30145 : && ix86_pre_reload_split ()) &&
30146 : #line 25607 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30147 : ( 1)))
30148 : return NULL;
30149 : return gen_split_3660 (insn, operands);
30150 :
30151 : default:
30152 : return NULL;
30153 : }
30154 :
30155 : default:
30156 : return NULL;
30157 : }
30158 : }
30159 :
30160 : rtx_insn *
30161 : split_insns (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
30162 : {
30163 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
30164 : rtx x2, x3;
30165 : rtx_insn *res ATTRIBUTE_UNUSED;
30166 : recog_data.insn = NULL;
30167 : switch (GET_CODE (x1))
30168 : {
30169 : case EH_RETURN:
30170 : if (!
30171 : #line 21217 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30172 : (epilogue_completed))
30173 : return NULL;
30174 : return gen_split_875 (insn, operands);
30175 :
30176 : case PARALLEL:
30177 : case UNSPEC:
30178 : case UNSPEC_VOLATILE:
30179 : case SET:
30180 : switch (GET_CODE (x1))
30181 : {
30182 : case SET:
30183 : res = split_14 (x1, insn);
30184 : if (res != NULL_RTX)
30185 : return res;
30186 : break;
30187 :
30188 : case PARALLEL:
30189 : res = split_37 (x1, insn);
30190 : if (res != NULL_RTX)
30191 : return res;
30192 : break;
30193 :
30194 : default:
30195 : break;
30196 : }
30197 : operands[0] = x1;
30198 : if (tls_address_pattern (operands[0], E_VOIDmode)
30199 : &&
30200 : #line 23764 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30201 : (TARGET_TLS_DIRECT_SEG_REFS))
30202 : return gen_split_936 (insn, operands);
30203 : switch (GET_CODE (x1))
30204 : {
30205 : case PARALLEL:
30206 : return split_88 (x1, insn);
30207 :
30208 : case SET:
30209 : x2 = XEXP (x1, 1);
30210 : switch (GET_CODE (x2))
30211 : {
30212 : case NEG:
30213 : res = split_41 (x1, insn);
30214 : if (res != NULL_RTX)
30215 : return res;
30216 : break;
30217 :
30218 : case IF_THEN_ELSE:
30219 : res = split_43 (x1, insn);
30220 : if (res != NULL_RTX)
30221 : return res;
30222 : break;
30223 :
30224 : case UNSPEC:
30225 : res = split_44 (x1, insn);
30226 : if (res != NULL_RTX)
30227 : return res;
30228 : break;
30229 :
30230 : case COMPARE:
30231 : res = split_45 (x1, insn);
30232 : if (res != NULL_RTX)
30233 : return res;
30234 : break;
30235 :
30236 : case NOT:
30237 : res = split_46 (x1, insn);
30238 : if (res != NULL_RTX)
30239 : return res;
30240 : break;
30241 :
30242 : case REG:
30243 : case SUBREG:
30244 : case MEM:
30245 : res = split_47 (x1, insn);
30246 : if (res != NULL_RTX)
30247 : return res;
30248 : break;
30249 :
30250 : case CONST_INT:
30251 : case CONST_DOUBLE:
30252 : case CONST_VECTOR:
30253 : operands[1] = x2;
30254 : x3 = XEXP (x1, 0);
30255 : operands[0] = x3;
30256 : switch (GET_MODE (operands[0]))
30257 : {
30258 : case E_V8QImode:
30259 : if (nonimmediate_gr_operand (operands[0], E_V8QImode)
30260 : && const0_operand (operands[1], E_V8QImode)
30261 : &&
30262 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30263 : (!TARGET_64BIT && reload_completed))
30264 : return gen_split_1024 (insn, operands);
30265 : if (memory_operand (operands[0], E_V8QImode)
30266 : && x86_64_const_vector_operand (operands[1], E_V8QImode)
30267 : && (
30268 : #line 87 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30269 : (TARGET_64BIT) &&
30270 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30271 : ( reload_completed)))
30272 : return gen_split_1060 (insn, operands);
30273 : break;
30274 :
30275 : case E_V4HImode:
30276 : if (nonimmediate_gr_operand (operands[0], E_V4HImode)
30277 : && const0_operand (operands[1], E_V4HImode)
30278 : &&
30279 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30280 : (!TARGET_64BIT && reload_completed))
30281 : return gen_split_1025 (insn, operands);
30282 : if (memory_operand (operands[0], E_V4HImode)
30283 : && x86_64_const_vector_operand (operands[1], E_V4HImode)
30284 : && (
30285 : #line 87 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30286 : (TARGET_64BIT) &&
30287 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30288 : ( reload_completed)))
30289 : return gen_split_1061 (insn, operands);
30290 : break;
30291 :
30292 : case E_V2SImode:
30293 : if (nonimmediate_gr_operand (operands[0], E_V2SImode)
30294 : && const0_operand (operands[1], E_V2SImode)
30295 : &&
30296 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30297 : (!TARGET_64BIT && reload_completed))
30298 : return gen_split_1026 (insn, operands);
30299 : if (memory_operand (operands[0], E_V2SImode)
30300 : && x86_64_const_vector_operand (operands[1], E_V2SImode)
30301 : && (
30302 : #line 89 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30303 : (TARGET_64BIT) &&
30304 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30305 : ( reload_completed)))
30306 : return gen_split_1064 (insn, operands);
30307 : break;
30308 :
30309 : case E_V1DImode:
30310 : if (nonimmediate_gr_operand (operands[0], E_V1DImode)
30311 : && const0_operand (operands[1], E_V1DImode)
30312 : &&
30313 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30314 : (!TARGET_64BIT && reload_completed))
30315 : return gen_split_1027 (insn, operands);
30316 : if (memory_operand (operands[0], E_V1DImode)
30317 : && x86_64_const_vector_operand (operands[1], E_V1DImode)
30318 : && (
30319 : #line 90 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30320 : (TARGET_64BIT) &&
30321 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30322 : ( reload_completed)))
30323 : return gen_split_1066 (insn, operands);
30324 : break;
30325 :
30326 : case E_V2SFmode:
30327 : if (nonimmediate_gr_operand (operands[0], E_V2SFmode)
30328 : && const0_operand (operands[1], E_V2SFmode)
30329 : &&
30330 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30331 : (!TARGET_64BIT && reload_completed))
30332 : return gen_split_1028 (insn, operands);
30333 : if (memory_operand (operands[0], E_V2SFmode)
30334 : && x86_64_const_vector_operand (operands[1], E_V2SFmode)
30335 : && (
30336 : #line 89 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30337 : (TARGET_64BIT) &&
30338 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30339 : ( reload_completed)))
30340 : return gen_split_1065 (insn, operands);
30341 : break;
30342 :
30343 : case E_V4HFmode:
30344 : if (nonimmediate_gr_operand (operands[0], E_V4HFmode)
30345 : && const0_operand (operands[1], E_V4HFmode)
30346 : &&
30347 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30348 : (!TARGET_64BIT && reload_completed))
30349 : return gen_split_1029 (insn, operands);
30350 : if (memory_operand (operands[0], E_V4HFmode)
30351 : && x86_64_const_vector_operand (operands[1], E_V4HFmode)
30352 : && (
30353 : #line 88 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30354 : (TARGET_64BIT) &&
30355 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30356 : ( reload_completed)))
30357 : return gen_split_1062 (insn, operands);
30358 : break;
30359 :
30360 : case E_V4BFmode:
30361 : if (nonimmediate_gr_operand (operands[0], E_V4BFmode)
30362 : && const0_operand (operands[1], E_V4BFmode)
30363 : &&
30364 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30365 : (!TARGET_64BIT && reload_completed))
30366 : return gen_split_1030 (insn, operands);
30367 : if (memory_operand (operands[0], E_V4BFmode)
30368 : && x86_64_const_vector_operand (operands[1], E_V4BFmode)
30369 : && (
30370 : #line 88 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30371 : (TARGET_64BIT) &&
30372 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30373 : ( reload_completed)))
30374 : return gen_split_1063 (insn, operands);
30375 : break;
30376 :
30377 : case E_V2QImode:
30378 : if (memory_operand (operands[0], E_V2QImode)
30379 : && x86_64_const_vector_operand (operands[1], E_V2QImode)
30380 : &&
30381 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30382 : ( reload_completed))
30383 : return gen_split_1054 (insn, operands);
30384 : break;
30385 :
30386 : case E_V4QImode:
30387 : if (memory_operand (operands[0], E_V4QImode)
30388 : && x86_64_const_vector_operand (operands[1], E_V4QImode)
30389 : &&
30390 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30391 : ( reload_completed))
30392 : return gen_split_1055 (insn, operands);
30393 : break;
30394 :
30395 : case E_V2HImode:
30396 : if (memory_operand (operands[0], E_V2HImode)
30397 : && x86_64_const_vector_operand (operands[1], E_V2HImode)
30398 : &&
30399 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30400 : ( reload_completed))
30401 : return gen_split_1056 (insn, operands);
30402 : break;
30403 :
30404 : case E_V1SImode:
30405 : if (memory_operand (operands[0], E_V1SImode)
30406 : && x86_64_const_vector_operand (operands[1], E_V1SImode)
30407 : &&
30408 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30409 : ( reload_completed))
30410 : return gen_split_1057 (insn, operands);
30411 : break;
30412 :
30413 : case E_V2HFmode:
30414 : if (memory_operand (operands[0], E_V2HFmode)
30415 : && x86_64_const_vector_operand (operands[1], E_V2HFmode)
30416 : &&
30417 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30418 : ( reload_completed))
30419 : return gen_split_1058 (insn, operands);
30420 : break;
30421 :
30422 : case E_V2BFmode:
30423 : if (memory_operand (operands[0], E_V2BFmode)
30424 : && x86_64_const_vector_operand (operands[1], E_V2BFmode)
30425 : &&
30426 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30427 : ( reload_completed))
30428 : return gen_split_1059 (insn, operands);
30429 : break;
30430 :
30431 : default:
30432 : break;
30433 : }
30434 : break;
30435 :
30436 : case PLUS:
30437 : res = split_48 (x1, insn);
30438 : if (res != NULL_RTX)
30439 : return res;
30440 : break;
30441 :
30442 : case MINUS:
30443 : res = split_49 (x1, insn);
30444 : if (res != NULL_RTX)
30445 : return res;
30446 : break;
30447 :
30448 : case VEC_SELECT:
30449 : res = split_51 (x1, insn);
30450 : if (res != NULL_RTX)
30451 : return res;
30452 : break;
30453 :
30454 : case LT:
30455 : x3 = XEXP (x1, 0);
30456 : operands[0] = x3;
30457 : switch (pattern240 (x2))
30458 : {
30459 : case 0:
30460 : if ((
30461 : #line 3901 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30462 : (TARGET_MMX_WITH_SSE && ix86_pre_reload_split ()) &&
30463 : #line 3903 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30464 : ( 1)))
30465 : return gen_split_1096 (insn, operands);
30466 : break;
30467 :
30468 : case 1:
30469 : if ((
30470 : #line 3901 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30471 : (TARGET_MMX_WITH_SSE && ix86_pre_reload_split ()) &&
30472 : #line 3903 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30473 : ( 1)))
30474 : return gen_split_1097 (insn, operands);
30475 : break;
30476 :
30477 : case 2:
30478 : if ((
30479 : #line 3990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30480 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30481 : #line 3992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30482 : ( 1)))
30483 : return gen_split_1101 (insn, operands);
30484 : break;
30485 :
30486 : default:
30487 : break;
30488 : }
30489 : break;
30490 :
30491 : case AND:
30492 : res = split_52 (x1, insn);
30493 : if (res != NULL_RTX)
30494 : return res;
30495 : break;
30496 :
30497 : case VEC_CONCAT:
30498 : res = split_53 (x1, insn);
30499 : if (res != NULL_RTX)
30500 : return res;
30501 : break;
30502 :
30503 : case VEC_MERGE:
30504 : res = split_54 (x1, insn);
30505 : if (res != NULL_RTX)
30506 : return res;
30507 : break;
30508 :
30509 : case ZERO_EXTEND:
30510 : res = split_55 (x1, insn);
30511 : if (res != NULL_RTX)
30512 : return res;
30513 : break;
30514 :
30515 : case IOR:
30516 : x3 = XEXP (x1, 0);
30517 : operands[0] = x3;
30518 : switch (pattern242 (x2))
30519 : {
30520 : case 0:
30521 : if (
30522 : #line 2138 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30523 : (TARGET_AVX512F && reload_completed))
30524 : return gen_split_1234 (insn, operands);
30525 : break;
30526 :
30527 : case 1:
30528 : if (
30529 : #line 2138 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30530 : (TARGET_AVX512F && reload_completed))
30531 : return gen_split_1237 (insn, operands);
30532 : break;
30533 :
30534 : case 2:
30535 : if ((
30536 : #line 2138 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30537 : (TARGET_AVX512F && reload_completed) &&
30538 : #line 2098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30539 : (TARGET_AVX512BW)))
30540 : return gen_split_1240 (insn, operands);
30541 : break;
30542 :
30543 : case 3:
30544 : if ((
30545 : #line 2138 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30546 : (TARGET_AVX512F && reload_completed) &&
30547 : #line 2098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30548 : (TARGET_AVX512BW)))
30549 : return gen_split_1243 (insn, operands);
30550 : break;
30551 :
30552 : default:
30553 : break;
30554 : }
30555 : break;
30556 :
30557 : case XOR:
30558 : x3 = XEXP (x1, 0);
30559 : operands[0] = x3;
30560 : switch (pattern242 (x2))
30561 : {
30562 : case 0:
30563 : if (
30564 : #line 2138 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30565 : (TARGET_AVX512F && reload_completed))
30566 : return gen_split_1235 (insn, operands);
30567 : break;
30568 :
30569 : case 1:
30570 : if (
30571 : #line 2138 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30572 : (TARGET_AVX512F && reload_completed))
30573 : return gen_split_1238 (insn, operands);
30574 : break;
30575 :
30576 : case 2:
30577 : if ((
30578 : #line 2138 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30579 : (TARGET_AVX512F && reload_completed) &&
30580 : #line 2098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30581 : (TARGET_AVX512BW)))
30582 : return gen_split_1241 (insn, operands);
30583 : break;
30584 :
30585 : case 3:
30586 : if ((
30587 : #line 2138 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30588 : (TARGET_AVX512F && reload_completed) &&
30589 : #line 2098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30590 : (TARGET_AVX512BW)))
30591 : return gen_split_1244 (insn, operands);
30592 : break;
30593 :
30594 : default:
30595 : break;
30596 : }
30597 : break;
30598 :
30599 : case ASHIFT:
30600 : switch (pattern55 (x1))
30601 : {
30602 : case 0:
30603 : if (
30604 : #line 2302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30605 : (TARGET_AVX512F && reload_completed))
30606 : return gen_split_1266 (insn, operands);
30607 : break;
30608 :
30609 : case 1:
30610 : if (
30611 : #line 2302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30612 : (TARGET_AVX512F && reload_completed))
30613 : return gen_split_1268 (insn, operands);
30614 : break;
30615 :
30616 : case 2:
30617 : if ((
30618 : #line 2302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30619 : (TARGET_AVX512F && reload_completed) &&
30620 : #line 2098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30621 : (TARGET_AVX512BW)))
30622 : return gen_split_1270 (insn, operands);
30623 : break;
30624 :
30625 : case 3:
30626 : if ((
30627 : #line 2302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30628 : (TARGET_AVX512F && reload_completed) &&
30629 : #line 2098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30630 : (TARGET_AVX512BW)))
30631 : return gen_split_1272 (insn, operands);
30632 : break;
30633 :
30634 : default:
30635 : break;
30636 : }
30637 : break;
30638 :
30639 : case LSHIFTRT:
30640 : switch (pattern55 (x1))
30641 : {
30642 : case 0:
30643 : if (
30644 : #line 2302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30645 : (TARGET_AVX512F && reload_completed))
30646 : return gen_split_1267 (insn, operands);
30647 : break;
30648 :
30649 : case 1:
30650 : if (
30651 : #line 2302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30652 : (TARGET_AVX512F && reload_completed))
30653 : return gen_split_1269 (insn, operands);
30654 : break;
30655 :
30656 : case 2:
30657 : if ((
30658 : #line 2302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30659 : (TARGET_AVX512F && reload_completed) &&
30660 : #line 2098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30661 : (TARGET_AVX512BW)))
30662 : return gen_split_1271 (insn, operands);
30663 : break;
30664 :
30665 : case 3:
30666 : if ((
30667 : #line 2302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30668 : (TARGET_AVX512F && reload_completed) &&
30669 : #line 2098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30670 : (TARGET_AVX512BW)))
30671 : return gen_split_1273 (insn, operands);
30672 : break;
30673 :
30674 : default:
30675 : break;
30676 : }
30677 : break;
30678 :
30679 : case SIGN_EXTEND:
30680 : res = split_56 (x1, insn);
30681 : if (res != NULL_RTX)
30682 : return res;
30683 : break;
30684 :
30685 : case SS_PLUS:
30686 : if (pattern57 (x1) == 0
30687 : &&
30688 : #line 22975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30689 : (TARGET_SSSE3 && reload_completed
30690 : && SSE_REGNO_P (REGNO (operands[0]))))
30691 : return gen_split_3557 (insn, operands);
30692 : break;
30693 :
30694 : case SS_MINUS:
30695 : if (pattern57 (x1) == 0
30696 : &&
30697 : #line 22975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30698 : (TARGET_SSSE3 && reload_completed
30699 : && SSE_REGNO_P (REGNO (operands[0]))))
30700 : return gen_split_3559 (insn, operands);
30701 : break;
30702 :
30703 : case NE:
30704 : case EQ:
30705 : res = split_57 (x1, insn);
30706 : if (res != NULL_RTX)
30707 : return res;
30708 : break;
30709 :
30710 : default:
30711 : break;
30712 : }
30713 : x3 = XEXP (x1, 0);
30714 : operands[0] = x3;
30715 : return split_87 (x1, insn);
30716 :
30717 : default:
30718 : return NULL;
30719 : }
30720 :
30721 : default:
30722 : return NULL;
30723 : }
30724 : }
30725 :
30726 : rtx_insn *
30727 : peephole2_5 (rtx x1 ATTRIBUTE_UNUSED,
30728 : rtx_insn *insn ATTRIBUTE_UNUSED,
30729 : int *pmatch_len_ ATTRIBUTE_UNUSED)
30730 : {
30731 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
30732 : rtx x2, x3, x4, x5, x6, x7;
30733 : rtx_insn *res ATTRIBUTE_UNUSED;
30734 : x2 = XEXP (x1, 0);
30735 : switch (GET_CODE (x2))
30736 : {
30737 : case REG:
30738 : if (peep2_current_count < 2)
30739 : return NULL;
30740 : operands[0] = x2;
30741 : x3 = PATTERN (peep2_next_insn (1));
30742 : if (GET_CODE (x3) != SET)
30743 : return NULL;
30744 : x4 = XEXP (x3, 0);
30745 : if (GET_CODE (x4) != STRICT_LOW_PART)
30746 : return NULL;
30747 : x5 = XEXP (x4, 0);
30748 : operands[1] = x5;
30749 : x6 = XEXP (x3, 1);
30750 : operands[2] = x6;
30751 : switch (GET_MODE (operands[0]))
30752 : {
30753 : case E_SImode:
30754 : if (!general_reg_operand (operands[0], E_SImode))
30755 : return NULL;
30756 : switch (pattern1350 ())
30757 : {
30758 : case 0:
30759 : if (!
30760 : #line 4959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30761 : (REGNO (operands[0]) == REGNO (operands[1])
30762 : && (SImode != SImode
30763 : || !TARGET_ZERO_EXTEND_WITH_AND
30764 : || !optimize_function_for_speed_p (cfun))))
30765 : return NULL;
30766 : *pmatch_len_ = 1;
30767 : return gen_peephole2_45 (insn, operands);
30768 :
30769 : case 1:
30770 : if (!
30771 : #line 4959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30772 : (REGNO (operands[0]) == REGNO (operands[1])
30773 : && (SImode != SImode
30774 : || !TARGET_ZERO_EXTEND_WITH_AND
30775 : || !optimize_function_for_speed_p (cfun))))
30776 : return NULL;
30777 : *pmatch_len_ = 1;
30778 : return gen_peephole2_47 (insn, operands);
30779 :
30780 : default:
30781 : return NULL;
30782 : }
30783 :
30784 : case E_DImode:
30785 : if (!general_reg_operand (operands[0], E_DImode))
30786 : return NULL;
30787 : switch (pattern1350 ())
30788 : {
30789 : case 0:
30790 : if (!(
30791 : #line 4959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30792 : (REGNO (operands[0]) == REGNO (operands[1])
30793 : && (DImode != SImode
30794 : || !TARGET_ZERO_EXTEND_WITH_AND
30795 : || !optimize_function_for_speed_p (cfun))) &&
30796 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30797 : (TARGET_64BIT)))
30798 : return NULL;
30799 : *pmatch_len_ = 1;
30800 : return gen_peephole2_46 (insn, operands);
30801 :
30802 : case 1:
30803 : if (!(
30804 : #line 4959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30805 : (REGNO (operands[0]) == REGNO (operands[1])
30806 : && (DImode != SImode
30807 : || !TARGET_ZERO_EXTEND_WITH_AND
30808 : || !optimize_function_for_speed_p (cfun))) &&
30809 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30810 : (TARGET_64BIT)))
30811 : return NULL;
30812 : *pmatch_len_ = 1;
30813 : return gen_peephole2_48 (insn, operands);
30814 :
30815 : default:
30816 : return NULL;
30817 : }
30818 :
30819 : default:
30820 : return NULL;
30821 : }
30822 :
30823 : case SUBREG:
30824 : case MEM:
30825 : operands[0] = x2;
30826 : switch (GET_MODE (operands[0]))
30827 : {
30828 : case E_QImode:
30829 : if (!memory_operand (operands[0], E_QImode)
30830 : || !
30831 : #line 28370 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30832 : (optimize_insn_for_speed_p ()
30833 : && ((QImode == HImode
30834 : && TARGET_LCP_STALL)
30835 : || (!TARGET_USE_MOV0
30836 : && TARGET_SPLIT_LONG_MOVES
30837 : && get_attr_length (insn) >= ix86_cur_cost ()->large_insn))
30838 : && peep2_regno_dead_p (0, FLAGS_REG)))
30839 : return NULL;
30840 : *pmatch_len_ = 0;
30841 : return gen_peephole2_278 (insn, operands);
30842 :
30843 : case E_HImode:
30844 : if (!memory_operand (operands[0], E_HImode)
30845 : || !
30846 : #line 28370 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30847 : (optimize_insn_for_speed_p ()
30848 : && ((HImode == HImode
30849 : && TARGET_LCP_STALL)
30850 : || (!TARGET_USE_MOV0
30851 : && TARGET_SPLIT_LONG_MOVES
30852 : && get_attr_length (insn) >= ix86_cur_cost ()->large_insn))
30853 : && peep2_regno_dead_p (0, FLAGS_REG)))
30854 : return NULL;
30855 : *pmatch_len_ = 0;
30856 : return gen_peephole2_279 (insn, operands);
30857 :
30858 : default:
30859 : return NULL;
30860 : }
30861 :
30862 : case STRICT_LOW_PART:
30863 : x7 = XEXP (x2, 0);
30864 : operands[0] = x7;
30865 : switch (GET_MODE (operands[0]))
30866 : {
30867 : case E_QImode:
30868 : if (!general_reg_operand (operands[0], E_QImode)
30869 : || !
30870 : #line 29190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30871 : ((! TARGET_USE_MOV0 || optimize_insn_for_size_p ())
30872 : && peep2_regno_dead_p (0, FLAGS_REG)))
30873 : return NULL;
30874 : *pmatch_len_ = 0;
30875 : return gen_peephole2_365 (insn, operands);
30876 :
30877 : case E_HImode:
30878 : if (!general_reg_operand (operands[0], E_HImode)
30879 : || !
30880 : #line 29190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30881 : ((! TARGET_USE_MOV0 || optimize_insn_for_size_p ())
30882 : && peep2_regno_dead_p (0, FLAGS_REG)))
30883 : return NULL;
30884 : *pmatch_len_ = 0;
30885 : return gen_peephole2_366 (insn, operands);
30886 :
30887 : default:
30888 : return NULL;
30889 : }
30890 :
30891 : default:
30892 : return NULL;
30893 : }
30894 : }
30895 :
30896 : rtx_insn *
30897 : peephole2_8 (rtx x1 ATTRIBUTE_UNUSED,
30898 : rtx_insn *insn ATTRIBUTE_UNUSED,
30899 : int *pmatch_len_ ATTRIBUTE_UNUSED)
30900 : {
30901 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
30902 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
30903 : rtx_insn *res ATTRIBUTE_UNUSED;
30904 : x2 = XEXP (x1, 1);
30905 : switch (GET_CODE (x2))
30906 : {
30907 : case CONST_INT:
30908 : case CONST_WIDE_INT:
30909 : case CONST_POLY_INT:
30910 : case CONST_FIXED:
30911 : case CONST_DOUBLE:
30912 : case CONST_VECTOR:
30913 : case CONST:
30914 : case LABEL_REF:
30915 : case SYMBOL_REF:
30916 : case HIGH:
30917 : operands[1] = x2;
30918 : x3 = XEXP (x1, 0);
30919 : operands[0] = x3;
30920 : switch (GET_CODE (operands[0]))
30921 : {
30922 : case MEM:
30923 : if (push_operand (operands[0], E_DImode)
30924 : && immediate_operand (operands[1], E_DImode)
30925 : &&
30926 : #line 2228 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30927 : (TARGET_64BIT
30928 : && !symbolic_operand (operands[1], DImode)
30929 : && !x86_64_immediate_operand (operands[1], DImode)))
30930 : {
30931 : *pmatch_len_ = 0;
30932 : res = gen_peephole2_3 (insn, operands);
30933 : if (res != NULL_RTX)
30934 : return res;
30935 : }
30936 : break;
30937 :
30938 : case REG:
30939 : case SUBREG:
30940 : res = peephole2_4 (x1, insn, pmatch_len_);
30941 : if (res != NULL_RTX)
30942 : return res;
30943 : break;
30944 :
30945 : default:
30946 : break;
30947 : }
30948 : switch (GET_MODE (operands[0]))
30949 : {
30950 : case E_HImode:
30951 : if (memory_operand (operands[0], E_HImode)
30952 : && const_int_operand (operands[1], E_HImode)
30953 : &&
30954 : #line 2987 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30955 : ((operands[1] == const0_rtx || operands[1] == constm1_rtx)
30956 : && optimize_insn_for_size_p () && optimize_size > 1
30957 : && peep2_regno_dead_p (0, FLAGS_REG)))
30958 : {
30959 : *pmatch_len_ = 0;
30960 : res = gen_peephole2_8 (insn, operands);
30961 : if (res != NULL_RTX)
30962 : return res;
30963 : }
30964 : break;
30965 :
30966 : case E_SImode:
30967 : if (memory_operand (operands[0], E_SImode)
30968 : && const_int_operand (operands[1], E_SImode)
30969 : &&
30970 : #line 2987 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30971 : ((operands[1] == const0_rtx || operands[1] == constm1_rtx)
30972 : && optimize_insn_for_size_p () && optimize_size > 1
30973 : && peep2_regno_dead_p (0, FLAGS_REG)))
30974 : {
30975 : *pmatch_len_ = 0;
30976 : res = gen_peephole2_9 (insn, operands);
30977 : if (res != NULL_RTX)
30978 : return res;
30979 : }
30980 : break;
30981 :
30982 : case E_DImode:
30983 : if (memory_operand (operands[0], E_DImode)
30984 : && const_int_operand (operands[1], E_DImode)
30985 : && (
30986 : #line 2987 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30987 : ((operands[1] == const0_rtx || operands[1] == constm1_rtx)
30988 : && optimize_insn_for_size_p () && optimize_size > 1
30989 : && peep2_regno_dead_p (0, FLAGS_REG)) &&
30990 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30991 : (TARGET_64BIT)))
30992 : {
30993 : *pmatch_len_ = 0;
30994 : res = gen_peephole2_10 (insn, operands);
30995 : if (res != NULL_RTX)
30996 : return res;
30997 : }
30998 : break;
30999 :
31000 : default:
31001 : break;
31002 : }
31003 : if (x2 == const_int_rtx[MAX_SAVED_CONST_INT + 0])
31004 : {
31005 : res = peephole2_5 (x1, insn, pmatch_len_);
31006 : if (res != NULL_RTX)
31007 : return res;
31008 : }
31009 : operands[1] = x2;
31010 : operands[0] = x3;
31011 : switch (GET_MODE (operands[0]))
31012 : {
31013 : case E_QImode:
31014 : if (memory_operand (operands[0], E_QImode)
31015 : && immediate_operand (operands[1], E_QImode)
31016 : &&
31017 : #line 28386 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31018 : (optimize_insn_for_speed_p ()
31019 : && ((QImode == HImode
31020 : && TARGET_LCP_STALL)
31021 : || (TARGET_SPLIT_LONG_MOVES
31022 : && get_attr_length (insn) >= ix86_cur_cost ()->large_insn))))
31023 : {
31024 : *pmatch_len_ = 0;
31025 : res = gen_peephole2_281 (insn, operands);
31026 : if (res != NULL_RTX)
31027 : return res;
31028 : }
31029 : break;
31030 :
31031 : case E_HImode:
31032 : if (memory_operand (operands[0], E_HImode)
31033 : && immediate_operand (operands[1], E_HImode)
31034 : &&
31035 : #line 28386 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31036 : (optimize_insn_for_speed_p ()
31037 : && ((HImode == HImode
31038 : && TARGET_LCP_STALL)
31039 : || (TARGET_SPLIT_LONG_MOVES
31040 : && get_attr_length (insn) >= ix86_cur_cost ()->large_insn))))
31041 : {
31042 : *pmatch_len_ = 0;
31043 : res = gen_peephole2_282 (insn, operands);
31044 : if (res != NULL_RTX)
31045 : return res;
31046 : }
31047 : break;
31048 :
31049 : default:
31050 : break;
31051 : }
31052 : break;
31053 :
31054 : case REG:
31055 : res = peephole2_6 (x1, insn, pmatch_len_);
31056 : if (res != NULL_RTX)
31057 : return res;
31058 : break;
31059 :
31060 : case SUBREG:
31061 : case MEM:
31062 : res = peephole2_7 (x1, insn, pmatch_len_);
31063 : if (res != NULL_RTX)
31064 : return res;
31065 : break;
31066 :
31067 : default:
31068 : break;
31069 : }
31070 : if (peep2_current_count < 2)
31071 : return NULL;
31072 : x4 = PATTERN (peep2_next_insn (1));
31073 : if (GET_CODE (x4) != SET)
31074 : return NULL;
31075 : x3 = XEXP (x1, 0);
31076 : switch (GET_MODE (x3))
31077 : {
31078 : case E_HImode:
31079 : if (peep2_current_count >= 3
31080 : && peep2_current_count >= 4)
31081 : {
31082 : operands[2] = x3;
31083 : if (general_reg_operand (operands[2], E_HImode))
31084 : {
31085 : operands[3] = x2;
31086 : if (general_gr_operand (operands[3], E_HImode))
31087 : {
31088 : x5 = XEXP (x4, 0);
31089 : operands[0] = x5;
31090 : if (general_reg_operand (operands[0], E_HImode))
31091 : {
31092 : x6 = XEXP (x4, 1);
31093 : if (pattern964 (x6,
31094 : E_HImode) == 0
31095 : &&
31096 : #line 26987 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31097 : (TARGET_CMOVE
31098 : && REGNO (operands[2]) != REGNO (operands[0])
31099 : && REGNO (operands[2]) != REGNO (operands[1])
31100 : && peep2_reg_dead_p (2, operands[1])
31101 : && peep2_reg_dead_p (4, operands[2])
31102 : && !reg_overlap_mentioned_p (operands[0], operands[3])
31103 : && !reg_mentioned_p (operands[2], operands[6])))
31104 : {
31105 : *pmatch_len_ = 3;
31106 : res = gen_peephole2_226 (insn, operands);
31107 : if (res != NULL_RTX)
31108 : return res;
31109 : }
31110 : }
31111 : }
31112 : }
31113 : }
31114 : operands[0] = x3;
31115 : operands[1] = x2;
31116 : if (x86_64_general_operand (operands[1], E_HImode)
31117 : && general_reg_operand (operands[0], E_HImode))
31118 : {
31119 : x5 = XEXP (x4, 0);
31120 : operands[2] = x5;
31121 : if (general_reg_operand (operands[2], E_HImode))
31122 : {
31123 : x6 = XEXP (x4, 1);
31124 : if (rtx_equal_p (x6, operands[0])
31125 : &&
31126 : #line 27584 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31127 : (peep2_reg_dead_p (2, operands[0])))
31128 : {
31129 : *pmatch_len_ = 1;
31130 : res = gen_peephole2_250 (insn, operands);
31131 : if (res != NULL_RTX)
31132 : return res;
31133 : }
31134 : }
31135 : }
31136 : if (peep2_current_count < 3
31137 : || pattern849 (x4,
31138 : E_HImode) != 0)
31139 : return NULL;
31140 : switch (GET_MODE (operands[4]))
31141 : {
31142 : case E_HImode:
31143 : x7 = PATTERN (peep2_next_insn (2));
31144 : x8 = XVECEXP (x7, 0, 0);
31145 : x9 = XEXP (x8, 1);
31146 : if (pattern1896 (x9,
31147 : E_HImode) != 0
31148 : || !
31149 : #line 29032 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31150 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31151 : && (REGNO (operands[4]) == REGNO (operands[0])
31152 : || REGNO (operands[4]) == REGNO (operands[3]))
31153 : && (rtx_equal_p (operands[REGNO (operands[4]) == REGNO (operands[0])
31154 : ? 3 : 0], operands[5])
31155 : ? rtx_equal_p (operands[2], operands[6])
31156 : : rtx_equal_p (operands[2], operands[5])
31157 : && rtx_equal_p (operands[REGNO (operands[4]) == REGNO (operands[0])
31158 : ? 3 : 0], operands[6]))
31159 : && peep2_reg_dead_p (4, operands[4])
31160 : && peep2_reg_dead_p (5, operands[REGNO (operands[4]) == REGNO (operands[0])
31161 : ? 3 : 0])
31162 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31163 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31164 : && !reg_overlap_mentioned_p (operands[3], operands[0])
31165 : && !reg_overlap_mentioned_p (operands[3], operands[1])
31166 : && !reg_overlap_mentioned_p (operands[3], operands[2])
31167 : && (HImode != QImode
31168 : || immediate_operand (operands[2], QImode)
31169 : || any_QIreg_operand (operands[2], QImode))))
31170 : return NULL;
31171 : *pmatch_len_ = 4;
31172 : return gen_peephole2_356 (insn, operands);
31173 :
31174 : case E_SImode:
31175 : x7 = PATTERN (peep2_next_insn (2));
31176 : x8 = XVECEXP (x7, 0, 0);
31177 : x9 = XEXP (x8, 1);
31178 : if (pattern1897 (x9,
31179 : E_HImode) != 0
31180 : || !
31181 : #line 29076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31182 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31183 : && (REGNO (operands[5]) == REGNO (operands[0])
31184 : || REGNO (operands[5]) == REGNO (operands[3]))
31185 : && REGNO (operands[5]) == REGNO (operands[4])
31186 : && (rtx_equal_p (operands[REGNO (operands[5]) == REGNO (operands[0])
31187 : ? 3 : 0], operands[6])
31188 : ? (REG_P (operands[2])
31189 : ? REG_P (operands[7]) && REGNO (operands[2]) == REGNO (operands[7])
31190 : : rtx_equal_p (operands[2], operands[7]))
31191 : : (rtx_equal_p (operands[REGNO (operands[5]) == REGNO (operands[0])
31192 : ? 3 : 0], operands[7])
31193 : && REG_P (operands[2])
31194 : && REGNO (operands[2]) == REGNO (operands[6])))
31195 : && peep2_reg_dead_p (4, operands[5])
31196 : && peep2_reg_dead_p (5, operands[REGNO (operands[5]) == REGNO (operands[0])
31197 : ? 3 : 0])
31198 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31199 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31200 : && !reg_overlap_mentioned_p (operands[3], operands[0])
31201 : && !reg_overlap_mentioned_p (operands[3], operands[1])
31202 : && !reg_overlap_mentioned_p (operands[3], operands[2])
31203 : && (HImode != QImode
31204 : || immediate_operand (operands[2], SImode)
31205 : || any_QIreg_operand (operands[2], SImode))))
31206 : return NULL;
31207 : *pmatch_len_ = 4;
31208 : return gen_peephole2_360 (insn, operands);
31209 :
31210 : default:
31211 : return NULL;
31212 : }
31213 :
31214 : case E_QImode:
31215 : operands[0] = x3;
31216 : operands[1] = x2;
31217 : if (x86_64_general_operand (operands[1], E_QImode)
31218 : && general_reg_operand (operands[0], E_QImode))
31219 : {
31220 : x5 = XEXP (x4, 0);
31221 : operands[2] = x5;
31222 : if (general_reg_operand (operands[2], E_QImode))
31223 : {
31224 : x6 = XEXP (x4, 1);
31225 : if (rtx_equal_p (x6, operands[0])
31226 : &&
31227 : #line 27584 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31228 : (peep2_reg_dead_p (2, operands[0])))
31229 : {
31230 : *pmatch_len_ = 1;
31231 : res = gen_peephole2_249 (insn, operands);
31232 : if (res != NULL_RTX)
31233 : return res;
31234 : }
31235 : }
31236 : }
31237 : if (peep2_current_count < 3
31238 : || pattern849 (x4,
31239 : E_QImode) != 0)
31240 : return NULL;
31241 : switch (GET_MODE (operands[4]))
31242 : {
31243 : case E_QImode:
31244 : x7 = PATTERN (peep2_next_insn (2));
31245 : x8 = XVECEXP (x7, 0, 0);
31246 : x9 = XEXP (x8, 1);
31247 : if (pattern1896 (x9,
31248 : E_QImode) != 0
31249 : || !
31250 : #line 29032 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31251 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31252 : && (REGNO (operands[4]) == REGNO (operands[0])
31253 : || REGNO (operands[4]) == REGNO (operands[3]))
31254 : && (rtx_equal_p (operands[REGNO (operands[4]) == REGNO (operands[0])
31255 : ? 3 : 0], operands[5])
31256 : ? rtx_equal_p (operands[2], operands[6])
31257 : : rtx_equal_p (operands[2], operands[5])
31258 : && rtx_equal_p (operands[REGNO (operands[4]) == REGNO (operands[0])
31259 : ? 3 : 0], operands[6]))
31260 : && peep2_reg_dead_p (4, operands[4])
31261 : && peep2_reg_dead_p (5, operands[REGNO (operands[4]) == REGNO (operands[0])
31262 : ? 3 : 0])
31263 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31264 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31265 : && !reg_overlap_mentioned_p (operands[3], operands[0])
31266 : && !reg_overlap_mentioned_p (operands[3], operands[1])
31267 : && !reg_overlap_mentioned_p (operands[3], operands[2])
31268 : && (QImode != QImode
31269 : || immediate_operand (operands[2], QImode)
31270 : || any_QIreg_operand (operands[2], QImode))))
31271 : return NULL;
31272 : *pmatch_len_ = 4;
31273 : return gen_peephole2_355 (insn, operands);
31274 :
31275 : case E_SImode:
31276 : x7 = PATTERN (peep2_next_insn (2));
31277 : x8 = XVECEXP (x7, 0, 0);
31278 : x9 = XEXP (x8, 1);
31279 : if (pattern1897 (x9,
31280 : E_QImode) != 0
31281 : || !
31282 : #line 29076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31283 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31284 : && (REGNO (operands[5]) == REGNO (operands[0])
31285 : || REGNO (operands[5]) == REGNO (operands[3]))
31286 : && REGNO (operands[5]) == REGNO (operands[4])
31287 : && (rtx_equal_p (operands[REGNO (operands[5]) == REGNO (operands[0])
31288 : ? 3 : 0], operands[6])
31289 : ? (REG_P (operands[2])
31290 : ? REG_P (operands[7]) && REGNO (operands[2]) == REGNO (operands[7])
31291 : : rtx_equal_p (operands[2], operands[7]))
31292 : : (rtx_equal_p (operands[REGNO (operands[5]) == REGNO (operands[0])
31293 : ? 3 : 0], operands[7])
31294 : && REG_P (operands[2])
31295 : && REGNO (operands[2]) == REGNO (operands[6])))
31296 : && peep2_reg_dead_p (4, operands[5])
31297 : && peep2_reg_dead_p (5, operands[REGNO (operands[5]) == REGNO (operands[0])
31298 : ? 3 : 0])
31299 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31300 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31301 : && !reg_overlap_mentioned_p (operands[3], operands[0])
31302 : && !reg_overlap_mentioned_p (operands[3], operands[1])
31303 : && !reg_overlap_mentioned_p (operands[3], operands[2])
31304 : && (QImode != QImode
31305 : || immediate_operand (operands[2], SImode)
31306 : || any_QIreg_operand (operands[2], SImode))))
31307 : return NULL;
31308 : *pmatch_len_ = 4;
31309 : return gen_peephole2_359 (insn, operands);
31310 :
31311 : default:
31312 : return NULL;
31313 : }
31314 :
31315 : default:
31316 : return NULL;
31317 : }
31318 : }
31319 :
31320 : rtx_insn *
31321 : peephole2_14 (rtx x1 ATTRIBUTE_UNUSED,
31322 : rtx_insn *insn ATTRIBUTE_UNUSED,
31323 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31324 : {
31325 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31326 : rtx x2, x3, x4, x5, x6;
31327 : rtx_insn *res ATTRIBUTE_UNUSED;
31328 : x2 = XEXP (x1, 0);
31329 : operands[0] = x2;
31330 : res = peephole2_12 (x1, insn, pmatch_len_);
31331 : if (res != NULL_RTX)
31332 : return res;
31333 : if (peep2_current_count < 2)
31334 : return NULL;
31335 : if (peep2_current_count >= 3
31336 : && peep2_current_count >= 4)
31337 : {
31338 : if (general_reg_operand (x2, E_SImode))
31339 : {
31340 : res = peephole2_13 (x1, insn, pmatch_len_);
31341 : if (res != NULL_RTX)
31342 : return res;
31343 : }
31344 : if (peep2_current_count >= 5
31345 : && pattern606 (x1,
31346 : E_SImode) == 0
31347 : &&
31348 : #line 27534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31349 : (optimize_insn_for_size_p ()
31350 : && INSN_UID (peep2_next_insn (0)) == ix86_last_zero_store_uid))
31351 : {
31352 : *pmatch_len_ = 4;
31353 : res = gen_peephole2_243 (insn, operands);
31354 : if (res != NULL_RTX)
31355 : return res;
31356 : }
31357 : }
31358 : operands[3] = x2;
31359 : if (peep2_current_count >= 3)
31360 : {
31361 : x3 = XEXP (x1, 1);
31362 : if (pattern418 (x3,
31363 : E_SImode) == 0
31364 : &&
31365 : #line 27552 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31366 : (optimize_insn_for_size_p ()
31367 : && INSN_UID (peep2_next_insn (0)) == ix86_last_zero_store_uid))
31368 : {
31369 : *pmatch_len_ = 2;
31370 : res = gen_peephole2_245 (insn, operands);
31371 : if (res != NULL_RTX)
31372 : return res;
31373 : }
31374 : }
31375 : if (general_reg_operand (operands[3], E_SImode))
31376 : {
31377 : x3 = XEXP (x1, 1);
31378 : switch (pattern419 (x3,
31379 : E_SImode))
31380 : {
31381 : case 0:
31382 : if ((
31383 : #line 28083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31384 : (GET_MODE (operands[2]) == word_mode
31385 : && peep2_reg_dead_p (0, operands[3])
31386 : && peep2_reg_dead_p (2, operands[2])
31387 : && !reg_mentioned_p (operands[3], operands[0])
31388 : && !reg_mentioned_p (operands[3], operands[1])) &&
31389 : #line 1409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31390 : (ptr_mode == SImode)))
31391 : {
31392 : *pmatch_len_ = 1;
31393 : res = gen_peephole2_261 (insn, operands);
31394 : if (res != NULL_RTX)
31395 : return res;
31396 : }
31397 : break;
31398 :
31399 : case 1:
31400 : if ((
31401 : #line 28083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31402 : (GET_MODE (operands[2]) == word_mode
31403 : && peep2_reg_dead_p (0, operands[3])
31404 : && peep2_reg_dead_p (2, operands[2])
31405 : && !reg_mentioned_p (operands[3], operands[0])
31406 : && !reg_mentioned_p (operands[3], operands[1])) &&
31407 : #line 1409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31408 : (ptr_mode == DImode)))
31409 : {
31410 : *pmatch_len_ = 1;
31411 : res = gen_peephole2_263 (insn, operands);
31412 : if (res != NULL_RTX)
31413 : return res;
31414 : }
31415 : break;
31416 :
31417 : default:
31418 : break;
31419 : }
31420 : }
31421 : x4 = PATTERN (peep2_next_insn (1));
31422 : if (GET_CODE (x4) != SET)
31423 : return NULL;
31424 : operands[2] = x2;
31425 : if (memory_operand (operands[2], E_SImode))
31426 : {
31427 : x3 = XEXP (x1, 1);
31428 : operands[0] = x3;
31429 : if (general_reg_operand (operands[0], E_SImode))
31430 : {
31431 : x5 = XEXP (x4, 1);
31432 : if (x5 == const_int_rtx[MAX_SAVED_CONST_INT + 0])
31433 : {
31434 : x6 = XEXP (x4, 0);
31435 : operands[1] = x6;
31436 : if (memory_operand (operands[1], E_SImode)
31437 : &&
31438 : #line 27567 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31439 : (optimize_insn_for_size_p ()
31440 : && INSN_UID (peep2_next_insn (0)) == ix86_last_zero_store_uid))
31441 : {
31442 : *pmatch_len_ = 1;
31443 : res = gen_peephole2_247 (insn, operands);
31444 : if (res != NULL_RTX)
31445 : return res;
31446 : }
31447 : }
31448 : }
31449 : }
31450 : operands[0] = x2;
31451 : if (!general_reg_operand (operands[0], E_SImode))
31452 : return NULL;
31453 : x3 = XEXP (x1, 1);
31454 : operands[1] = x3;
31455 : if (!x86_64_general_operand (operands[1], E_SImode))
31456 : return NULL;
31457 : x6 = XEXP (x4, 0);
31458 : operands[2] = x6;
31459 : if (!general_reg_operand (operands[2], E_SImode))
31460 : return NULL;
31461 : x5 = XEXP (x4, 1);
31462 : if (!rtx_equal_p (x5, operands[0])
31463 : || !
31464 : #line 27584 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31465 : (peep2_reg_dead_p (2, operands[0])))
31466 : return NULL;
31467 : *pmatch_len_ = 1;
31468 : return gen_peephole2_251 (insn, operands);
31469 : }
31470 :
31471 : rtx_insn *
31472 : peephole2_17 (rtx x1 ATTRIBUTE_UNUSED,
31473 : rtx_insn *insn ATTRIBUTE_UNUSED,
31474 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31475 : {
31476 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31477 : rtx x2, x3;
31478 : rtx_insn *res ATTRIBUTE_UNUSED;
31479 : x2 = PATTERN (peep2_next_insn (1));
31480 : if (GET_CODE (x2) != SET)
31481 : return NULL;
31482 : x3 = XEXP (x2, 0);
31483 : if (!general_reg_operand (x3, E_DImode))
31484 : return NULL;
31485 : operands[8] = x3;
31486 : switch (pattern962 (x1,
31487 : E_DImode,
31488 : E_TImode))
31489 : {
31490 : case 0:
31491 : if ((
31492 : #line 10003 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31493 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31494 : && peep2_reg_dead_p (4, operands[0])
31495 : && peep2_reg_dead_p (3, operands[2])
31496 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31497 : && !reg_overlap_mentioned_p (operands[2], operands[1])
31498 : && !reg_overlap_mentioned_p (operands[6], operands[9])
31499 : && (rtx_equal_p (operands[6], operands[0])
31500 : ? (rtx_equal_p (operands[7], operands[1])
31501 : && rtx_equal_p (operands[8], operands[2]))
31502 : : (rtx_equal_p (operands[8], operands[0])
31503 : && rtx_equal_p (operands[9], operands[1])
31504 : && rtx_equal_p (operands[6], operands[2])))) &&
31505 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31506 : (TARGET_64BIT)))
31507 : {
31508 : *pmatch_len_ = 3;
31509 : res = gen_peephole2_117 (insn, operands);
31510 : if (res != NULL_RTX)
31511 : return res;
31512 : }
31513 : break;
31514 :
31515 : case 1:
31516 : if ((
31517 : #line 10058 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31518 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31519 : && peep2_reg_dead_p (6, operands[0])
31520 : && peep2_reg_dead_p (3, operands[2])
31521 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31522 : && !reg_overlap_mentioned_p (operands[2], operands[1])
31523 : && !reg_overlap_mentioned_p (operands[6], operands[9])
31524 : && !reg_overlap_mentioned_p (operands[0], operands[10])
31525 : && !reg_overlap_mentioned_p (operands[10], operands[1])
31526 : && !reg_overlap_mentioned_p (operands[0], operands[11])
31527 : && !reg_overlap_mentioned_p (operands[11], operands[1])
31528 : && (rtx_equal_p (operands[6], operands[0])
31529 : ? (rtx_equal_p (operands[7], operands[1])
31530 : && rtx_equal_p (operands[8], operands[2]))
31531 : : (rtx_equal_p (operands[8], operands[0])
31532 : && rtx_equal_p (operands[9], operands[1])
31533 : && rtx_equal_p (operands[6], operands[2])))) &&
31534 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31535 : (TARGET_64BIT)))
31536 : {
31537 : *pmatch_len_ = 5;
31538 : res = gen_peephole2_119 (insn, operands);
31539 : if (res != NULL_RTX)
31540 : return res;
31541 : }
31542 : break;
31543 :
31544 : default:
31545 : break;
31546 : }
31547 : operands[0] = x3;
31548 : if (pattern965 (x1,
31549 : E_DImode) != 0
31550 : || !(
31551 : #line 26987 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31552 : (TARGET_CMOVE
31553 : && REGNO (operands[2]) != REGNO (operands[0])
31554 : && REGNO (operands[2]) != REGNO (operands[1])
31555 : && peep2_reg_dead_p (2, operands[1])
31556 : && peep2_reg_dead_p (4, operands[2])
31557 : && !reg_overlap_mentioned_p (operands[0], operands[3])
31558 : && !reg_mentioned_p (operands[2], operands[6])) &&
31559 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31560 : (TARGET_64BIT)))
31561 : return NULL;
31562 : *pmatch_len_ = 3;
31563 : return gen_peephole2_228 (insn, operands);
31564 : }
31565 :
31566 : rtx_insn *
31567 : peephole2_22 (rtx x1 ATTRIBUTE_UNUSED,
31568 : rtx_insn *insn ATTRIBUTE_UNUSED,
31569 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31570 : {
31571 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31572 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
31573 : rtx_insn *res ATTRIBUTE_UNUSED;
31574 : if (peep2_current_count >= 3)
31575 : {
31576 : res = peephole2_20 (x1, insn, pmatch_len_);
31577 : if (res != NULL_RTX)
31578 : return res;
31579 : }
31580 : x2 = XEXP (x1, 0);
31581 : operands[0] = x2;
31582 : x3 = XEXP (x1, 1);
31583 : operands[1] = x3;
31584 : if (fp_register_operand (operands[1], E_VOIDmode)
31585 : && fp_register_operand (operands[0], E_VOIDmode))
31586 : {
31587 : res = peephole2_21 (x1, insn, pmatch_len_);
31588 : if (res != NULL_RTX)
31589 : return res;
31590 : }
31591 : if (general_reg_operand (operands[1], E_QImode))
31592 : {
31593 : x4 = PATTERN (peep2_next_insn (1));
31594 : if (pattern420 (x4,
31595 : E_QImode) == 0
31596 : &&
31597 : #line 28546 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31598 : (REGNO (operands[0]) != REGNO (operands[1])
31599 : && (QImode != QImode
31600 : || any_QIreg_operand (operands[1], QImode))))
31601 : {
31602 : *pmatch_len_ = 1;
31603 : res = gen_peephole2_301 (insn, operands);
31604 : if (res != NULL_RTX)
31605 : return res;
31606 : }
31607 : }
31608 : if (general_reg_operand (operands[1], E_HImode))
31609 : {
31610 : x4 = PATTERN (peep2_next_insn (1));
31611 : if (pattern420 (x4,
31612 : E_HImode) == 0
31613 : &&
31614 : #line 28546 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31615 : (REGNO (operands[0]) != REGNO (operands[1])
31616 : && (HImode != QImode
31617 : || any_QIreg_operand (operands[1], QImode))))
31618 : {
31619 : *pmatch_len_ = 1;
31620 : res = gen_peephole2_302 (insn, operands);
31621 : if (res != NULL_RTX)
31622 : return res;
31623 : }
31624 : }
31625 : if (general_reg_operand (operands[1], E_DImode))
31626 : {
31627 : x4 = PATTERN (peep2_next_insn (1));
31628 : if (pattern420 (x4,
31629 : E_DImode) == 0
31630 : && (
31631 : #line 28546 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31632 : (REGNO (operands[0]) != REGNO (operands[1])
31633 : && (DImode != QImode
31634 : || any_QIreg_operand (operands[1], QImode))) &&
31635 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31636 : (TARGET_64BIT)))
31637 : {
31638 : *pmatch_len_ = 1;
31639 : res = gen_peephole2_304 (insn, operands);
31640 : if (res != NULL_RTX)
31641 : return res;
31642 : }
31643 : }
31644 : if (peep2_current_count < 3
31645 : || peep2_current_count < 4)
31646 : return NULL;
31647 : if (memory_operand (operands[1], E_QImode))
31648 : {
31649 : x4 = PATTERN (peep2_next_insn (1));
31650 : if (pattern734 (x4,
31651 : E_QImode) == 0)
31652 : {
31653 : x5 = XVECEXP (x4, 0, 0);
31654 : x6 = XEXP (x5, 1);
31655 : operands[3] = x6;
31656 : if (pattern1359 (x4,
31657 : E_QImode) == 0)
31658 : {
31659 : x7 = PATTERN (peep2_next_insn (2));
31660 : x8 = XEXP (x7, 0);
31661 : if (rtx_equal_p (x8, operands[1]))
31662 : {
31663 : x9 = PATTERN (peep2_next_insn (3));
31664 : if (pattern1850 (x9) == 0
31665 : &&
31666 : #line 28637 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31667 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31668 : && peep2_reg_dead_p (4, operands[0])
31669 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31670 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31671 : && (QImode != QImode
31672 : || immediate_operand (operands[2], QImode)
31673 : || any_QIreg_operand (operands[2], QImode))
31674 : && ix86_match_ccmode (peep2_next_insn (3),
31675 : (GET_CODE (operands[3]) == PLUS
31676 : || GET_CODE (operands[3]) == MINUS)
31677 : ? CCGOCmode : CCNOmode)))
31678 : {
31679 : *pmatch_len_ = 3;
31680 : res = gen_peephole2_315 (insn, operands);
31681 : if (res != NULL_RTX)
31682 : return res;
31683 : }
31684 : }
31685 : if (peep2_current_count >= 5
31686 : && pattern1851 (x8,
31687 : E_QImode) == 0
31688 : &&
31689 : #line 28918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31690 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31691 : && peep2_reg_dead_p (3, operands[0])
31692 : && peep2_reg_dead_p (5, operands[4])
31693 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31694 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31695 : && !reg_overlap_mentioned_p (operands[4], operands[1])
31696 : && (QImode != QImode
31697 : || immediate_operand (operands[2], QImode)
31698 : || any_QIreg_operand (operands[2], QImode))
31699 : && ix86_match_ccmode (peep2_next_insn (4),
31700 : (GET_CODE (operands[3]) == PLUS
31701 : || GET_CODE (operands[3]) == MINUS)
31702 : ? CCGOCmode : CCNOmode)))
31703 : {
31704 : *pmatch_len_ = 4;
31705 : res = gen_peephole2_345 (insn, operands);
31706 : if (res != NULL_RTX)
31707 : return res;
31708 : }
31709 : }
31710 : if (GET_CODE (x6) == XOR
31711 : && pattern1360 (x4,
31712 : E_QImode) == 0
31713 : &&
31714 : #line 28843 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31715 : (TARGET_APX_NDD
31716 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31717 : && REGNO (operands[3]) == REGNO (operands[0])
31718 : && (rtx_equal_p (operands[0], operands[5])
31719 : ? rtx_equal_p (operands[2], operands[6])
31720 : : rtx_equal_p (operands[2], operands[5])
31721 : && rtx_equal_p (operands[0], operands[6]))
31722 : && peep2_reg_dead_p (3, operands[4])
31723 : && peep2_reg_dead_p (4, operands[0])
31724 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31725 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31726 : && (QImode != QImode
31727 : || immediate_operand (operands[2], QImode)
31728 : || any_QIreg_operand (operands[2], QImode))))
31729 : {
31730 : *pmatch_len_ = 3;
31731 : res = gen_peephole2_339 (insn, operands);
31732 : if (res != NULL_RTX)
31733 : return res;
31734 : }
31735 : }
31736 : }
31737 : if (memory_operand (operands[1], E_HImode))
31738 : {
31739 : x4 = PATTERN (peep2_next_insn (1));
31740 : if (pattern734 (x4,
31741 : E_HImode) == 0)
31742 : {
31743 : x5 = XVECEXP (x4, 0, 0);
31744 : x6 = XEXP (x5, 1);
31745 : operands[3] = x6;
31746 : if (pattern1359 (x4,
31747 : E_HImode) == 0)
31748 : {
31749 : x7 = PATTERN (peep2_next_insn (2));
31750 : x8 = XEXP (x7, 0);
31751 : if (rtx_equal_p (x8, operands[1]))
31752 : {
31753 : x9 = PATTERN (peep2_next_insn (3));
31754 : if (pattern1850 (x9) == 0
31755 : &&
31756 : #line 28637 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31757 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31758 : && peep2_reg_dead_p (4, operands[0])
31759 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31760 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31761 : && (HImode != QImode
31762 : || immediate_operand (operands[2], QImode)
31763 : || any_QIreg_operand (operands[2], QImode))
31764 : && ix86_match_ccmode (peep2_next_insn (3),
31765 : (GET_CODE (operands[3]) == PLUS
31766 : || GET_CODE (operands[3]) == MINUS)
31767 : ? CCGOCmode : CCNOmode)))
31768 : {
31769 : *pmatch_len_ = 3;
31770 : res = gen_peephole2_316 (insn, operands);
31771 : if (res != NULL_RTX)
31772 : return res;
31773 : }
31774 : }
31775 : if (peep2_current_count >= 5
31776 : && pattern1851 (x8,
31777 : E_HImode) == 0
31778 : &&
31779 : #line 28918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31780 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31781 : && peep2_reg_dead_p (3, operands[0])
31782 : && peep2_reg_dead_p (5, operands[4])
31783 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31784 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31785 : && !reg_overlap_mentioned_p (operands[4], operands[1])
31786 : && (HImode != QImode
31787 : || immediate_operand (operands[2], QImode)
31788 : || any_QIreg_operand (operands[2], QImode))
31789 : && ix86_match_ccmode (peep2_next_insn (4),
31790 : (GET_CODE (operands[3]) == PLUS
31791 : || GET_CODE (operands[3]) == MINUS)
31792 : ? CCGOCmode : CCNOmode)))
31793 : {
31794 : *pmatch_len_ = 4;
31795 : res = gen_peephole2_346 (insn, operands);
31796 : if (res != NULL_RTX)
31797 : return res;
31798 : }
31799 : }
31800 : if (GET_CODE (x6) == XOR
31801 : && pattern1360 (x4,
31802 : E_HImode) == 0
31803 : &&
31804 : #line 28843 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31805 : (TARGET_APX_NDD
31806 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31807 : && REGNO (operands[3]) == REGNO (operands[0])
31808 : && (rtx_equal_p (operands[0], operands[5])
31809 : ? rtx_equal_p (operands[2], operands[6])
31810 : : rtx_equal_p (operands[2], operands[5])
31811 : && rtx_equal_p (operands[0], operands[6]))
31812 : && peep2_reg_dead_p (3, operands[4])
31813 : && peep2_reg_dead_p (4, operands[0])
31814 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31815 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31816 : && (HImode != QImode
31817 : || immediate_operand (operands[2], QImode)
31818 : || any_QIreg_operand (operands[2], QImode))))
31819 : {
31820 : *pmatch_len_ = 3;
31821 : res = gen_peephole2_340 (insn, operands);
31822 : if (res != NULL_RTX)
31823 : return res;
31824 : }
31825 : }
31826 : }
31827 : if (!memory_operand (operands[1], E_DImode))
31828 : return NULL;
31829 : x4 = PATTERN (peep2_next_insn (1));
31830 : if (pattern734 (x4,
31831 : E_DImode) != 0)
31832 : return NULL;
31833 : x5 = XVECEXP (x4, 0, 0);
31834 : x6 = XEXP (x5, 1);
31835 : operands[3] = x6;
31836 : if (pattern1361 (x4,
31837 : E_DImode) == 0
31838 : && pattern1358 (x5) == 0)
31839 : {
31840 : x7 = PATTERN (peep2_next_insn (2));
31841 : x8 = XEXP (x7, 0);
31842 : if (rtx_equal_p (x8, operands[1]))
31843 : {
31844 : x9 = PATTERN (peep2_next_insn (3));
31845 : if (pattern1850 (x9) == 0
31846 : && (
31847 : #line 28637 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31848 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31849 : && peep2_reg_dead_p (4, operands[0])
31850 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31851 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31852 : && (DImode != QImode
31853 : || immediate_operand (operands[2], QImode)
31854 : || any_QIreg_operand (operands[2], QImode))
31855 : && ix86_match_ccmode (peep2_next_insn (3),
31856 : (GET_CODE (operands[3]) == PLUS
31857 : || GET_CODE (operands[3]) == MINUS)
31858 : ? CCGOCmode : CCNOmode)) &&
31859 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31860 : (TARGET_64BIT)))
31861 : {
31862 : *pmatch_len_ = 3;
31863 : res = gen_peephole2_318 (insn, operands);
31864 : if (res != NULL_RTX)
31865 : return res;
31866 : }
31867 : }
31868 : if (peep2_current_count >= 5
31869 : && pattern1851 (x8,
31870 : E_DImode) == 0
31871 : && (
31872 : #line 28918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31873 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31874 : && peep2_reg_dead_p (3, operands[0])
31875 : && peep2_reg_dead_p (5, operands[4])
31876 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31877 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31878 : && !reg_overlap_mentioned_p (operands[4], operands[1])
31879 : && (DImode != QImode
31880 : || immediate_operand (operands[2], QImode)
31881 : || any_QIreg_operand (operands[2], QImode))
31882 : && ix86_match_ccmode (peep2_next_insn (4),
31883 : (GET_CODE (operands[3]) == PLUS
31884 : || GET_CODE (operands[3]) == MINUS)
31885 : ? CCGOCmode : CCNOmode)) &&
31886 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31887 : (TARGET_64BIT)))
31888 : {
31889 : *pmatch_len_ = 4;
31890 : res = gen_peephole2_348 (insn, operands);
31891 : if (res != NULL_RTX)
31892 : return res;
31893 : }
31894 : }
31895 : if (GET_CODE (x6) != XOR
31896 : || pattern1362 (x4,
31897 : E_DImode) != 0)
31898 : return NULL;
31899 : x7 = PATTERN (peep2_next_insn (2));
31900 : if (GET_CODE (x7) != SET
31901 : || pattern1832 (x7,
31902 : E_DImode) != 0
31903 : || !(
31904 : #line 28843 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31905 : (TARGET_APX_NDD
31906 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31907 : && REGNO (operands[3]) == REGNO (operands[0])
31908 : && (rtx_equal_p (operands[0], operands[5])
31909 : ? rtx_equal_p (operands[2], operands[6])
31910 : : rtx_equal_p (operands[2], operands[5])
31911 : && rtx_equal_p (operands[0], operands[6]))
31912 : && peep2_reg_dead_p (3, operands[4])
31913 : && peep2_reg_dead_p (4, operands[0])
31914 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31915 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31916 : && (DImode != QImode
31917 : || immediate_operand (operands[2], QImode)
31918 : || any_QIreg_operand (operands[2], QImode))) &&
31919 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31920 : (TARGET_64BIT)))
31921 : return NULL;
31922 : *pmatch_len_ = 3;
31923 : return gen_peephole2_342 (insn, operands);
31924 : }
31925 :
31926 : rtx_insn *
31927 : peephole2_41 (rtx x1 ATTRIBUTE_UNUSED,
31928 : rtx_insn *insn ATTRIBUTE_UNUSED,
31929 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31930 : {
31931 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31932 : rtx x2, x3, x4, x5, x6, x7, x8;
31933 : rtx_insn *res ATTRIBUTE_UNUSED;
31934 : x2 = XVECEXP (x1, 0, 1);
31935 : if (pattern236 (x2,
31936 : E_CCmode,
31937 : 17) != 0)
31938 : return NULL;
31939 : x3 = XVECEXP (x1, 0, 0);
31940 : x4 = XEXP (x3, 1);
31941 : switch (XWINT (x4, 0))
31942 : {
31943 : case 0L:
31944 : res = peephole2_40 (x1, insn, pmatch_len_);
31945 : if (res != NULL_RTX)
31946 : return res;
31947 : break;
31948 :
31949 : case 1L:
31950 : x5 = XEXP (x3, 0);
31951 : if (GET_CODE (x5) == ZERO_EXTRACT
31952 : && pattern1076 (x5) == 0
31953 : &&
31954 : #line 19417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31955 : (TARGET_64BIT && !TARGET_USE_BT))
31956 : {
31957 : *pmatch_len_ = 0;
31958 : res = gen_peephole2_185 (insn, operands);
31959 : if (res != NULL_RTX)
31960 : return res;
31961 : }
31962 : break;
31963 :
31964 : default:
31965 : break;
31966 : }
31967 : if (peep2_current_count < 2
31968 : || peep2_current_count < 3)
31969 : return NULL;
31970 : x5 = XEXP (x3, 0);
31971 : operands[0] = x5;
31972 : x6 = PATTERN (peep2_next_insn (1));
31973 : if (pattern421 (x6,
31974 : UNSPEC_VOLATILE,
31975 : 3) != 0)
31976 : return NULL;
31977 : x7 = XVECEXP (x6, 0, 1);
31978 : if (GET_CODE (x7) != SET)
31979 : return NULL;
31980 : x8 = PATTERN (peep2_next_insn (2));
31981 : if (pattern1546 (x8) != 0)
31982 : return NULL;
31983 : switch (GET_MODE (operands[0]))
31984 : {
31985 : case E_SImode:
31986 : if (!register_operand (operands[0], E_SImode))
31987 : return NULL;
31988 : operands[1] = x4;
31989 : switch (pattern1835 (x6,
31990 : E_SImode))
31991 : {
31992 : case 0:
31993 : if (
31994 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
31995 : (REGNO (operands[0]) == REGNO (operands[2])))
31996 : {
31997 : *pmatch_len_ = 2;
31998 : res = gen_peephole2_439 (insn, operands);
31999 : if (res != NULL_RTX)
32000 : return res;
32001 : }
32002 : break;
32003 :
32004 : case 1:
32005 : if (
32006 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32007 : (REGNO (operands[0]) == REGNO (operands[2])))
32008 : {
32009 : *pmatch_len_ = 2;
32010 : res = gen_peephole2_441 (insn, operands);
32011 : if (res != NULL_RTX)
32012 : return res;
32013 : }
32014 : break;
32015 :
32016 : case 2:
32017 : if (
32018 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32019 : (REGNO (operands[0]) == REGNO (operands[2])))
32020 : {
32021 : *pmatch_len_ = 2;
32022 : res = gen_peephole2_443 (insn, operands);
32023 : if (res != NULL_RTX)
32024 : return res;
32025 : }
32026 : break;
32027 :
32028 : case 3:
32029 : if ((
32030 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32031 : (REGNO (operands[0]) == REGNO (operands[2])) &&
32032 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32033 : (TARGET_64BIT)))
32034 : {
32035 : *pmatch_len_ = 2;
32036 : res = gen_peephole2_445 (insn, operands);
32037 : if (res != NULL_RTX)
32038 : return res;
32039 : }
32040 : break;
32041 :
32042 : default:
32043 : break;
32044 : }
32045 : operands[2] = x4;
32046 : if (pattern1786 (x6,
32047 : E_SImode) != 0
32048 : || !
32049 : #line 754 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32050 : (peep2_reg_dead_p (3, operands[0])
32051 : && (unsigned HOST_WIDE_INT) INTVAL (operands[2])
32052 : == -(unsigned HOST_WIDE_INT) INTVAL (operands[3])
32053 : && !reg_overlap_mentioned_p (operands[0], operands[1])))
32054 : return NULL;
32055 : *pmatch_len_ = 2;
32056 : return gen_peephole2_453 (insn, operands);
32057 :
32058 : case E_DImode:
32059 : if (!register_operand (operands[0], E_DImode))
32060 : return NULL;
32061 : operands[1] = x4;
32062 : switch (pattern1835 (x6,
32063 : E_DImode))
32064 : {
32065 : case 0:
32066 : if ((
32067 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32068 : (REGNO (operands[0]) == REGNO (operands[2])) &&
32069 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32070 : (TARGET_64BIT)))
32071 : {
32072 : *pmatch_len_ = 2;
32073 : res = gen_peephole2_440 (insn, operands);
32074 : if (res != NULL_RTX)
32075 : return res;
32076 : }
32077 : break;
32078 :
32079 : case 1:
32080 : if ((
32081 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32082 : (REGNO (operands[0]) == REGNO (operands[2])) &&
32083 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32084 : (TARGET_64BIT)))
32085 : {
32086 : *pmatch_len_ = 2;
32087 : res = gen_peephole2_442 (insn, operands);
32088 : if (res != NULL_RTX)
32089 : return res;
32090 : }
32091 : break;
32092 :
32093 : case 2:
32094 : if ((
32095 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32096 : (REGNO (operands[0]) == REGNO (operands[2])) &&
32097 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32098 : (TARGET_64BIT)))
32099 : {
32100 : *pmatch_len_ = 2;
32101 : res = gen_peephole2_444 (insn, operands);
32102 : if (res != NULL_RTX)
32103 : return res;
32104 : }
32105 : break;
32106 :
32107 : case 3:
32108 : if ((
32109 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32110 : (REGNO (operands[0]) == REGNO (operands[2])) &&
32111 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32112 : (TARGET_64BIT)))
32113 : {
32114 : *pmatch_len_ = 2;
32115 : res = gen_peephole2_446 (insn, operands);
32116 : if (res != NULL_RTX)
32117 : return res;
32118 : }
32119 : break;
32120 :
32121 : default:
32122 : break;
32123 : }
32124 : operands[2] = x4;
32125 : if (pattern1786 (x6,
32126 : E_DImode) != 0
32127 : || !(
32128 : #line 754 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32129 : (peep2_reg_dead_p (3, operands[0])
32130 : && (unsigned HOST_WIDE_INT) INTVAL (operands[2])
32131 : == -(unsigned HOST_WIDE_INT) INTVAL (operands[3])
32132 : && !reg_overlap_mentioned_p (operands[0], operands[1])) &&
32133 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32134 : (TARGET_64BIT)))
32135 : return NULL;
32136 : *pmatch_len_ = 2;
32137 : return gen_peephole2_454 (insn, operands);
32138 :
32139 : case E_QImode:
32140 : if (pattern1787 (x4,
32141 : E_QImode) != 0
32142 : || !
32143 : #line 754 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32144 : (peep2_reg_dead_p (3, operands[0])
32145 : && (unsigned HOST_WIDE_INT) INTVAL (operands[2])
32146 : == -(unsigned HOST_WIDE_INT) INTVAL (operands[3])
32147 : && !reg_overlap_mentioned_p (operands[0], operands[1])))
32148 : return NULL;
32149 : *pmatch_len_ = 2;
32150 : return gen_peephole2_451 (insn, operands);
32151 :
32152 : case E_HImode:
32153 : if (pattern1787 (x4,
32154 : E_HImode) != 0
32155 : || !
32156 : #line 754 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32157 : (peep2_reg_dead_p (3, operands[0])
32158 : && (unsigned HOST_WIDE_INT) INTVAL (operands[2])
32159 : == -(unsigned HOST_WIDE_INT) INTVAL (operands[3])
32160 : && !reg_overlap_mentioned_p (operands[0], operands[1])))
32161 : return NULL;
32162 : *pmatch_len_ = 2;
32163 : return gen_peephole2_452 (insn, operands);
32164 :
32165 : default:
32166 : return NULL;
32167 : }
32168 : }
32169 :
32170 : rtx_insn *
32171 : peephole2_49 (rtx x1 ATTRIBUTE_UNUSED,
32172 : rtx_insn *insn ATTRIBUTE_UNUSED,
32173 : int *pmatch_len_ ATTRIBUTE_UNUSED)
32174 : {
32175 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
32176 : rtx x2, x3, x4, x5, x6, x7, x8;
32177 : rtx_insn *res ATTRIBUTE_UNUSED;
32178 : x2 = XVECEXP (x1, 0, 1);
32179 : x3 = XEXP (x2, 0);
32180 : if (GET_CODE (x3) != MEM
32181 : || GET_MODE (x3) != E_BLKmode)
32182 : return NULL;
32183 : x4 = XEXP (x3, 0);
32184 : if (GET_CODE (x4) != SCRATCH)
32185 : return NULL;
32186 : x5 = XVECEXP (x1, 0, 0);
32187 : x6 = XEXP (x5, 1);
32188 : x7 = XEXP (x6, 1);
32189 : operands[1] = x7;
32190 : x8 = XEXP (x6, 0);
32191 : if (!rtx_equal_p (x8, operands[0]))
32192 : return NULL;
32193 : switch (GET_MODE (operands[0]))
32194 : {
32195 : case E_SImode:
32196 : if (!register_operand (operands[0], E_SImode)
32197 : || GET_MODE (x6) != E_SImode
32198 : || !x86_64_nonmemory_operand (operands[1], E_SImode)
32199 : || !(
32200 : #line 27741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32201 : (peep2_regno_dead_p (0, FLAGS_REG)) &&
32202 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32203 : (Pmode == SImode)))
32204 : return NULL;
32205 : *pmatch_len_ = 0;
32206 : return gen_peephole2_253 (insn, operands);
32207 :
32208 : case E_DImode:
32209 : if (!register_operand (operands[0], E_DImode)
32210 : || GET_MODE (x6) != E_DImode
32211 : || !x86_64_nonmemory_operand (operands[1], E_DImode)
32212 : || !(
32213 : #line 27741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32214 : (peep2_regno_dead_p (0, FLAGS_REG)) &&
32215 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32216 : (Pmode == DImode)))
32217 : return NULL;
32218 : *pmatch_len_ = 0;
32219 : return gen_peephole2_254 (insn, operands);
32220 :
32221 : default:
32222 : return NULL;
32223 : }
32224 : }
32225 :
32226 : rtx_insn *
32227 : peephole2_51 (rtx x1 ATTRIBUTE_UNUSED,
32228 : rtx_insn *insn ATTRIBUTE_UNUSED,
32229 : int *pmatch_len_ ATTRIBUTE_UNUSED)
32230 : {
32231 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
32232 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
32233 : rtx x10, x11, x12, x13, x14;
32234 : rtx_insn *res ATTRIBUTE_UNUSED;
32235 : if (peep2_current_count < 3)
32236 : return NULL;
32237 : x2 = XVECEXP (x1, 0, 0);
32238 : x3 = XEXP (x2, 1);
32239 : operands[2] = x3;
32240 : x4 = XEXP (x2, 0);
32241 : operands[0] = x4;
32242 : x5 = XEXP (x3, 1);
32243 : operands[1] = x5;
32244 : x6 = XEXP (x3, 0);
32245 : if (!rtx_equal_p (x6, operands[0]))
32246 : return NULL;
32247 : x7 = PATTERN (peep2_next_insn (1));
32248 : if (GET_CODE (x7) != SET)
32249 : return NULL;
32250 : x8 = XEXP (x7, 1);
32251 : if (!rtx_equal_p (x8, operands[0]))
32252 : return NULL;
32253 : x9 = XEXP (x7, 0);
32254 : if (!rtx_equal_p (x9, operands[1]))
32255 : return NULL;
32256 : x10 = PATTERN (peep2_next_insn (2));
32257 : if (GET_CODE (x10) != SET)
32258 : return NULL;
32259 : x11 = XEXP (x10, 1);
32260 : if (GET_CODE (x11) != COMPARE)
32261 : return NULL;
32262 : x12 = XEXP (x11, 1);
32263 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
32264 : return NULL;
32265 : x13 = XEXP (x10, 0);
32266 : if (GET_CODE (x13) != REG
32267 : || REGNO (x13) != 17)
32268 : return NULL;
32269 : x14 = XEXP (x11, 0);
32270 : if (!rtx_equal_p (x14, operands[0]))
32271 : return NULL;
32272 : switch (GET_MODE (operands[0]))
32273 : {
32274 : case E_QImode:
32275 : if (!register_operand (operands[0], E_QImode)
32276 : || !plusminuslogic_operator (operands[2], E_QImode)
32277 : || !memory_operand (operands[1], E_QImode)
32278 : || !
32279 : #line 28772 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32280 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32281 : && COMMUTATIVE_ARITH_P (operands[2])
32282 : && peep2_reg_dead_p (3, operands[0])
32283 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32284 : && ix86_match_ccmode (peep2_next_insn (2),
32285 : GET_CODE (operands[2]) == PLUS
32286 : ? CCGOCmode : CCNOmode)))
32287 : return NULL;
32288 : *pmatch_len_ = 2;
32289 : return gen_peephole2_331 (insn, operands);
32290 :
32291 : case E_HImode:
32292 : if (!register_operand (operands[0], E_HImode)
32293 : || !plusminuslogic_operator (operands[2], E_HImode)
32294 : || !memory_operand (operands[1], E_HImode)
32295 : || !
32296 : #line 28772 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32297 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32298 : && COMMUTATIVE_ARITH_P (operands[2])
32299 : && peep2_reg_dead_p (3, operands[0])
32300 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32301 : && ix86_match_ccmode (peep2_next_insn (2),
32302 : GET_CODE (operands[2]) == PLUS
32303 : ? CCGOCmode : CCNOmode)))
32304 : return NULL;
32305 : *pmatch_len_ = 2;
32306 : return gen_peephole2_332 (insn, operands);
32307 :
32308 : case E_SImode:
32309 : if (!register_operand (operands[0], E_SImode)
32310 : || !plusminuslogic_operator (operands[2], E_SImode)
32311 : || !memory_operand (operands[1], E_SImode)
32312 : || !
32313 : #line 28772 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32314 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32315 : && COMMUTATIVE_ARITH_P (operands[2])
32316 : && peep2_reg_dead_p (3, operands[0])
32317 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32318 : && ix86_match_ccmode (peep2_next_insn (2),
32319 : GET_CODE (operands[2]) == PLUS
32320 : ? CCGOCmode : CCNOmode)))
32321 : return NULL;
32322 : *pmatch_len_ = 2;
32323 : return gen_peephole2_333 (insn, operands);
32324 :
32325 : case E_DImode:
32326 : if (!register_operand (operands[0], E_DImode)
32327 : || !plusminuslogic_operator (operands[2], E_DImode)
32328 : || !memory_operand (operands[1], E_DImode)
32329 : || !(
32330 : #line 28772 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32331 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32332 : && COMMUTATIVE_ARITH_P (operands[2])
32333 : && peep2_reg_dead_p (3, operands[0])
32334 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32335 : && ix86_match_ccmode (peep2_next_insn (2),
32336 : GET_CODE (operands[2]) == PLUS
32337 : ? CCGOCmode : CCNOmode)) &&
32338 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32339 : (TARGET_64BIT)))
32340 : return NULL;
32341 : *pmatch_len_ = 2;
32342 : return gen_peephole2_334 (insn, operands);
32343 :
32344 : default:
32345 : return NULL;
32346 : }
32347 : }
|